From ebd6d3c989d0c179c2fcc218ff74bb950b22ee1f Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Fri, 20 Jun 2025 15:16:56 +0200 Subject: [PATCH 001/127] add: python uv pkg-mng from ciara with some tweaks --- .../formats/images/python/uv_dependencies.png | Bin 0 -> 128815 bytes .../formats/images/python/uv_terminal.png | Bin 0 -> 115315 bytes src/content/formats/python-repository.mdx | 146 +++++++++++++++++- 3 files changed, 140 insertions(+), 6 deletions(-) create mode 100644 src/content/formats/images/python/uv_dependencies.png create mode 100644 src/content/formats/images/python/uv_terminal.png diff --git a/src/content/formats/images/python/uv_dependencies.png b/src/content/formats/images/python/uv_dependencies.png new file mode 100644 index 0000000000000000000000000000000000000000..55c69f19707a2ca383760c8e9729cb7186f40ddd GIT binary patch literal 128815 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
s}1H&J2ElZZfZSN(3Gb z5i^RBjr%}TISIN!@89_X{WV3ua#!Xb-;CuPjL+*=ULV+-k6R9Kfg+QrO5>CI9Vy!= z=2?wUkRTezNah-WGq@ueV&9u%<%x6HiY2!jM2PB z8Uz86)Ik!uF9fyZ%7vMYF!Hi(0R|GTkQz~mwS}$DaV%q6vNQgi&^th4rPAQTZQmZu zP&rMY%6w*{Ye;uImE_sa$6bdUwwEVzsyT*sY~uO_Yl(lI^rS}^K6)_W_zUc%bhZmk zs)%O{@7=c3)l`nV%rBz3#8k|{C&*Y@(EP7+)QiD@-P$iE<2mW7yiHEcWpzJR|MebX z4%jP~9>qKB1WglcO}~`hChL`$!M(HRKiZ(Ie7O4;PztXf^XExZn78R8{AkiTg>wd? zFzBi*uVPM?&)XqaZ8HYP(DOlS_tV480Di(|(J5dsJa8}^-UGhDH253)TR%Ju6Q?)A z_uFKB_A1)#gPM1*EZ5EwFgakGF7Ht+oSG&4?hS?nYuc<&m0ATr{>Wt35jKe&$ ziCnNA?F}|hj~aS^7G%Qbs|z#5v=X@|dUd?*4?O8!&7*IcO7n4;m2{h;yau)b-lEOm@(UrPvkR*9eZi$=zCbGpOLsN!ztPy zEoEhHF%YdY592%O#p74%|0uOcg7WO~)CSIGrMP1~-j0@>wcQm0@+3WiWt~6Ndp*t! z!fx?+8{WSpG+#RAM!BkWxF69X!j|3>kAX&i&&PI<#xjhZ$_9mq-nDESNB3k#-v4dl z)kJlMMraa_zEl1Zj;{Og43M3CwzPE!b0)MRyP44?kSs$f6)lKxxo`9UbG!gh1Kyl+ zZ8)Pb-ctX1#R)Z5HHduOW$FAhgQZf8%s&M&lS?XYb?Q5!_Ym*gR_{u7Zk6f&`S@37}{WE^&dN|G2br zhxZZG?*1v23#BFrUAP9_4%}SS-}&?k=JbqIGHU8_5ND%fR0n*!pq9*5Tk%?rPFYUx z+(L-ubo#tIeq=^hGP)RXjq|*Qeh%765iiV{qf%=cnhrPtO?uc^Tv{x9OFvOzrX4v% z?7UhC9~Sy8iI;w%COJau+y1D#`_nB`m#FESZ-Ie3g-!Mgp7hJU~&zsc#I$U}JuHCoV zL|Nwfld~I=JX-z;dbZ?TdxO`*;VlELg1CnM8gd0nF0RaPI}t@utI%&m(TJdBjCJw{ zdA)Cbc_4x}a0kaBYNX>wb$AvLYg&xMkU%Uw)1d1KW7#RWCf2WppgUJ*r@GK<1NxC> zX>2p#-5lC6-{_(Z$O8TF*Xc-?5kdql#F{Mk^$YCFD%BY@405{o74))AT3UPKEQzQO zBw_oQX|>SV40IZnE7$d=N_ty)`Te9}9K(w+)eiy#m`S0=K=>MJq~I)-^WYt}+ZIw-83=)bq!gGrrw{$TJRbCTS|Z(v%2McUR-E(BOV zKOumvbh|lN&&?+xpM?RDDG`YBrEh4W*IKT!?8!~%F7AVwg47}0U}enb}b@V9i&E%(L`a{P_S{KnNF>i(@}2<%Vc!m=K$N*Swb1* zVM5vLV6^%QX+Cjt0fwT`4n)`-b=0wLfYPvlB z-j(2HvXl$(JR=MYOy4uh;5PLcV(qsb9Xo;7i#B^#VeW|6!Fs&(x}oHi_Qs@M?uJOPKdEzpw~;|0UK-m6G-xV&>*77)Pn z&GDyXuT!+PNO0u}w2z-G%7-+urnTMvUdp~NLG9Iza302N=u|wxaX46>?ZvcDycm5CQ3`Qs06lAeAZ`jr#I8dI&V-!=0ub+q6wNH@H zvmS7BC~N%LUD?aK#g=C5T`%lOzidW=cIz`W6y>3A6W+{y`(j_Xe_2Pw6u)fTQ{q6p zAz|v#8oZ`F9Xh{ z=EO&nw|X_7Y>wU5AXgs$a+@Y%7W-z^^~cC`quqz5=FJHaJA@E+-JT#spQjli{2V`& zmsGP9y%1-@EDFM6g=ehijS=c+OYb!$@s+CH9j0<%d|?Vxv579Q;8K@YC{s}P?Pcp_ zgQ359tYCb*cn)D2DsP919Phc@X7&E3r34?>p-*br2*`<@NaqwzTUZIl*-nf}C9mFj z3s)oYg$putxx9W+tpUPDdOGsw3O8zNI<88{f>K}jV!)m{*8i9kR1d%-`rxGg3l3WI z9Kv8j)=lMnXodD%<^J~a)3Qg`b-HJdSTlz4-*`kw9Gq@6MtM|rB~WKvof@WcrQPWD zpiD_!NKD5^F-{#R zlW$jlW162bo@sOQb=d1~lhDuq;d{tL?p$YY#Xc|{_IDrMumSBj99l>jhHrQ>r0u?y zS^elGKr-dRyv}Ec2E|iUVPPs^KK$Q6&o8Ve0ty`g?euB?PhblM6G<3~1v87|{*ABv zFBd>4>heE=s(;%Hzc2KlU=J|@^7Fray#M*4lj|3D)c3XIe}4Qov`LBzg{-Ys4WjVKg&Tj6HG{xzNd$4>wm6h_B=hx)f>{4WB*sg+1dZg-+jY?g7K)B z2>*vfem(NB`31d2U@88srvLK?1aV=JzXg0^S?y^Vl&ANd|G&XdaZ+cDleSnso5ZP_ zyd6u5f6vPYKRC3^R(elu4>;KmZBUdEg8}Y_fPf)+LyDqZTYsix^EO0%$G_q$K8*IL z{0`1I=1)e-+@9pje+-v&2D91aICJ%RO=BjH!8%7t!jU(p>;Rt3ALJ5BJl;WZ@rY@! za~7X+O)hJwFVnojFmE6;JNKVKwZC9fTS^Qj?GIu;UMsIm7i-oxB*cj|RWxaj{t7(z zAgf*DZq^^S(G7&|K)w@YB)<}syh^qso zt1R00YuY}bhH1mr8%Aj_mq+}0%Q_{@F(cfDan?NDzrK~PnnY(U!l#YyI=K4v3aj!1 zW&-Jd$p?cR`NaD*xvXS9fr#Xlc%H%UK;SQFAo|K(H%5{k{ZRx#sdu_fk9Egw7G>Br zR^S4?zfuQ21^Gah^;cX}6Mx^I>!uKtyb2!7YWOF#{fXQ+L<3Fqofo^azw&QY>#>J@ z)dEs8s|i$FREs2);mArnu-kL2W&7tsSw@5@CYTs1;+fnGyX5e0_p}tTy9gD&(5zL#Z8sP~mv}5{X2AU!CJ$x+(aD ztn*&}%lkMoNH&GX5>M8_%YW+ymR_RXjf+t9!m9o+Y&l{`zNfVn}tt z2GP^N<4S6}%xh@)T3-|ws%?F4x^(~C=yH7pKQSPZ$MWN+j?(^qypH4>vZPa9KPOaf zMfmX*RqIE|D{edddE|d+7mN-PbR^;y|1s`Ai`RzulBoiWq9BSY29 z-L3Agcwa~woDeGQy79`~AN}AK`K2F4-+t>yI&9a-@6moxf^8?^Q+n{ON>4oS7W)DF zXTh(&dM8NI5Va~{lJx5isWWD^=F|K&__8mwsqtun`7g38D1()^O$~Il4F0}8mE}bDgK=Q0i$;4UMeo zp`=lN^t;h}ZXo#m-aqKa0JOG6P%^g&`PP0X9(%G+e7-+SR5q~uH(1!o2Xj~KG#Z%m zTZSx=K1MG?f&xvDO?x#LacA*3f5%Iq2L*KcW-@u2UKYiI8Q#QbHd((|iXGB!mV!n- z@FCtX;4lsV+OAToi9D_bQ>CBY zuj_r~-&pCjKly1Vmh8220c~M)nH5-gu)3;?6?m3dIZs;buph}+c&J*X)nxLb4zP2i zrQVhf|Wbcu-X`Mll(?~%6DmW-l%0ya}v6Hf7Xy@c>2T1 ze%~1hF}}%r&>1VpOBKe!cCp^7$Rd8yPEhcJVlc;`!~O_gq3qA3OFIUG>qlW$qY>D7 zz|Ueub;L-*IB3hPRA6og_g`clf7wPo46v^n2*btinngl8euwW|qv77#18OGpU(__B z*Luce4vqQA|HxjU(eJ3Dx~6VDAmrtn&rny6bTI=dQV`Wz)Q%KfY-ibO}-?bsm& z2TekXm8)1rC*ma&@O;cD%Ruu{2dwP0zvkWYgM>_1m z_~>bZ#?N5<1jCD_tRGk4`^~(n;Ivw(2gM|jN&nUJ+D?E*gBp}KT*;d>mF2b($uw{= zz9Lzqx)Kw8r$DVkJSj_Ef!OgBR1avak=Q6<;=A*D z%Ovnr{_w#%_6x{c5!!!{=6$VkB0QGpkMoX|B!98U!S_UR;?S7N!~KqIEQ153;&L;{ zL;^GljENN?iR%~`AcOG5rwM}SX zugkRx7Y=I`hh8(DIXyMKQ)8&%y>jorK@N^3n%Ux8c~sIiy^n9dH&=}#MzN(IGozV* z<+^&pGViboO~Mrzpib87;y;TTsP){#9mt|8`U0|3#CN*MqSxy9Xs*I&5@wk?#$Mrf^ z@+SvjUwBbhj3c0OUwBqVTpTTozeW_fA|QF0hz|{fj##QoC0po}y9?lckm~b(YEhz5 z{h{_X$zo20mcxuG>&i<+gR_**xAdlRraew7t8ETdA1d!Y>Nx<(S<6(Z!g94`{&N^y zSJwtf#4@!gO;kfQzj>HprIN>6-m28>q!ozNM1h3SUFtgteLMlD#`dc&L9@m79K#>c zBl))u3xvDppq;HI8$|Kie2Mbh=KrG53n7Q2-xr{!u0EEQ*IO5v+yzBn*s@@W304#Q zo=xBpix36 z1X+3kHuO?@fjkGi`$&^j30Gq}iL}9#ML~4Y$DsKV@A9%A7M?f%V@0Vw7qz&G%~I|TQ$9fAg0THeh_}Cm z3;Evw%WnsWbOfWCZW?MN@|gDaD~j+2pg6n4Kgm^k(R5@9$ZPXth`lV8Gu) zlx$x(C_D<>#_^9As8WAV*+QgG)v-9_L@AGjX-NB4>uIUl?lED7P11 z85C$o{4iIB_`Rk}U-7IFe!b0WxU|AnVICgaEL74@)L+T#G1Y&^ez{_e(;QesH*cZB zXcGnP-zaon>(p;;u$952iYA7?$y9u#f>!o|Q1Z*YexPcVTHgZ4V)*Xl4};rt?!W@s zw7!8+UhXcdk%i&K&Gx%gP_ebu+1AKWJXO2DuRu7f<+2-vAtem``I0;F$~|@Q z4%!dPen%!cuep{YH0Zv2TYTs*YL-9dk*}KAFM~t{G3Ocb=o$F);GY`*1M+9^9-uCP zJ(~`|LZnCEomHE%9!L}DS|^4p!h0IVTp}ozm=h8ycJ(t!vPALPhsBmjvChck*5QV9gNjeQqH<+- zdRh&{i@mv(t-RrG4$&T!M2YG7dSn3s=lcb^uO^iBVJ>B&t);N$yKLId;(Vf%UO%vh z7a&cfXd$n&LR2|-T6APl*?vA%AT^*LX!Nsc!|2Mdpiybrg$0+zamqF2!x@2?mM&rn zi+gcA?PGF3Z0vHA{dKYr)Z+c^GKnECA-7V^S|bb|w&~%#iyGFFi6<3|r9zGlI2A^m z=ewk;WIdVE3F>ErZBNW|1|B>d%=keqQ;z?~ZSkFxfYNF{DpW5bXG_I{n>4?t`lzJ; z@?)CT4>f09XAL|wjsyr{p_$mg;}hhRI?Ifl2Gwf@Gqt>S_HykJp70A!*^vX$(+>9y zmAac^<*{IY05hYW?k-`brNTA+exqelfud-d2v-d8Rv^`)MdD7=QN3;A`#(+E0d|lvDpAcXJzza8X9}R7#hmXTb5%%WH zBf&P|xeJfKlb*69UKG5x7j`qC%dZ|qWa~~PcdtMbQ?tC^H+I1w%K$K(DX?Ew5$rM7xUuwmt-&J^bQfeAC zh?;w@p|6D=`K)TIxTfKJvWAOXPA)5t~&@;@f*d#RBL@OuG~LS0z8w=WCNics#C2sBdZc zX+YBHi~{I)W6gqYt%DY@B!@@&=C=xGACHeFTspa8#m+fQXSMKWN+>(poY)6)3<0O} ziDy$Usy;{7I!U)a+B}Zx=@AQf`#73UD>1YP#MQoBK#IST$8PS0?iGS{YG%OCFAL-v zDElslNxFfKYN=ukXwZ&lFZaZuWm8pC%^mTTD;i$&E6fL&KmDplFI*=xrw$)i*YYBS zfVK^Vu?tn;OF3iJ_xy}ERY`c?)H!LAKL6vwc8#lfG z9(1yN!?qB&~54jK`Q z7vA4Wmoqvken30cQW)Gh9_4QN^-)NqtHn|{T?HR;+QGp>i49pE7quYeV%bPpaoSKb z?mk+);z_vA*ER(KaRm$Y-6v&cUYMCfGlhb1bNQivrC30h`K!095?$6z`AUW9XVMj% zSEQh$HV#9-kJ0gd!ea1d;+^wM=Z;?b{q zkCvMA0y-RsLM(CzOx`F9VjE55X_PLHiL>Zi=c}iFg)_ZNofb3_Q+&hHKRZB<-8m*IfDsf3{{!_ zh{_d~zqkPSp1aZsv~DC;F6+(-Md>}=q; zNnAV9;?ueA1=}|%! z?F?P@hV#@Vpo45|kPLo(?T6}$w#ER}c_3Dk&}43Fbfsu()p1u zKxx#Y`G9Zgh5gKJW8<>v0%ZOdZe6pktZbairxkZ}c1M0t5e16HYE@B z#~Sr~gf(IM!j5vqqfGZb^fImc!uBElJ*DN<90?(U+g7F}oxmgiN7{JrrJk3Q4YMf4 zwI@(80I%1!39Vu?A_`#;ipP8|V5RsLzstCqbPAA6u&0O^RPS*y2TOgPv7!LTq~%rG zWH~4G1`u((e=Z!-A%oWMkx8Xmd7uqk1eQT-MK3V(Ght zK&*J{6j>dl>$bB-(Yz)@&fawXO3bITY*w1jR5&*v(*#MwYBck`f61shQ)7s5Mw1hU z-O<@g1(3PAN4>7@*3|q9_YpSn($|?;WO~VN!n2FK_Uqw>1JNo9MW`thwhHHk6Ajm6 zRFW8pP=*UcF}e?|i+QaG>xD#Z>9zcm#hI^%;uOI-pAK9WTKlt^?}3VI*XZRp!A=79 zvy?jBXWQT3R@K{3x)UTpTlU?hGRzc&jemAl%M<(5bri`TfAnZivQg<7^zXQl4;L(u zb`Dem?xPPfPr#0QeW;SQWK~p>aP`xzRkx)zp+t^5#j!F;`^-eToJr<7|I)`F)0Iyg zc(Whx332gZuZ;fO$}zM`ZM>L6aMqyFO2Y4@Sz9Pc{bUg=$>+^4860CkAR(?uC7+ zKHzayL@|9@HcNxLW-{-%relGVtKF=35lgZ3b|HeBE~IXiPf?smgvgqTaC`$}I2VMgY+EI#_3ktSEz?yYON)fs(fY4*GQ zHmn+s*&(vUKCv}$5vlN~VLz_6Lm~hWv)>hz%9=?jP&<0Jmg(|^>Ja$h-E>2i0~cIs zqqFDRj1QW06*TuUV|;AMb-I(-%4%UP#O?wK5>Tf^?>UqP&eud*>eyx2!hgxz*(6pVss~L{zSN%ayUuZfm~Inm$rYVQNo1oo z+ZSgP(Mf4W>_+7C#VtEq+1f>7?BJNXrUKi@cM~AtHv_SppSr5eo?hayN>>?0$X25^MeX@ zx-(yy{|CtG%I4Gy1Y#})!ZG%8%|#|%u^?wEjyM5Azi+#BkMY*-R7*NxNdxO!W%~6a(St@sS*a#tNRT|se7`12`plM~fyV>!; z)#~*t!k=zkTFy(u9;~A9xu%oVONwDHv%IsIn5SRNYi_i16if~<7`33x>OgKR%+%Ui z%N0JlX5cGtrG|MG2KPzbsK2qu;HW=(r6UzD$@G(6davkyztPvMZhO#W(i;m&C87XC~FioqWZP_`~ccBn%&x$TYJ)2%dclExSo8Vy$3yF(Ag zrdcq~A30)KJ7D5uT0o)#;}0Bf-CeRrZ#gZV42C+Pc* z+2h=NR8j`aTxsc?TK`!ZXU@Qd2WdfGtewa7BJ$BJ_|;ToD=0I+bohK+;C3kYHC^mm zrj>L?<>}>{23j?MMECQNGh_vp%;%-PkJ%_c$WV#++JUb|1kTpn$)!Z^WY1j)G*7C) zr5aAx(~4G?uc0?J&RZ!Wd@$Fjs!GiEtcip)iQOFbt}Jv+N<_Vj5{(Rdz)l4!3Aty< z#LqghnKZVOPTONJyKVIhbAwO)*wb4Piw)%{ z)K&t~#6ur{wuk}B{V`leAInwU*y@i0-Lrk3!w_0~-fcJwJQ2~R10ZP??zqvE2E^q| zCVO+hl$J>)Z1d$BW7dmK-B}>{*^!phrgsGaA}T@S{So}lmsxbUnbp%q;xCp{H!l4) z4d8gD=>xQd?$q51KR|q7H;%)UhejN$d$OXot?lXdp;P?0JoZu$Xa93Dh$x>Sv(Cwr ziYlWL*)fQJVO1w;HLyE8&0QrXrj>ZGc z(2cpD%Xf?+vx+!!*T~RhbH3m??zcG0g_=P zan|`{o625FwIY+b&4tc(I6Hqw*=KA}#}gasolz&w|9FQu`Zkz#SSDWK9C*6tOud3E z@c8z5@G_l^7rVwt+ktz__6Xv0XP4u5<1e~GTgzmnK6XYryAwGH zQcoLIK3jS+J0BTbMx7uLWB0S~Up(J#K#sUz>|WNAi90hV_YMJKKZD`5tcNDSay!M7#>^BN|CQ0^Sl!%J0T8!tExSx zY)w2RS!mjlck?X!$fDuH_-%ZgVdrf|eS|e_PZg!WBj;$objEwJM#~kN?qD?bEyi8D z#PA2>&;#WNPbMylN6gzr4#;NVpnGboC_q4(RmpS(*o%DD|INtw1NHUn#I*VI57VZ# z9@AK6UrLFy)73zgw`Qdv%?w$qDjS&ixGjrW5sie~jE4Kr%je2|j`#i_a?TJ-sX*&B z+U+w^-j`HN3lSF5SArS`HwLR)_;w#vRrl`n^BUlVVSY)qs*BBRT}+@+Xo6{hw|zj6#JOd_z7Y75eKweq2kgn zdBL@ph=z-m~x_{Z844|S*h!e z-0+$t8uhv4Fgv#Dj@_Bc_NniLvM;9dg9_OR16mL96JqOR&pLo!2|$WxWET(0_Ys{$ zZX*g^0%%05sb!S!*-I)2iu`PB8_`m)R5J*GGb91iFD+hk32^sx62Q4?KKmvYz7@#C zNnmv*$`Ll$Syxvd=|9|dD7g}eJw&Ka{8S*MeE+6%NW>%j>NXsnzsog{Rm8Bc+Ze*J zqa4FjX!6}5%SMI4HKw6;ne&jFKAEJsuOT$8+i!0HWZo>Na%-UVZB0-NbvC~NBcuGwTlCA9ez$bj5@Ohy-3{fcLNf2Wnh=iV4&6<4y7h*Iv^{#?Cxjb6 zzONX>XYfLr(kwCNTXuDI7iVaJOmm!p1{R0AVC#?9U608d<6X9C1y@IEU%VbUEv@eLIxD^B{Gae>?`MlK}5>!TGY zwfIASzU*>rTq-9gXRik;P@Mv*UJwA<(%5zDWti9;(pG44mNuB}aAkqeXJ1bT z?vv_1Z7!DBLn!zjL`ai8E(*{ivfmVbYAsV?mjd*Z?Yr7r%okAVYJ2H7-`=xYjCj7^ zi6vuwxFX1pOm(p1P3ALOERXrhs8S!28Z5z~u{!ff>iINn)~ipp-u8o7Q~Bw#!EYA6 zts%{Wy*khDq!%5D2;;r(&KKKzDPM5kOI=Jc+n}{`iK6Q-a4Nz$99kM%Sb8y&Im~k4 z5X3Q$wFY-U{LP7t_an7L4T!FqbBwIDV!j2!S-@G3Lv3`MRzOF(qrR8J0G-rey4>+i zx2Wm(Vt1nP%YD<9Z+*sqIE04jcc%Xn{0mk~G~e=d-k0tl<+=r_7jAnQqeGKK?zWrkZm%mi*K;yYo+f&QZ5q&< zPuQcKTQxh0skDr_{y5B}x5#px#8-sEooJf-7^R>*0hP{3+uW82+9krPANacfV|Z+Y zq_`H^=r8r0lEq=Cosl>4b18C7qVT!L*5t4WjdOaWW=2N*^K5>92Sp$cw;n6Ej z=Su@ov53YT16R*;C%v3SD!k5yN+X_O!`dX54!j8F*NFRxarCY0k(03gbVbSGZP|1H zGJ7i-yAu!O(e$8#94)n{+GeG}={>owNIFNLUv(T#Gxqp%`27<|OLgN*Hrko#(paPD zW%W0^+~L$IX5SD-DMF3BN&>$UA#qg*gO*0j#E3VV4&OeM0`;D~v`fCjD-*IYeJ|kd z_7Z?S0_5HS8y6><8N-jtunGLcJU9@JBd*LOuC6amGg7>)m0M?6-NnKb3Dsf~*?UA4&eaU$VZgev! zQ5e5gk*nr8CqKN}M=-HylnyJL5I+P1-ajJB@*ZOUNKm=oQNMS41wPO-SmODB=)hc| zPZThCbzBm$VD-NnJX99G(0 zY{;uOpXfBcypJ9pPH&q_PVHLi+P%!|J9ctLy#2X9z<+=4UR?)mK(;%7s}zUeams){ z%c1vxxaQG&W~B5p3sP4wEH}+!U9M-E+>OBZsJ$_!KhsVjS_kkouf3M9fS9(lxYJZG zQhLbjJ0CHORI7S%g7385aFalA>l)wDBAkjSdEgFWpncBFI(C?x8~;jx?uj`-2@FYZTUb?k)(HBA^bg6F*+)35G)e2Aa-gb6 zXS7A$u<`OEe!#({vMb6L+F@<0nV$;X&H*VZ$em@1#GzOrj zGpF;s9vY$_U{1-UwF&?>W8XdPgQ=f;a<=1$YuCN>Zc#>8)rBqg%A4pzyAKbXm#&3N zbuocxug#bv5;rc`$-&&;KPg+?o~5Ldx?LCUKepNkn5D}CW{j`2kLVv%z_)h zrQgwA*@S03Cx^H&{Te2}pu^~sjI=+j>g0;BF?b9(CO?c#MyJhP2 z+=9r@vrp~k&oT>HY6=W_cNR9EyF4>PoC01h1xgMbTkdbqqkHQDJ{Zhew^(P7BHZv} z=Q8Rvh*lD>))iUrU!A!eEE%xR*|}{&`!8MEPnP>@B4t~YS=n-%c8;XCiR-?FziQeT zK2-HRS=Bs_ySHhP(clmmcSN_zvjk_7m7wL=_CQ9w`3Y1`zuoy-9RulMIEK2)<&zg9LPrVmw*tjxJLxkE4-X&inK-ssl{GTuWM_qD$oMTQ zWpCUXmjD|D3i1uB)p(R0Jx@oZ0!?dZn3n zb|bVWbr)0mVw$|d`pyp8@}?QR3?w8gUSGf}SG5{on*c!H=5;K! zFBsAvYVd`*4?7#5GE^@)5CsQHd(qJB7z~4Naf+fl`=3?%=t8Jo(U%;l6>QX90JhVy`Mm>FrT9WoW(_K=SrI5ZA>UxaKcg2dCNNxcoAzC zrb^L>a-(38&wOO&Dt9SuA-s%6$xO??uTQgbulF)#0AwfmuiN*r6FvDq_kvYgL<=Zu z0=D;kIWq6pon#!V5zGcdd<#U|9%lGUI0wGa?imKzt%YF`TDEjYLLfiTQ^&9`g@)Ij zdnJM160Mj$PY`iuo>fMN9V-GxF|r}PW476t>Je2p^+NZwF9?b(p-De`loYhvrP|)P z+fg;s2p#9_r^u1PF&fu3O}-VMm@WN*wM~om$`~w4=M? zd)a3wQg>sZ z;(lt%>_9k;AhHd4sx7 zcZ`rT)vKTkxa~6IifR7kJfWfKeNLo4~dp?O$`V(`^Owsk8DQ=KCGHkilhV&~&(6~$n|z7H9t^?5ptcMjiM zsAEKywCvc_{&*Y==e(Zf}-h{R-CT;9wMAw#EbY*7UW2yhtFq{WgtN zcgb6Gx4kkmeAA*0)=3Ss64u)!0oKa_FX`7zDxVUl(NZCAY>?x}xroh`tKP;HK9TKY zjL#%TxQR-8q8@og-fG^?6s;74uO;)#QNVPn)O1E1fKcJiNDXvCo^s=mP=XxJAq=nk z4JpNAZ;p@t4zOR+TdgNm@|?T{(d~5`kzm!DXQTs38A zPl89ajn-+~+@vYEiSv*eDllQ#ERl##(z&ypzvoDkO}7aQ;pkEsIkR0XB6- z+wb$2Hz;v5%p7aZWBFp9*{x)rL5UsHv@S_5{HoJo>d#wrQTeAOaf?a??^5AWES^`ZqJ88TO5@g&#by`a zX%1RQWU>aT;mm%pb`hWNzW6%16u~B2?B=rV6wFd}uawtP4y;&pUiEc)RjlRmXq%Z- zdU$7%rA`r-X=%7T15IQ^Wo-G#J)O+;{0D;CjxQ~e3xs=c$B|)?2kP(ScvC^a(P9E2 ze@xodnfof)cHm1N@DOt|o{An0Su4^`w4sz`E0oaa$22l{Y0QrBGbn#N4XMG}?8@E?g!J z7s}m4J%F*5U382G=IrYkR-_N#LYS0Xy>nS~p7TN|>Z|-cT;zQ{5=n8aA~V>vh&wJ( z9GF)tyZ2jGs@Jr~ADdxt(y3k~Rz}YQ7%uunFmW#*$meS{V=Uhuip?WnbUjB?tKP=n z?|}KbYJYZ3dK7r@3}m>)BLHZMCZaSeYPB2_xFB~?9*Mk*Vuq#i&IFBZjghPsyTaHTM?b`8pOB*8Y`&!AvWMN+L?$rU< zhP^w(juVxQkwV!(Aepxq|F9a}hDhx|vEnxPkyq$ZR(hb59%Ct|J9ujiNA!DVrpZ10 zm6||^%R))hrR%NloqsohX)`*}++uB64dCNyj6|H5$e^`NCviq8H*y?&%zLN8;k*Mr9k@#`#Hm^4B4yAC z!jauC${zB_PxW`!3&=AwJ)fZRb)~?N>Wt*?j&y0pNkG6S-xFtt@yM>(q$JjOyk*c8 zdkR}1SbUD!2fgG>)<)hGLY|W!q0#MUQ#)AdP#qp9t^jc07z7^B%~;1m5Ycvf|3Bu= zI;yI!`}cq}3Me2cAt^{nN{7%d{338=EwXI61;bvuQj3$>z%9{d_*Oau6 zTJuf@A+nDVib0d+h{6*&QJjvw>~SNeBSp)WNdKFylp=h5QYzbsZ~9{}i&l*m;kzWS zRl@PNDbHn1$MhWaOyvPJ-WdA~yL^Uirt4jslM+SjJE1*1NeH_!uq``(+x1b6^S7w< zNEy@9O?j%$;|Gpd;EndEj(0t{DQ%qsbl#NLJk0uxx~FCOIKN|qj7Af7T|ty+ zw3Zu=qfi$e32=G;byU*t!g^N{wNN7D6rkF7=mRIISrVF;?GL8kU?GT4tKXx00&60)(KMV8l6C;w+ zD7MPem@tz}Pi(ku%k054%WHf4(68*#gg>Q5dbq>)RQ}a~)(<-*Win$h1-SC-TtNSt z;b)rtlY~uZ`8TQZYNDE4h>7AssdiVz zQT?<=>`u@sh&8P~t~;O$yhUeTK{;HqFl8L4#A7%MGJhMWsykoyxAv(sD%lu2>1wIG zAPu(Qvs>776<{Ac;X3f2*&=T5+^qvIZ~FDgvcK2W2}CTq&S*B7F>&UrQ(k3?j? ze^}3~ep zzuKRhiKI#`zQ|F^zTq?M@R3!lU1^G@WA>+y7S)4oYU?d+C2A~-uc@*+@Unp7wirW^ ztLZg9e8(;2+IBl>NoYJ=XW4OIYnBSSQ^VQTBmgbZ1V(N}4yIf{VszR1>amcJIHR?9$%ru2s&2K8o;{%s%kukU=1-Gi(6 z3}-fEEcR@PyrgnIZhYo*H-3F8_Rf^Yxt*UiI=MMDhi#Ppa;+PMSLo+?3^2QHc4N`d zn;GN5?R(X{0s(O(4ZSKlpieXY&|p}`2_j9wS+n-b4snvAB;u%TGSCNpkZb?krA)OB z!l56d>6r7zY?_yi$*>&0)3G+SALhf7nU%U4A;*C1VqF!V+KUF-m6AQzaH6QAjxJOZ z#-)DmSGKFFRXbmh%IbbV^&ZX`BrQRW*mHr^nN8;MZ9xb_ufqQ7<+;7PL%=C+x#oeBJY92c@X0meL&)CuI^}{QZD&rjYXUI{><%UyIuIDbU!)jv?z$5R(IIyQ zzrvF$uz7FipHTvNW;_m?3HUzI%tDu)HtNtsg||$t6~a};X=1zdXs(d~lphJct!m{? zms>}Lzm%TgI=>usjMRa56)AN1+2KuS@`o z9JQ=oUx2yD2@1((~T!PE5Mm!dcqFn6nzQ?eZ zUqC9!r36fIyzS|_9q4cTgfhLn@UJqP@SlP12sc7Mh?A6;Pdib+1QHlk_4Z-sYRhY>}*gRkRD7*sg*&4wlx*#ODSqNXNlu?-jA4+$yZotQMq(Km z#Ai{fffT6(b3d2tKsH?oJ}vI1*fnAxdv1cHJgn{SOTq5<-sC;s!s!kbS#R;gUE3zce}4ix<}?pL6{d4V^f zi-$OCAvfOI3cyKWe3GF6ZUiX~bH_U@$xYjufdQuA<+!MG@9Q<<`qdP|qqe&qfXa_y zNn5Y&sVK-VGCOzQBfqW1g^i~z47wUoN$LvG7EDtLc@9)N&Ds$ri!x`Khtx**e_iDt zvz0Iqe!(f;wyzLK`QAh*47B%xqNoUvYl%M|I*l$$*mFBYXsMbYNOkNs;d&mb(C(#R zCgaP<($}N{n^#XH>H7usZ@2X%&V3a2qdRafo`_-jQGs~FZuJ)fgkszKB`3FW;y$lC zSlYRVztoYp(-Jkb@)J7dr=h>LuJ<-X0tb1MWe4FTh)Z_X&c;F6(Te!r!mS+$kTvbe zxeVL#QQ~W^%WuiKe(=q=VG~^H(Ej5lZ$B2{ICS!BgEF{0f=rpX@zoMn;M9scwIL4+ zgb7aAGyWY~=7L`RON;6E^|j`?M_YWD+_B8;u^k*ZIl_2}BcNL9l{vZvDFkbS1$G=2@*_RP44xOGMc{o!|7l zQFH-u%-Op1*D}xu9Y5vPS2!MgYnk_^ZN=AERl(Y#ZaZnS<+P%udi5lk%<1Ytf9tRC z{1)}#fubit&05tYIn!o+$b73N9J~Pi{3cI$YB45h0WCc0VpL2%YGXzB=ifHLvz9>s zkw!^Mg1rc6*;5WgF(cH|E~Lf_WaozsY`$C47ZtlO%pihLa$8 z2!Sx;FuCH7!=T^FJoJj)7N!rtyC;3`V0qvjfcpjNs|Ub!bZ0kq^$T9z*(RZf1w88s zy8c8?F8l1|w!DvJ5h-9%69;<6e~#su5MT)3kZuj(uxQ%kF81n#x8N4ZM@ah*1|V-Q z!q@Wdoq=?DUmdVf$nH*8nWsWoI*5W`0`%j!Rep~cV)vkv(m%7{uIH57ii3aS%2shVfibucoz)2LpK8+^Cp8;d}kTo zBZ13ncgN-ZIk}gKZ`L=Ok3-Om8`+Eohq{!gtJ-^$jK3ZcPciC(Yxqls4O}>;$uMKC z*EoNg5aI0{P<$Mh`1}Rg>+fq0y1ICG5BSZS#$9@f<%dr4?}w`h90orJu^JV(w{sL? z-jCA+v~xNnn$yE=&f5!m5Z=xQBxoMw(A&_S^7niQ5)o7qmV=iHR4@bil;%w^8 z*zFKI!f$i0816p8jV&%D7zru zD=Dzwuef@qJeqb7;f-1t=U&af@{>Y@`q1%qCV-Ean)x4?8sgP+@AVGf?g^AQLpP@1 zexx6sKo{r;~!Wv*ncV_iS*Q<=R6hjG|wg(pxtP`2<)**XC~4dEMb(KIBZ)J$C!7J1Ot4 zM900OYz^iC5;GyoL5p+~zjUR7c|6fR=>Qw3#g=#6O^-?BPqI1_<%T<(ehbh>z+W%b``;R5_Zz07&$j!Qo$!7=^Ya@?SdiDwf{;=re-dDc6@s*J=M*)DV z?qo{B`%~J42Nge* z!@7g%7Leq^seYwg+r!b~wv{q?#kicnXzFwQT5e(CE5FtH&qb-p=-<`<`zVJ5h!X(A ziTrzIev4zvp^;y&T`87yte?DnA5s3zdBgKTOt~pM7&!MR zjypoPTt*2G+rL|YP_cnsXUP7SlNlg;Y~VvvpPVCxdzg6Lf*ngOlWH+A#$qz{{L*KJ zlqp9s;sz9`cfBT^3@MU@ojGNhEV0)ZC>A5Ry_84vlbxz&>xaF%}|{7Qni{dvOwMVhi3W8+WZwA5{~Cj%P`lT z$nmYkj*ygMr~Ww;VQ(ai&=kQS;9yFml^g_Fo%TMp$)R>BdjG{Ys>)wS|1 z*v>vRC!Nu$^qkGp|Bh;TPL`<+01em8wS)476f_a%f}@b~6JKtQZT%L8m^gKP(` zeQI>33QCI8I1YNK4!WF(#qmlz`w2MY>J#bYm2EbtSmwY6<+bW4vTkSMG<6$^Cc>xQ zmHT_w!M=%(!if$$E{4wMFu<|4Hg1XC=SRW9NwqKJDdm5*U!J#fWGSbG#t$Uta|izI ziQOaNKjD>3d6tpW5DbR%2-J~!?hoAfieSNw*h>*&g)W@h*QTPO;e0}Tc9k-oCSQVP zHBvUXMAp$A#7*c@onYE^eW}skS!T~k;TCu;*A+octlJ$PNfxjfSNhnf;nH`5LD$=8 z*zM?`AuZUbY530w=?xHM-FWTM_qXo(K6Lpr#3L=MT0mL+AOW*&@RWIycHJ?u0S+_4 zEs!3D!G7_HTl^yq@Hzb1_7;Lsm`l`4m8z-em?Fdb{Kwzsbu;m85Y(~-X?^#3-1kf= z!Rg`04=jtELVyht&lxs>6V!-KKg=PBoT>Y*VTc`doN!3Tv|e}eVk7Yyu7ycApkDB8hH8naCbh1B418fl>~Pmx{1%!^-ritE%Aw0a99 z@L0JFt{3N6wLN89yb;r)^)Kg7PjRJc4Zfg{eF#%r3fka?XJoADM5~2KzunrAJcopz z*t_hfS_K-Q&x1I1R%g5^3pFT$=51RnJ?(M=cBeI*!D7jFRRl24(YW^+F_-8uBPhe8 zyhRmGWy`nTW-#dW?{f=M(djq6XF@5N)|lNpeA>~(@0&V_@JM_nuZ1AWgMY7A4+oZD z7ugX1DC9l>0$lTZafs#>(;5`=1ovlnmIm%cH%aeT4Difm>7>Yz`6~<7Fj_vN5T*4c zty=QVQ`QTac+&H!IXrW#UKWYB?*r^>fj%qWtUG~1eIpvc@y(o@(LAPq@-m53%0 z=F-_^`^s#yz-RgWBbD*X9?;OGza5BP(KV=~Ke)dwAj-OrL;lNCYRdjv(3Pd~c9juf ziACO~;X#t(d<2|Xjd~#dYf9P%a8bOgm9e2*L3!tXhZ_G%sk+z7t{VrjBFZ{(nrK8Q z3-`HLxmkZOQjPs*0Zb*hyVdfIF9erA?6oRZf?a54dZlh*bc1_f3o z8a6|@iY+D)H`p{k(a#>N&sM;TmA#p^-I|d$Qplm~W!Ipn0V<}<)Uh3LlAJ%BOr>#+ zrC8JwosQHUPP3wx^MVB8#<75ITS{aS*{dHK`h;*>ldv*Ae7>`wKe z3+S$v5BK{zk5lpmQq77wGmHnkPG;N%rd_N$HE|=ZqX)>x^5a5Ch!4gK&!Urol0{Gw zt22yGFlVs1UFzaCmg~k3@17H04eVA}`>IP^+*-SIGF-^~sMA>KK0)VRLD!>npl0ka z1#~_TbSgApbn`s^ol zpTwkwen;#SJ{EP<)mBAD=uxZE7@|ZEp;Ns$zvn zr_>Diq}#kZ=@3)+ZQW9yc@WJ|!EB|RT{2_oKhp#_vIX4 z@yR5>Z|7UDRmbw@Dawo$qKLfCh1)@Sd>EqHM=u&K$mYebHY(|78IFuzsH7iR?uWeT zQK^;Ty08kpI0R7(1>Q}O}YpJ$}HIrWWDdsVxzxThiozNU7pk*=J6f2wN8m9VupYgbg&vL!&vg7-8OZC)YmqQi%Nrz^d0{svg&W?r|VUb>-Dx zA4+7;{n8r=Gjvz2FF45!%!;0|4F?5MSDbsU;mq=Gl~y^@bR7;E zFZ|H<(mBU-KF|?GwYN0eYIy#dXwU7{Sd#goOmt73#4EeqNc`$m;P)vn^BZJA+sDrm z!3?knVqn|yBV4Pf@Iml0;d1-=j`cBJ45vMBu*~zCvPT^*wKH}*{k5c2z5UL|<7P8I zBB=9!q>EjP>s@fQWDgBrVh;;)LltDg#Nz z0MOCM`-5ijjf17ySplG3WC*@m=^NP9@3s@- zW{VS6DY)SMxzuHKQxleTR6BG zx|nfevtRiplGKAs8J%AIaL*KXX5LaQ`+Xih=BnwkTJDgZOvX72*c=JpI=5%J zZFCvgGm=Q7R{T-80)wBQm6KZDZf8<|Vx&NR7SD{(W&Y|xvFuWgd|$P;#c=sE zPqv@-7RTqkRzlvRKY?lxQA8J549n}VmOw$F&6WZRcW%&A+FB>VAap`0<(&{9f_ zH0O8oDo|TxCRIaeJ<%rLKjlc}`zNIY^nY$po*z1OaRqs$Tya*55Z5VM&ZhT1mf!f5 zloYw$aqd4+EKrD@c~uy-UQTs9oYO8^@og@s@@X+YF6R@-8q8<#vnjeMvpKGRI~kFO z?#6hNHk?1taBXP2$$zFaI6-M7rV}VDoj-HUY0T~EBo7azs!@o99rfFa%GDm)OX}8L znC z8`rkfNJ`{tZ-_BVDZQ{qxmeMspVZ9S$_4%0-STPJ)-0Gydyg@s^QIX-5&JTi` zW6^o(cZGTlj3fKAEQI2l3RGlZ`LL^l>)der-CW|dkv@hQG-8%mFYkQQuCDnxC90CB zGe%fx!G!GZ%V)U8y2gv`RW&PR1pwQ1F&q~W;zXO3&gU>cKHs0d6O2M;8n#mt6b&-l zk(HOoUSpWFUfVKG%Z`m{(t5yn-fxhv8^IsaQ#^@d$*I}*3WWD~1kSetgV}`prM=p+ z6RaX#601|x<8LP$QoQ*)k-9@amI%smcP`3QP=rl6KULLeFc~Ujyy2K%Vs92tb zJI$$5QAg~wa!ciZnwg;*9SOiQcd3z&++tHpJ5w;_q97lkBtm&45?1N~$%W#>osjo`2y8*xdK%jtx``I@3$j)FqcNW+m+wOv9%4#?sDW79Y}i}u zSu5pqZHU_>!qGOzhFGvbNau0NofU9=5a7A>J>Ac%SqfF(HoA4E1PH_ESi?{G+7pzE zYG10>3!Eo9RmYFkdyB<$sh~(98D6u+(CjGka)?DdY}hEygrD4DP2fVNk}2&KN*ERJ zZJgO=;YD^mH0J(dBj$0yGQ=;O%KuzcA-~twcrcTAJV6uY_r4e=v~jyPCm`Wi z%B!Jx(r}29NzGzEYnXQ+kS(-{H^u%)lHEVqZshWqM4tBPv&*plmm)>aUmP6tZpg@c ztBq%CUXngSVWrwaI)fbLag%~sLG=m5SD%MpBRI3Ddraol`y1ZI`S2gW+Y9-!-LGE# z*sYey5s`KfLxEWMf=Nw+wYAJ`AEyt%ER}JIn`rewBl%vSqlJZn->dW_6xB$*gV)#7 zl}o|3Hlo$FmMW$(bv6ZJ3R)a9Vy1@?1?3$BiNL|?d&kQoXrkQ@_VO8gk%i{dOqCKFkeDNPSRub?A?YTDemOjEqsjZN(;PG^* zt{23>s5Bp|I(n9GWAsj;KCWySPe5FwupK_Erh-<#%SV};OcwpRySEk&oY1pV+tMS3 zjgjw`dSP+u-a?8Osf5{Adt#u$>-w%x@ygnin)8UA%+KZ$)=EHDs=p|=O%wG@FqzT{ z-Az4Xc)8W*_(E61!92BS#o21>=@l!iP~($EWrx+THJ4i>Z7SS#0n&)Zj z0U1+?{#We9TEkD9I3Y4ls`$*Dej;oPU9(j=Pq>tSDZIdyx2_8@YN^<^3c2ZzF5R*F zTxvM^CVzXLJ@F=CPB&BFR+_ZnnT5zgA)ikUZA;NyoE)sQ`{L2iaeyL zQO~bBY;spqEprVUWNrXYxgHGkdii5xMoU%Mf1=b>om8y0F(4hjKBdxhh#q#3>YlY$ zb0a>wvh8bjcQEBkVPi_Qj~Y&`o%%%Z%^ZfO5gB*K-1Q*f;ihf5>U2R3M>5~WnWzHx zilPM|S(!icVFL!L>0}f$ft+gGtaSA3(#sdQv!AlI{cA@Ard>oF+;Qj&bVVY4}jLQ68o5G$?cw!M>0n#bDaol_dlB4{25YvZoyncN|5+I1iDVuZFnuU%N?b>a*8 zJ#%|ltIF@9+Y$SvXv1T(aO1Dc-8UYHq4b3$q?7@n135@7Ht2N=)IyD~+7 z;$9qto{uvrI6d<@WBcK+YvhES(b~l<%;8EBNd; zxcL^RRCq0O0EL?V-v`GW)*koJ^cS z%p~c-=vM53tWeeK8A=9qgIN$qTCG2riQh4E0UZj&mc8iu-VtFKt4%#!M@yTgt+x@B zu2OR#Lu}1KEfrgK;|HK{D@hbaLU?H%hMDAx0KV0Q%wlK1| z(NLJqyUCVsUc0tly{l+N(cJ@IOU8D?u z@tolq^H#y@f-lbWocxJk=MtkPzueK|a>I75ri(_VeEAu?r*h+0ym8nUMKp^Rg!J;> zdlL5V)6aEY>ykgq#& zc)C`yqZQiq3@-6J%r0BiO&G;34z-8#e8^Wo3Q6|)tUMJ?I`@y!rrk>#Cdk80w3goafOpob-LIn_ zhAdXh2k$(>n0C9xx*cBrS6H{$Z>-yNTEguz-Lx7RIXfoC>)?j#Mu>MIb2N%(ft$lk zfulE#%W|)>V=iGT$Bz!K+KTn-Rbd$zy5YLdVf)6O)%druZCmnp&s0A*s%ZE?KfhM` zwtL*DZbPQ@lcb!((C6b`(gHeaYreW|bI@0g()ArJ(GnlqQdKSOk_KU~DWk6RPcN0q zl~K9%_pJmo&TYIzB#t*;-uRw$)K|m+u^-!7lfb>R7L6CEe_Tk zlcj%S-eLjv>rIb)9+9T_857lDTBzFL2(iynYo1W{--9#10+gWJ;l z+vt8I51RDGseX&yHH>N2oAC4eM{@b;zhuGc?XDYAjoV>p1$fq`{MxdYAFB6@Pb(v)mWx9}{XD z^FHBIDEaP9d6$_+OBdxUM7;Dm>MIs%*Lu?_hQ|DXM*8Izk_FMThacm{zG|4Ql@bT- zPuo3qm7k|`_hA*g^q2q2QW{TCSL@S&sIL)!XvQGd%~;~8pAkb~gJ1{xDvY8iiK3)D za{Nqb;q1Qyyalnh2F%G(TKPM6Y~C_B5aVl0!PqxggRr4=FB-MXLdFf@@K#;7&w20- zx`+ujzn{j_jGSAp_L{N+0s5x>6PNDJ+G*QL#rf32!@vqC&B)Gbi`8e%2<&k1aMnN} z!n&}yO5BS__q0JHJZc`Sbj5HXQB^8=GNaIW022=Zy?}{Q)e>!veYWY=8cXCET#+5? zxZ$V=N301)R?7ql-b`|1klw|1v{hP8{IE~G;b2BitXd93gXAg=Q_ zUU|em!OmWlh_{Q&$*S8Cl|MYoyprHqKr~$kI*COizSOh0Kq*8^BG8>I+n6ddGT~fl zWSctD{)V}oY#z@x{uAalPXjvpBzW@}@b6%5i~n<&yJ`8UYC#EmhoFWeXfkQsD}f2O zLa4tlBbIT(&wQ{lA7P0bex53lR@2RHEEv4=F z;$NLjK%Nhk3Ti;p*Zo~Ok5U`^Zo`#T7Z$Nxni$P zMNU?_{A%umc|D$Ms$K2Z{YQ!#-WdZtzUlOg?q7*6YK%l$(2-`^Wy`x03JOA)jWC@X z-$gLGSvEi*Z(x*~7&1*l?&wT-xhi=7JXC;XM)7!6Wf^zO0~x!Bb*<06OE-1AB63zw zsEs#J?`C(TXH5tpu9xw^3nu3T_bZ*4W+Sv1Ja+PnxqM4Qj|4-5qh=7e;|06_Dz{09 z?-JpsdS#~ZouD$Oz~TWBSlS8Qb}a~uxByV@cTdOK z*{rHVs(0zyH8$A1Uniu;n3J#`R<`sWqe2`WevTdS2y%j^)89FwLqNuypWC0p(YC+R zP#g=scCMCg+nOdA1Edg`H5f1MXl`17=AQRfs4lmFaA!i4<)o9BN z+loWvxVoVpIzq{%eUJDWxAq*~%w5duAMBP~hv(4jPp0&RwJ8~T5JJRl4Tzbm76kgc zoWOWo+GON}skguvnd0@h@@&o4flxACw&t(mX&d@E=bRB}E^_5LYkVjZ6ZlkA8m8xq ztb+zM+gBp2F{%3_A41xgmOVn=8E2Sc8W-j3MiNVHO_?r87e7~X%P9J82DVqy_�D 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 z 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

CJmDMF*1z(VO($wf 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%0DHnM==8Y9Ef3FUkdSIM;(_8W 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📘 The main examples in this docs use `pip` or the Cloudsmith CLI. If you use [UV](https://docs.astral.sh/uv/) and wants to learn how to integrate it with Cloudsmith, jump to the [UV Support section](#uv-support). + ## Upload a Package To upload, you need to generate your package first. You can do this with: @@ -102,7 +109,7 @@ You have a choice of 2 methods to set up your Cloudsmith repository: #### Public Repositories -#### Set up via command line +##### Set up via command line Tell pip the location of your Cloudsmith repository using the the `--index-url` option. @@ -110,7 +117,7 @@ Tell pip the location of your Cloudsmith repository using the the `--index-url` pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/public/OWNER/REPOSITORY/python/simple/ ``` -#### Set up via Pip +##### Set up via Pip Similar to set up via command-line, pip needs to be passed the `--index-url` configuration option. To do this add `--index-url` to the top of your `requirements.txt` (or similar) file: @@ -129,7 +136,7 @@ The setup method will differ depending on what authentication type you choose to Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, and you should ensure that you do not commit them in configurations files along with source code, or expose them in any logs. -#### Set up via command line +##### Set up via command line ```shell Entitlement Token Auth pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/python/simple/ @@ -144,7 +151,7 @@ pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://USERNAME:API-KEY@d pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ ``` -#### Set up via Pip +##### Set up via Pip Similar to set up via command-line, pip needs to be passed the `--index-url` configuration option. To do this add `--index-url` to the top of your `requirements.txt` (or similar) file: @@ -165,11 +172,13 @@ PACKAGE_NAME==PACKAGE_VERSION PACKAGE_NAME==PACKAGE_VERSION ``` -#### Private Repository Credential Security + +_**Private Repository Credential Security**_ As private repositories require authentication in order to access the repository content, when specifying a private repository in a `requirements.txt` file please bear in mind that the URL will contain the credentials (especially important if the `requirements.txt` file is shared.) You could choose to encrypt your `requirements.txt` file via something like [git-crypt](https://github.com/AGWA/git-crypt) (if you're using git or GitHub, for example). + ### Removing Setup @@ -197,6 +206,131 @@ See [pip install](https://pip.pypa.io/en/stable/cli/pip_install/#pip-install) fo To search your Cloudsmith repository for packages use the `--index-url` Pip configuration argument. Using the `--index-url` configuration option will force pip to search only the Cloudsmith repository and will result in pip not being able to install public (PyPi) packages that your private package may depend on. This reduces your exposure to dependency confusion attacks. +## UV Support + +`uv` is quickly gaining traction as a Python package and project manager. It stands out for its ultra-fast dependency resolution, native lock-file support (which enables reproducible builds, as we'll discuss later), and a built-in publisher. + +In the following sections, you'll learn how to install and publish your Python packages with uv in your private Cloudsmith repositories. + +### Project setup + +#### Requirements + +In case you don't have it yet, use `pip` to install `uv` and `build`. +```bash +pip install uv --upgrade +uv pip install build +``` + +#### Create project assets + +Let's start defining a new `pyproject.toml` file for your project. Replace `OWNER`, `REPOSITORY` with your own Cloudsmith Workspace and Repository names: + +```toml +[project] +name = "sample-flask-app" +version = "0.1.0" +requires-python = ">=3.10" +dependencies = [ + "requests==2.32.3" +] + +[[tool.uv.index]] +name = "cloudsmith" +url = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/" +# optional, but recommended for publish: +publish-url = "https://api.cloudsmith.io/python/OWNER/REPOSITORY/" +``` + +Then, define the next environmental variables for `uv` to perform basic HTTP Auth. Replace `API-KEY` with your user API Token: + +```bash +# install / resolution +export UV_INDEX_CLOUDSMITH_USERNAME=token # literal string +export UV_INDEX_CLOUDSMITH_PASSWORD=API-KEY + +# optional: forbid fallback to PyPI +export UV_PIP_NO_INDEX=1 + +# publishing +export UV_PUBLISH_USERNAME=token +export UV_PUBLISH_PASSWORD= +``` + +`uv` will use them to authenticate against your Cloudsmith repository. +Now, execute the next command to fetch and install all the required dependencies in your active virtual environment: + +```bash +# create a venv first: +uv venv && source .venv/bin/activate +# install dependencies +uv pip install --system -r pyproject.toml +``` + +You'll find information about the dependencies being fetched: + + + +This will result in all required packages being fetched directly from your Cloudsmith repository (please note that an upstream needs to be configured). + + + +Once installed, just run the next command to build your wheel package and the source distribution (.tar.gz) file, including your Python "source code" and everything required to run it: + +```bash +python -m build && ls dist/ +``` + +Once those assets are ready, just publish both artifacts to Cloudsmith. Remember to specify your `cloudsmith` index as defined in the `[[tool.uv.index.name]]` field in your project definition: + +```bash +uv publish --index cloudsmith dist/* +``` + +Browse to your Cloudsmith repository to find your new application packages. + +📘 This example explain how to run it in your local machine, but instructions can be adjusted to run this process within any of the existing CI/CD tooling you might use: GitHub Actions, GitLab CI, Jenkins, TeamCity, etc. In this case, the only requirement is that the `uv` environmental variables are exported first, so you can push your artifacts into the private Cloudsmith repository. You can find a sample [GH Action workflow](https://github.com/ciaracarey/python-sample-vscode-flask-tutorial/blob/644b230e14bea3763b4c7b4a3f6500c1f664ee25/.github/workflows/python-app.yml) reproducing a similar workflow. + +### Reproducible builds via `uv compile` + +A software compiling process is reproducible when it ensures that it will always output the same binary. + +`uv compile` allows you to lock the exact versions so the environment can be reproduced in later builds. Without locking, the versions of dependencies could change over time, when using a different tool, or across platforms. + +For example, to freeze the dependencies of the previous `pyproject.toml` project and generate a deterministic lock‑file, execute: + +```bash +uv pip compile pyproject.toml -o requirements.lock +``` + +This will generate a `requirements.lock` file like the following: + +``` +Resolved 5 packages in 581ms +# This file was autogenerated by uv via the following command: +# uv pip compile pyproject.toml -o requirements.lock +certifi==2025.6.15 + # via requests +charset-normalizer==3.4.2 + # via requests +idna==3.10 + # via requests +requests==2.32.3 + # via sample-flask-app (pyproject.toml) +urllib3==2.5.0 + # via requests +``` + +This file specifies the version for each of the packages used and the its source. Adding the `uv` dependency freezing capabilities to Cloudsmith Upstreams caching will allow you to guarantee that the software you distribute remain stable and reproducible. + +Once you have the file, you just need to use it to install your project and guarantee all remains unchanged: + +```bash +uv pip install --system --strict -r requirements.lock +``` + +To learn more about other dependency declaration formats supported, visit the [official documentation](https://docs.astral.sh/uv/pip/compile/#locking-environments). + ## Security Scanning Supported From 22b3b30d93d03dd2fec0b08c406f310488166e0c Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 25 Jun 2025 09:26:11 +0200 Subject: [PATCH 002/127] add: small changes --- src/content/formats/cargo-registry.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index 04aebd55..6b6b1a26 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -146,7 +146,7 @@ Cloudsmith supports [https://index.crates.io](https://index.crates.io) as an ups To enable the upstream, browse to your repository overview page and click in the Upstreams tab. Then, click on **+ Add Upstream Proxy** and then choose the **Cargo** Upstream. -In the Upstream creation menu, define a name your Upstream and in the **Proxy URL** field insert `https://index.crates.io/`. Click on **+ Create Upstream Proxy** and the upstream shoud become immediately available. +In the Upstream creation menu, define a name your Upstream and in the **Proxy URL** field insert `https://index.crates.io/`. Click on **+ Create Upstream Proxy** and the upstream should become immediately available. ### Registry Setup From c2eee52931ad0bbb9e51b4ff2db1733e9bd8a09b Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 25 Jun 2025 10:05:51 +0200 Subject: [PATCH 003/127] add: go upstream caching --- src/content/formats/go-registry.mdx | 2 +- src/content/tbc/upstream-proxying-and-caching.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/formats/go-registry.mdx b/src/content/formats/go-registry.mdx index 5c1e3215..0f58df10 100644 --- a/src/content/formats/go-registry.mdx +++ b/src/content/formats/go-registry.mdx @@ -100,7 +100,7 @@ For examples of what your project should look like for packaging and publishing/ #### Configure a new Upstream -Cloudsmith supports [https://proxy.golang.org](https://proxy.golang.org) as an upstream. This allows you to proxy modules not yet in your repository through Cloudsmith for your Golang projects. Caching support is coming soon. +Cloudsmith supports [https://proxy.golang.org](https://proxy.golang.org) as an upstream. This allows you to **proxy** and **cache** modules not yet in your repository through Cloudsmith for your Golang projects. To enable it for your repository, browse to your repository overview page and click in the Upstreams tab. Then, click on **+ Add Upstream Proxy** and then choose the **Go** format Upstream. diff --git a/src/content/tbc/upstream-proxying-and-caching.mdx b/src/content/tbc/upstream-proxying-and-caching.mdx index be8575ed..981699a8 100644 --- a/src/content/tbc/upstream-proxying-and-caching.mdx +++ b/src/content/tbc/upstream-proxying-and-caching.mdx @@ -62,7 +62,7 @@ A good approach when determining what priority to apply to upstreams is to ensur |[Dart](/formats/dart-repository)|N/A| ✅ | ✅ | ✅ |

Ahead-of-Time
| |[Debian](/formats/debian-repository)|N/A| ✅ | ✅ | ✅ |
Ahead-of-Time
| |[Docker](/formats/docker-registry)|N/A| ✅ | ✅ | ✅ |
Just-in-Time
| -|[Golang ](/formats/go-repository)| N/A | ✅ | ❌ | ✅ |
Ahead-of-Time
| +|[Golang ](/formats/go-repository)| N/A | ✅ | ✅ | ✅ |
Ahead-of-Time
| |[Gradle ](/formats/gradle-repository)|N/A| ✅ | ✅ | ✅ |
Just-in-Time
| |[Helm](/formats/helm-chart-repository)|N/A| ✅ | ✅ | ✅ |
Ahead-of-Time
| |[Hex](/formats/hex-repository)|N/A| ✅ | ✅ | ✅ |
Ahead-of-Time
| From a526b6108aceb762aa84a9858238ac175b36e80e Mon Sep 17 00:00:00 2001 From: "Pablo J. Lopez Zaldivar" Date: Wed, 25 Jun 2025 15:03:09 +0200 Subject: [PATCH 004/127] [DOCS-no-ticket] go upstream: add EA note --- src/content/formats/go-registry.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/content/formats/go-registry.mdx b/src/content/formats/go-registry.mdx index 0f58df10..3a392a8e 100644 --- a/src/content/formats/go-registry.mdx +++ b/src/content/formats/go-registry.mdx @@ -100,6 +100,10 @@ For examples of what your project should look like for packaging and publishing/ #### Configure a new Upstream + +Go upstreams are still in Early Access. [Contact us](https://cloudsmith.com/company/contact-us) to enable it for your organization. + + Cloudsmith supports [https://proxy.golang.org](https://proxy.golang.org) as an upstream. This allows you to **proxy** and **cache** modules not yet in your repository through Cloudsmith for your Golang projects. To enable it for your repository, browse to your repository overview page and click in the Upstreams tab. Then, click on **+ Add Upstream Proxy** and then choose the **Go** format Upstream. From a594d373de2dc0fb1aa127bd7285f42ba239104b Mon Sep 17 00:00:00 2001 From: "Pablo J. Lopez Zaldivar" Date: Wed, 25 Jun 2025 15:25:33 +0200 Subject: [PATCH 005/127] [gradle] use native maven API context: https://cloudsmith-io.slack.com/archives/C03RCPME8J3/p1750853778322639 --- src/content/formats/gradle-repository.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index 1d07f256..8f2298eb 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -46,7 +46,7 @@ These examples use the Groovy-based syntax for Gradle. For the Kotlin syntax, pl The endpoint for native Gradle API (Maven-based) is: ``` -https://api.cloudsmith.io/maven/ +https://maven.cloudsmith.io/ ``` For Maven-based publishing you'll need to enable the maven-publish plugin: @@ -64,9 +64,9 @@ publishing { repositories { maven { name = "cloudsmith" - url = "https://api.cloudsmith.io/maven/OWNER/REPOSITORY/" - def releasesRepoUrl = "https://api.cloudsmith.io/maven/OWNER/REPOSITORY/" - def snapshotsRepoUrl = "https://api.cloudsmith.io/maven/OWNER/REPOSITORY/" + url = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" + def releasesRepoUrl = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" + def snapshotsRepoUrl = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" url = version.endsWith('SNAPSHOT') ? **snapshotsRepoUrl **: releasesRepoUrl credentials { username = 'USERNAME' @@ -226,4 +226,4 @@ Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documenta Gradle + Java8 can experience issues with SNI (Server Name Indicator) endpoints which we use to power our CDN, like https://maven.cloudsmith.io. If you experience occasional or intermittent publish failures, resulting in a 443 error, then please update your endpoint to https://api-g.cloudsmith.io/maven. -Contact us [here](https://support.cloudsmith.com). We're always happy to help! \ No newline at end of file +Contact us [here](https://support.cloudsmith.com). We're always happy to help! From f029d18e7830a6d1564f539a7cb03ae4cc7ef80c Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 25 Jun 2025 23:27:01 +0200 Subject: [PATCH 006/127] test: work with 2 api versions --- src/app/(api)/Sidebar.tsx | 37 +- src/app/(api)/api/[...slug]/page.tsx | 120 - .../page.module.css | 0 src/app/(api)/api/[[...slug]]/page.tsx | 126 + src/app/(api)/api/page.tsx | 53 - src/content/documentation.mdx | 7 - src/content/getting-started/index.mdx | 58 +- src/content/getting-started/key-concepts.mdx | 8 +- src/content/homepage.json | 2 +- src/content/menu.json | 2 +- src/content/schemas/api-schema-v2.json | 59811 ++++++++ src/content/schemas/api-schema-v3.json | 118840 ++++++++------- src/lib/swagger/parse.ts | 31 +- src/lib/swagger/types.ts | 1 + src/lib/swagger/util.ts | 7 +- 15 files changed, 119446 insertions(+), 59657 deletions(-) delete mode 100644 src/app/(api)/api/[...slug]/page.tsx rename src/app/(api)/api/{[...slug] => [[...slug]]}/page.module.css (100%) create mode 100644 src/app/(api)/api/[[...slug]]/page.tsx delete mode 100644 src/app/(api)/api/page.tsx delete mode 100644 src/content/documentation.mdx create mode 100644 src/content/schemas/api-schema-v2.json diff --git a/src/app/(api)/Sidebar.tsx b/src/app/(api)/Sidebar.tsx index 4e1c621e..29444242 100644 --- a/src/app/(api)/Sidebar.tsx +++ b/src/app/(api)/Sidebar.tsx @@ -5,16 +5,37 @@ import { parseSchema, toMenuItems, toOperations } from '@/lib/swagger/parse'; export const Sidebar = async () => { const menuData = getMenuItem('api'); - const schema = await parseSchema(); - const operations = toOperations(schema); - const menuItems = toMenuItems(operations); + // Load and process both schemas in parallel for better performance + const [schemaV3, schemaV2] = await Promise.all([ + parseSchema('v3'), + parseSchema('v2'), + ]); + // Process V3 operations and menu items + const operationsV3 = toOperations(schemaV3, 'v3'); + const menuItemsV3 = toMenuItems(operationsV3); + + // Process V2 operations and menu items + const operationsV2 = toOperations(schemaV2, 'v2'); + const menuItemsV2 = toMenuItems(operationsV2); + + // Build the final menu structure const allItems = []; - if (menuData.children) allItems.push(...menuData.children); - allItems.push({ - title: 'API', - children: menuItems, - }); + if (menuData?.children) { + allItems.push(...menuData.children); + } + + // Add versioned API menus + allItems.push( + { + title: 'API v3', + children: menuItemsV3, + }, + { + title: 'API v2', + children: menuItemsV2, + }, + ); return ; }; diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx deleted file mode 100644 index d641888e..00000000 --- a/src/app/(api)/api/[...slug]/page.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph } from '@/components'; -import { loadMdxInfo } from '@/lib/markdown/util'; -import { parseSchema, toOperations } from '@/lib/swagger/parse'; -import { toRouteSegments, toSlug } from '@/lib/util'; -import { notFound } from 'next/navigation'; -import type { Metadata } from 'next'; -import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; -import WithQuicknav from '@/components/WithQuickNav'; - -import styles from './page.module.css'; - -export const dynamicParams = false; - -export async function generateMetadata({ params }: PageProps): Promise { - const { slug } = await params; - const qualifiedSlug = toSlug(slug); - - // First check if this is an MDX file - const content = await loadMdxInfo('api'); - const mdxInfo = content.filter((info) => info.slug !== '').find((info) => info.slug === qualifiedSlug); - - if (mdxInfo) { - return withMdxMetadata(mdxInfo.file, { - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API', - }); - } - - // For Swagger operations, use the operation details - const schema = await parseSchema(); - const operations = toOperations(schema); - const operation = operations.find((op) => op.slug === qualifiedSlug); - - if (operation) { - return { - title: { - template: `%s | Cloudsmith API`, - default: `${operation.menuSegments.join(' - ')}`, - }, - description: operation.description, - }; - } - - return withDefaultMetadata({ - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API Reference', - }); -} - -export const generateStaticParams = async () => { - // Generate mdx slugs - const content = await loadMdxInfo('api'); - const mdxSlugs = content - .filter((info) => info.slug !== '') // Exclude the root path - .map((info) => ({ slug: info.segments })); - - // Generate swagger slugs - const schema = await parseSchema(); - const operations = toOperations(schema); - const operationSlugs = operations.map((op) => ({ slug: toRouteSegments(op.slug) })); - - return mdxSlugs.concat(operationSlugs); -}; - -const Page = async ({ params }: PageProps) => { - const { slug } = await params; - const qualifiedSlug = toSlug(slug); - - // First check if this is an MDX file - const content = await loadMdxInfo('api'); - const mdxInfo = content.find((info) => info.slug === qualifiedSlug); - - if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); - - return ( - - - {lastUpdated ? : null} - - ); - } - - // Otherwise render as an operation - const schema = await parseSchema(); - const operations = toOperations(schema); - const operation = operations.find((op) => op.slug === qualifiedSlug); - - if (operation) { - return ( -
- {operation.title} - {operation.description ? {operation.description} : null} - -
- - Request - - - - - - Response - - -
-
- ); - } - - return notFound(); -}; - -interface PageProps { - params: Promise<{ slug: string[] }>; -} - -export default Page; diff --git a/src/app/(api)/api/[...slug]/page.module.css b/src/app/(api)/api/[[...slug]]/page.module.css similarity index 100% rename from src/app/(api)/api/[...slug]/page.module.css rename to src/app/(api)/api/[[...slug]]/page.module.css diff --git a/src/app/(api)/api/[[...slug]]/page.tsx b/src/app/(api)/api/[[...slug]]/page.tsx new file mode 100644 index 00000000..d3e6e827 --- /dev/null +++ b/src/app/(api)/api/[[...slug]]/page.tsx @@ -0,0 +1,126 @@ +import { notFound } from 'next/navigation'; +import type { Metadata } from 'next'; +import { toOperations, parseSchema } from '@/lib/swagger/parse'; +import { ApiOperation } from '@/lib/swagger/types'; +import WithQuickNav from '@/components/WithQuickNav'; +import { ApiRequest } from '@/components/ApiRequest'; +import { ApiResponses } from '@/components/ApiResponses'; +import { Heading, Paragraph, TimeAgo } from '@/components'; +import { loadMdxInfo } from '@/lib/markdown/util'; +import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; +import page from './page.module.css'; + +async function getOperation(slug: string[]): Promise { + if (!slug || slug.length < 2) return undefined; + + const version = slug[0] as 'v2' | 'v3'; + const operationSlug = slug.slice(1).join('/'); + + if (version !== 'v2' && version !== 'v3') { + return undefined; + } + + const schema = await parseSchema(version); + const operations = toOperations(schema, version); + return operations.find((op) => op.slug === operationSlug); +} + +export async function generateStaticParams() { + const [schemaV3, schemaV2] = await Promise.all([ + parseSchema('v3'), + parseSchema('v2'), + ]); + + const operationsV3 = toOperations(schemaV3, 'v3'); + const operationsV2 = toOperations(schemaV2, 'v2'); + const allOperations = [...operationsV3, ...operationsV2]; + + const operationSlugs = allOperations.map((op) => ({ + slug: [op.version, ...op.slug.split('/')], + })); + + // IMPORTANT: Add an empty slug to ensure the root /api page is generated. + // This was the cause of the disappearing menu items. + return [...operationSlugs, { slug: [] }]; +} + +export async function generateMetadata({ params }: { params: { slug?: string[] } }): Promise { + if (!params.slug || params.slug.length === 0) { + const content = await loadMdxInfo('api'); + const mdxInfo = content.find((info) => info.slug === ''); + if (mdxInfo) { + return withMdxMetadata(mdxInfo.file, { + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API Reference', + }); + } + return withDefaultMetadata({ + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API Reference', + }); + } + + const operation = await getOperation(params.slug); + if(operation) { + return { + title: `${operation.title} | Cloudsmith API Reference`, + description: operation.summary, + } + } + + return { + title: 'API Documentation', + }; +} + + +export default async function Page({ params }: { params: { slug?: string[] } }) { + if (!params.slug || params.slug.length === 0) { + const content = await loadMdxInfo('api'); + const mdxInfo = content.find((info) => info.slug === ''); + + if (mdxInfo) { + const mdxModule = await import(`@/content/${mdxInfo.file}`); + const { default: Post } = mdxModule; + const lastUpdated = getLastUpdated(mdxModule); + + return ( + +
+ + {lastUpdated ? : null} +
+
+ ); + } + } + + const operation = await getOperation(params.slug as string[]); + + if (!operation) { + notFound(); + } + + return ( + +
+ {operation.title} + {operation.summary && {operation.summary}} + +
+ Request + +
+
+ Response + +
+
+
+ ); +} diff --git a/src/app/(api)/api/page.tsx b/src/app/(api)/api/page.tsx deleted file mode 100644 index 6b73b3fb..00000000 --- a/src/app/(api)/api/page.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { loadMdxInfo } from '@/lib/markdown/util'; -import { notFound } from 'next/navigation'; -import type { Metadata } from 'next'; -import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; -import { TimeAgo } from '@/components'; -import WithQuicknav from '@/components/WithQuickNav'; - -export const generateStaticParams = async () => { - return [{}]; // Generate just the root /api route -}; - -export async function generateMetadata(): Promise { - const content = await loadMdxInfo('api'); - const mdxInfo = content.find((info) => info.slug === ''); - - if (mdxInfo) { - return withMdxMetadata(mdxInfo.file, { - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API Reference', - }); - } - - return withDefaultMetadata({ - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API Reference', - }); -} - -/** - * This page is needed in order to serve api/index.mdx with the API sidebar. - * catch-all routes don't serve index files. - */ -const Page = async () => { - const content = await loadMdxInfo('api'); - const mdxInfo = content.find((info) => info.slug === ''); - - if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); - - return ( - - - {lastUpdated ? : null} - - ); - } - - return notFound(); -}; - -export default Page; diff --git a/src/content/documentation.mdx b/src/content/documentation.mdx deleted file mode 100644 index e537c0fa..00000000 --- a/src/content/documentation.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Documentation -description: This is the documentation page -lastUpdated: 2025-01-01 ---- - -Content goes here diff --git a/src/content/getting-started/index.mdx b/src/content/getting-started/index.mdx index 5295538a..4f3b0666 100644 --- a/src/content/getting-started/index.mdx +++ b/src/content/getting-started/index.mdx @@ -11,7 +11,9 @@ Cloudsmith is a cloud-native, hosted, package management service with deep focus Store public, private and open-source packages in Cloudsmith to help you manage, track and control the software used within your development and deployment pipelines or when you distribute it to your customers. -[Install the CLI](/getting-started/cli) +Learn more about [**Supported formats**](/formats). + +--- @@ -38,48 +40,22 @@ Store public, private and open-source packages in Cloudsmith to help you manage, Cloudsmith is built by developers, for developers. We understand the workflows and processes that developers use and need, and we try to ensure that what we build brings value to our customers, and generally makes their lives easier. -We believe in what we have built. We love to talk to other developers about what we have created, how it can fit into their development processes, and how we can help. If you have questions or would like to chat, please just [contact us](/contact-us). +We believe in what we have built. We love to talk to other developers about what we have created, how it can fit into their development processes, and how we can help. If you have questions or would like to chat, please just [contact us](https://cloudsmith.com/company/contact-us). ### REST API + Retrieve information, upload packages, or take actions programmatically through our API. -- [REST API Reference]() +- [REST API Reference](/api) - [API Bindings](/getting-started/api-bindings) +### Cloudsmith CLI + +The Cloudsmith Command Line Interface (CLI) allows users, machines and other services to access and integrate smoothly with Cloudsmith without requiring explicit plugins or tools. + +Learn how to [install the CLI](/getting-started/cli). + ### Webhooks + Stay informed by receiving notifications when particular actions take place within Cloudsmith. --[Webhooks Guide](/logs-and-observability/webhooks) --[Origin IP Addresses]() - - -## Universal Format Support - -Cloudsmith is proud to support the following formats: - -- [Alpine](/formats/alpine-repository) -- [Cargo](/formats/cargo-registry) -- [Chocolatey](/formats/chocolatey-repository) -- [CocoaPods](/formats/cocoapods-repository) -- [Composer](/formats/composer-repository) -- [Conan](/formats/conan-repository) -- [Conda](/formats/conda-repository) -- [CRAN](/formats/cran-repository) -- [Dart](/formats/dart-repository) -- [Debian](/formats/debian-repository) -- [Docker](/formats/docker-registry) -- [Go](/formats/go-registry) -- [Gradle](/formats/gradle-repository) -- [Helm Charts](/formats/helm-chart-repository) -- [Hex](/formats/hex-repository) -- [LuaRocks](/formats/luarocks-repository) -- [Maven](/formats/maven-repository) -- [npm](/formats/npm-registry) -- [NuGet](/formats/nuget-feed/) -- [PowerShell Modules](/formats/powershell-modules-repository) -- [Python](/formats/python-repository) -- [Raw](/formats/raw-repository) -- [RPM](/formats/redhat-repository) -- [sbt](/formats/sbt-repository) -- [Swift](/formats/swift-registry) -- [Terraform Modules](/formats/terraform-modules-repository) -- [Unity](/formats/unity-registry) -- [Vagrant](/formats/vagrant-repository) \ No newline at end of file +- [Webhooks Guide](/logs-and-observability/webhooks) +- [Origin IP Addresses]() \ No newline at end of file diff --git a/src/content/getting-started/key-concepts.mdx b/src/content/getting-started/key-concepts.mdx index 9b4e76b9..6ae549a2 100644 --- a/src/content/getting-started/key-concepts.mdx +++ b/src/content/getting-started/key-concepts.mdx @@ -1,8 +1,12 @@ --- -title: Getting Started +title: Key Concepts --- -# What is Package Management +# Key Concepts + +{/* TODO: update with Amy's Glossary */} + +## Package Management Package management is the process of handling the many and varied dependencies and artifacts for your servers, applications, and developers. These are the archives, binaries, libraries, tools, scripts, modules, snippets, metadata, assets and even datasets that power your processes, products, and solutions. diff --git a/src/content/homepage.json b/src/content/homepage.json index 86185010..2c0f018e 100644 --- a/src/content/homepage.json +++ b/src/content/homepage.json @@ -5,7 +5,7 @@ "buttons": [ { "label": "Documentation", - "href": "/documentation" + "href": "/getting-started" }, { "label": "Guides", diff --git a/src/content/menu.json b/src/content/menu.json index 21be2cba..2544b8f8 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -1,7 +1,7 @@ { "documentation": { "title": "Documentation", - "path": "/documentation", + "path": "/getting-started", "icon": "action/documentation", "children": [ { diff --git a/src/content/schemas/api-schema-v2.json b/src/content/schemas/api-schema-v2.json new file mode 100644 index 00000000..8087d0c5 --- /dev/null +++ b/src/content/schemas/api-schema-v2.json @@ -0,0 +1,59811 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "dev", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io", + "contact": { + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io", + "email": "support@cloudsmith.io" + }, + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "v1" + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "paths": { + "/audit-log/{owner}/": { + "get": { + "operationId": "audit_log_namespace_list", + "summary": "Lists audit log entries for a specific namespace.", + "description": "Lists audit log entries for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NamespaceAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/audit-log/{owner}/{repo}/": { + "get": { + "operationId": "audit_log_repo_list", + "summary": "Lists audit log entries for a specific repository.", + "description": "Lists audit log entries for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "get": { + "operationId": "badges_version_list", + "summary": "Get latest package version for a package or package group.", + "description": "Get latest package version for a package or package group.", + "parameters": [ + { + "name": "badge_token", + "in": "query", + "description": "Badge token to authenticate for private packages", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "cacheSeconds", + "in": "query", + "description": "Override the shields.io badge cacheSeconds value.", + "required": false, + "schema": { + "type": "string", + "default": "300" + } + }, + { + "name": "color", + "in": "query", + "description": "Override the shields.io badge color value.", + "required": false, + "schema": { + "type": "string", + "default": "12577E" + } + }, + { + "name": "label", + "in": "query", + "description": "Override the shields.io badge label value.", + "required": false, + "schema": { + "type": "string", + "default": "cloudsmith" + } + }, + { + "name": "labelColor", + "in": "query", + "description": "Override the shields.io badge labelColor value.", + "required": false, + "schema": { + "type": "string", + "default": "021F2F" + } + }, + { + "name": "logoColor", + "in": "query", + "description": "Override the shields.io badge logoColor value.", + "required": false, + "schema": { + "type": "string", + "default": "45B6EE" + } + }, + { + "name": "logoWidth", + "in": "query", + "description": "Override the shields.io badge logoWidth value.", + "required": false, + "schema": { + "type": "string", + "default": "10" + } + }, + { + "name": "render", + "in": "query", + "description": "If true, badge will be rendered", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "shields", + "in": "query", + "description": "If true, a shields response will be generated", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_latest", + "in": "query", + "description": "If true, for latest version badges a '(latest)' suffix is added", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "style", + "in": "query", + "description": "Override the shields.io badge style value.", + "required": false, + "schema": { + "type": "string", + "default": "flat-square" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionBadge" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "badges" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_identifiers", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/plans/": { + "parameters": [] + }, + "/billing/{owner}/account-status/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/{invoice_id}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/payment-methods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/periods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/portal/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/subscription/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/trial/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_kind", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/{identifier}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/distros/": { + "get": { + "operationId": "distros_list", + "summary": "Get a list of all supported distributions.", + "description": "Get a list of all supported distributions.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/distros/{slug}/": { + "get": { + "operationId": "distros_read", + "summary": "View for viewing/listing distributions.", + "description": "View for viewing/listing distributions.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "entitlements_list", + "summary": "Get a list of all entitlements in a repository.", + "description": "Get a list of all entitlements in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names of entitlements.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "If true, only include active tokens", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of entitlement tokens", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "entitlements_create", + "summary": "Create a specific entitlement in a repository.", + "description": "Create a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/sync/": { + "post": { + "operationId": "entitlements_sync", + "summary": "Synchronise tokens from a source repository.", + "description": "Synchronise tokens from a source repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSyncRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The tokens have been synchronised from the source repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "entitlements_read", + "summary": "Get a specific entitlement in a repository.", + "description": "Get a specific entitlement in a repository.", + "parameters": [ + { + "name": "fuzzy", + "in": "query", + "description": "If true, entitlement identifiers including name will be fuzzy matched.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Retrieved the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Couldn't retrieve the specified token because the request contains an error.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "entitlements_partial_update", + "summary": "Update a specific entitlement in a repository.", + "description": "Update a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "The entitlement cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "entitlements_delete", + "summary": "Delete a specific entitlement in a repository.", + "description": "Delete a specific entitlement in a repository.", + "responses": { + "204": { + "description": "Soft-deleted the specified entitlement token successfully." + }, + "400": { + "description": "The entitlement cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/disable/": { + "post": { + "operationId": "entitlements_disable", + "summary": "Disable an entitlement token in a repository.", + "description": "Disable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been disabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/enable/": { + "post": { + "operationId": "entitlements_enable", + "summary": "Enable an entitlement token in a repository.", + "description": "Enable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been enabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/refresh/": { + "post": { + "operationId": "entitlements_refresh", + "summary": "Refresh an entitlement token in a repository.", + "description": "Refresh an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The entitlement token has been refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefresh" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/reset/": { + "post": { + "operationId": "entitlements_reset", + "summary": "Reset the statistics for an entitlement token in a repository.", + "description": "Reset the statistics for an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "The entitlement token statistics have been reset." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/": { + "post": { + "operationId": "files_create", + "summary": "Request URL(s) to upload new package file upload(s) to.", + "description": "Request URL(s) to upload new package file upload(s) to.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "202": { + "description": "The upload request was accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/validate/": { + "post": { + "operationId": "files_validate", + "summary": "Validate parameters used for create.", + "description": "Validate parameters used for create.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/abort/": { + "post": { + "operationId": "files_abort", + "summary": "Abort a multipart file upload.", + "description": "Abort a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "The multipart upload was aborted successfully." + }, + "400": { + "description": "The multipart upload could not be aborted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/complete/": { + "post": { + "operationId": "files_complete", + "summary": "Complete a multipart file upload.", + "description": "Complete a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "201": { + "description": "The multipart upload was completed successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "The multipart upload could not be completed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/info/": { + "get": { + "operationId": "files_info", + "summary": "Get upload information to perform a multipart file upload.", + "description": "Get upload information to perform a multipart file upload.", + "parameters": [ + { + "name": "filename", + "in": "query", + "description": "The filename of the file being uploaded", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "part_number", + "in": "query", + "description": "The part number to be uploaded next", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Information for multipart uploaded retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFilePartsUpload" + } + } + } + }, + "400": { + "description": "The provided upload file was not a multipart upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/formats/": { + "get": { + "operationId": "formats_list", + "summary": "Get a list of all supported package formats.", + "description": "Get a list of all supported package formats.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Format" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/formats/{slug}/": { + "get": { + "operationId": "formats_read", + "summary": "Get a specific supported package format.", + "description": "Get a specific supported package format.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Format" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/orgs/slugify/": { + "parameters": [] + }, + "/internal/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/user/confirm/": { + "parameters": [] + }, + "/internal/user/escalate/": { + "parameters": [] + }, + "/internal/user/login/": { + "parameters": [] + }, + "/internal/user/password/request-reset/": { + "parameters": [] + }, + "/internal/user/password/reset/": { + "parameters": [] + }, + "/internal/user/signup/": { + "parameters": [] + }, + "/internal/user/two-factor/": { + "parameters": [] + }, + "/internal/user/verify-device/": { + "parameters": [] + }, + "/internal/user/zendesk/jwt/": { + "parameters": [] + }, + "/licenses/": { + "parameters": [] + }, + "/metrics/entitlements/{owner}/": { + "get": { + "operationId": "metrics_entitlements_account_list", + "summary": "View for listing entitlement token metrics, across an account.", + "description": "View for listing entitlement token metrics, across an account.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", + "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "metrics_entitlements_repo_list", + "summary": "View for listing entitlement token metrics, for a repository.", + "description": "View for listing entitlement token metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/packages/{owner}/{repo}/": { + "get": { + "operationId": "metrics_packages_list", + "summary": "View for listing package usage metrics, for a repository.", + "description": "View for listing package usage metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "packages", + "in": "query", + "description": "A comma seperated list of packages (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for packages.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/namespaces/": { + "get": { + "operationId": "namespaces_list", + "summary": "Get a list of all namespaces the user belongs to.", + "description": "Get a list of all namespaces the user belongs to.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [] + }, + "/namespaces/{slug}/": { + "get": { + "operationId": "namespaces_read", + "summary": "Get a specific namespace that the user belongs to.", + "description": "Get a specific namespace that the user belongs to.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/openid/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/": { + "get": { + "operationId": "orgs_list", + "summary": "Get a list of all the organizations you are associated with.", + "description": "Get a list of all the organizations you are associated with.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [] + }, + "/orgs/{org}/": { + "get": { + "operationId": "orgs_read", + "summary": "Get the details for the specific organization.", + "description": "Get the details for the specific organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "delete": { + "operationId": "orgs_delete", + "summary": "Delete the specified organization.", + "description": "Delete the specified organization.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/enforce/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/relax/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/authentication-policy": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/company-logo/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/custom-domains/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/default-object-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/delete-org/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/": { + "get": { + "operationId": "orgs_deny-policy_list", + "summary": "Get a list of all package deny policies.", + "description": "Get a list of all package deny policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_deny-policy_create", + "summary": "Create a package deny policy.", + "description": "Create a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_deny-policy_read", + "summary": "Get a package deny policy.", + "description": "Get a package deny policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_deny-policy_update", + "summary": "Update a package deny policy.", + "description": "Update a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_deny-policy_partial_update", + "summary": "Partially update a package deny policy.", + "description": "Partially update a package deny policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_deny-policy_delete", + "summary": "Delete a package deny policy.", + "description": "Delete a package deny policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/check/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/global-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/": { + "get": { + "operationId": "orgs_invites_list", + "summary": "Get a list of all invites for an organization.", + "description": "Get a list of all invites for an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization invites", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization invites not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_invites_create", + "summary": "Create an organization invite for a specific user", + "description": "Create an organization invite for a specific user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Invite sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/": { + "patch": { + "operationId": "orgs_invites_partial_update", + "summary": "Update a specific organization invite.", + "description": "Update a specific organization invite.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Invite updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_invites_delete", + "summary": "Delete a specific organization invite", + "description": "Delete a specific organization invite", + "responses": { + "204": { + "description": "Deleted the organization invite successfully." + }, + "400": { + "description": "The organization invite cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/extend/": { + "post": { + "operationId": "orgs_invites_extend", + "summary": "Extend an organization invite.", + "description": "Extend an organization invite.", + "responses": { + "200": { + "description": "The invite has been extended", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/resend/": { + "post": { + "operationId": "orgs_invites_resend", + "summary": "Resend an organization invite.", + "description": "Resend an organization invite.", + "responses": { + "200": { + "description": "The invite has been resent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy-violation/": { + "get": { + "operationId": "orgs_license-policy-violation_list", + "summary": "List all current license policy violations for this Organization.", + "description": "List all current license policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" + } + } + }, + "title": "PackageLicensePolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/": { + "get": { + "operationId": "orgs_license-policy_list", + "summary": "Get a list of all package license policies.", + "description": "Get a list of all package license policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_create", + "summary": "Create a package license policy.", + "description": "Create a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_license-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_read", + "summary": "Get a package license policy.", + "description": "Get a package license policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_license-policy_update", + "summary": "Update a package license policy.", + "description": "Update a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_license-policy_partial_update", + "summary": "Partially update a package license policy.", + "description": "Partially update a package license policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_license-policy_delete", + "summary": "Delete a package license policy.", + "description": "Delete a package license policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/disable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/enable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/": { + "get": { + "operationId": "orgs_members_list", + "summary": "Get the details for all organization members.", + "description": "Get the details for all organization members.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "is_active", + "in": "query", + "description": "Filter for active/inactive users.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", + "required": false, + "schema": { + "type": "string", + "default": "user_name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization's members", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/": { + "get": { + "operationId": "orgs_members_read", + "summary": "Get the details for a specific organization member.", + "description": "Get the details for a specific organization member.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_members_partial_update", + "summary": "Views for working with organization members.", + "description": "Views for working with organization members.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_members_delete", + "summary": "Removes a member from the organization.", + "description": "Removes a member from the organization.", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/refresh/": { + "post": { + "operationId": "orgs_members_refresh", + "summary": "Refresh a member of the organization's API key.", + "description": "Refresh a member of the organization's API key.", + "responses": { + "204": { + "description": "Org member API key has been refreshed." + }, + "400": { + "description": "The org member's API key cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org member not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/remove/": { + "get": { + "operationId": "orgs_members_remove", + "summary": "Removes a member from the organization (deprecated, use DELETE instead).", + "description": "Removes a member from the organization (deprecated, use DELETE instead).", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-role/": { + "patch": { + "operationId": "orgs_members_update_role", + "summary": "Update a member's role in the organization.", + "description": "Update a member's role in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-visibility/": { + "patch": { + "operationId": "orgs_members_update_visibility", + "summary": "Update a member's visibility in the organization.", + "description": "Update a member's visibility in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/": { + "get": { + "operationId": "orgs_openid-connect_list", + "summary": "Retrieve the list of OpenID Connect provider settings for the org.", + "description": "Retrieve the list of OpenID Connect provider settings for the org.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_openid-connect_create", + "summary": "Create the OpenID Connect provider settings for the org.", + "description": "Create the OpenID Connect provider settings for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "201": { + "description": "Created the OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/{slug_perm}/": { + "get": { + "operationId": "orgs_openid-connect_read", + "summary": "Retrieve a specific OpenID Connect provider setting for the org.", + "description": "Retrieve a specific OpenID Connect provider setting for the org.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_openid-connect_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_openid-connect_partial_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_openid-connect_delete", + "summary": "Delete a specific OpenID Connect provider setting for the org.", + "description": "Delete a specific OpenID Connect provider setting for the org.", + "responses": { + "204": { + "description": "Deleted the specified OpenID Connect provider setting successfully." + }, + "400": { + "description": "The specified OpenID Connect provider setting cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/license/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/vulnerability/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/product-features/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-authentication": { + "get": { + "operationId": "orgs_saml-authentication_read", + "summary": "Retrieve the SAML Authentication settings for this Organization.", + "description": "Retrieve the SAML Authentication settings for this Organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "orgs_saml-authentication_partial_update", + "summary": "Update the SAML Authentication settings for this Organization.", + "description": "Update the SAML Authentication settings for this Organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/": { + "get": { + "operationId": "orgs_saml-group-sync_list", + "summary": "Get the details of all SAML Group Sync mapping within an organization.", + "description": "Get the details of all SAML Group Sync mapping within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of all SAML Group Sync mappings for this org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_saml-group-sync_create", + "summary": "Create a new SAML Group Sync mapping within an organization.", + "description": "Create a new SAML Group Sync mapping within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The SAML Group Sync mapping was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/disable/": { + "post": { + "operationId": "orgs_saml-group-sync_disable", + "summary": "Disable SAML Group Sync for this organization.", + "description": "Disable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been disabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/enable/": { + "post": { + "operationId": "orgs_saml-group-sync_enable", + "summary": "Enable SAML Group Sync for this organization.", + "description": "Enable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been enabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/status/": { + "get": { + "operationId": "orgs_saml-group-sync_status", + "summary": "Retrieve the SAML Group Sync status for this organization.", + "description": "Retrieve the SAML Group Sync status for this organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Group Sync status for this organization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/{slug_perm}/": { + "delete": { + "operationId": "orgs_saml-group-sync_delete", + "summary": "Delete a SAML Group Sync mapping from an organization.", + "description": "Delete a SAML Group Sync mapping from an organization.", + "responses": { + "204": { + "description": "Mapping removed successfully" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim/refresh-token": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/": { + "get": { + "operationId": "orgs_services_list", + "summary": "Get a list of all services within an organization.", + "description": "Get a list of all services within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of services within an Organization.Available options are: name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", + "required": false, + "schema": { + "type": "string", + "default": "created_at" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of services within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Service" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "orgs_services_create", + "summary": "Create a service within an organization.", + "description": "Create a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Created the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/": { + "get": { + "operationId": "orgs_services_read", + "summary": "Retrieve details of a single service within an organization.", + "description": "Retrieve details of a single service within an organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_services_partial_update", + "summary": "Update a service within an organization.", + "description": "Update a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_services_delete", + "summary": "Delete a specific service", + "description": "Delete a specific service", + "responses": { + "204": { + "description": "Deleted the service successfully." + }, + "400": { + "description": "The service cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/refresh/": { + "post": { + "operationId": "orgs_services_refresh", + "summary": "Refresh service API token.", + "description": "Refresh service API token.", + "responses": { + "200": { + "description": "Refreshed the service token successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "The service token cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/settings": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/slug": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/": { + "get": { + "operationId": "orgs_teams_list", + "summary": "Get the details of all teams within an organization.", + "description": "Get the details of all teams within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "for_user", + "in": "query", + "description": "Filter for teams that you are a member of.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of teams within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_teams_create", + "summary": "Create a team for this organization.", + "description": "Create a team for this organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Team created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/": { + "get": { + "operationId": "orgs_teams_read", + "summary": "Get the details of a specific team within an organization.", + "description": "Get the details of a specific team within an organization.", + "responses": { + "200": { + "description": "Retrieved the details of the requested team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_teams_partial_update", + "summary": "Update a specific team in a organization.", + "description": "Update a specific team in a organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "orgs_teams_delete", + "summary": "Delete a specific team in a organization.", + "description": "Delete a specific team in a organization.", + "responses": { + "204": { + "description": "Deleted the team successfully." + }, + "400": { + "description": "The team cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members": { + "get": { + "operationId": "orgs_teams_members_list", + "summary": "List all members for the team.", + "description": "List all members for the team.", + "responses": { + "200": { + "description": "Retrieved users for the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "post": { + "operationId": "orgs_teams_members_create", + "summary": "Add users to a team.", + "description": "Add users to a team.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "201": { + "description": "The users were added to the team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "orgs_teams_members_update", + "summary": "Replace all team members.", + "description": "Replace all team members.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "204": { + "description": "The team members were replaced.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members/{member}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/memberships/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/usage-limits/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy-violation/": { + "get": { + "operationId": "orgs_vulnerability-policy-violation_list", + "summary": "List all current vulnerability policy violations for this Organization.", + "description": "List all current vulnerability policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" + } + } + }, + "title": "PackageVulnerabilityPolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/": { + "get": { + "operationId": "orgs_vulnerability-policy_list", + "summary": "Get a list of all package vulnerability policies.", + "description": "Get a list of all package vulnerability policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_create", + "summary": "Create a package vulnerability policy.", + "description": "Create a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_read", + "summary": "Get a package vulnerability policy.", + "description": "Get a package vulnerability policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_vulnerability-policy_update", + "summary": "Update a package vulnerability policy.", + "description": "Update a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_vulnerability-policy_partial_update", + "summary": "Partially update a package vulnerability policy.", + "description": "Partially update a package vulnerability policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_vulnerability-policy_delete", + "summary": "Delete a package vulnerability policy.", + "description": "Delete a package vulnerability policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/docker/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/maven/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/": { + "get": { + "operationId": "packages_list", + "summary": "Get a list of all packages associated with repository.", + "description": "Get a list of all packages associated with repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "-date" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of packages", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/groups/": { + "get": { + "operationId": "packages_groups_list", + "summary": "Return a list of Package Groups in a repository.", + "description": "Return a list of Package Groups in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "group_by", + "in": "query", + "description": "A field to group packages by. Available options: name, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of package groups.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageGroup" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/alpine/": { + "post": { + "operationId": "packages_upload_alpine", + "summary": "Create a new Alpine package", + "description": "Create a new Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cargo/": { + "post": { + "operationId": "packages_upload_cargo", + "summary": "Create a new Cargo package", + "description": "Create a new Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cocoapods/": { + "post": { + "operationId": "packages_upload_cocoapods", + "summary": "Create a new CocoaPods package", + "description": "Create a new CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/composer/": { + "post": { + "operationId": "packages_upload_composer", + "summary": "Create a new Composer package", + "description": "Create a new Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conan/": { + "post": { + "operationId": "packages_upload_conan", + "summary": "Create a new Conan package", + "description": "Create a new Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conda/": { + "post": { + "operationId": "packages_upload_conda", + "summary": "Create a new Conda package", + "description": "Create a new Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cran/": { + "post": { + "operationId": "packages_upload_cran", + "summary": "Create a new CRAN package", + "description": "Create a new CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/dart/": { + "post": { + "operationId": "packages_upload_dart", + "summary": "Create a new Dart package", + "description": "Create a new Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/deb/": { + "post": { + "operationId": "packages_upload_deb", + "summary": "Create a new Debian package", + "description": "Create a new Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/docker/": { + "post": { + "operationId": "packages_upload_docker", + "summary": "Create a new Docker package", + "description": "Create a new Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/go/": { + "post": { + "operationId": "packages_upload_go", + "summary": "Create a new Go package", + "description": "Create a new Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/helm/": { + "post": { + "operationId": "packages_upload_helm", + "summary": "Create a new Helm package", + "description": "Create a new Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/hex/": { + "post": { + "operationId": "packages_upload_hex", + "summary": "Create a new Hex package", + "description": "Create a new Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/luarocks/": { + "post": { + "operationId": "packages_upload_luarocks", + "summary": "Create a new LuaRocks package", + "description": "Create a new LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/maven/": { + "post": { + "operationId": "packages_upload_maven", + "summary": "Create a new Maven package", + "description": "Create a new Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/npm/": { + "post": { + "operationId": "packages_upload_npm", + "summary": "Create a new npm package", + "description": "Create a new npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/nuget/": { + "post": { + "operationId": "packages_upload_nuget", + "summary": "Create a new NuGet package", + "description": "Create a new NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/p2/": { + "post": { + "operationId": "packages_upload_p2", + "summary": "Create a new P2 package", + "description": "Create a new P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/python/": { + "post": { + "operationId": "packages_upload_python", + "summary": "Create a new Python package", + "description": "Create a new Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/raw/": { + "post": { + "operationId": "packages_upload_raw", + "summary": "Create a new Raw package", + "description": "Create a new Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/rpm/": { + "post": { + "operationId": "packages_upload_rpm", + "summary": "Create a new RedHat package", + "description": "Create a new RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/ruby/": { + "post": { + "operationId": "packages_upload_ruby", + "summary": "Create a new Ruby package", + "description": "Create a new Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/swift/": { + "post": { + "operationId": "packages_upload_swift", + "summary": "Create a new Swift package", + "description": "Create a new Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/terraform/": { + "post": { + "operationId": "packages_upload_terraform", + "summary": "Create a new Terraform package", + "description": "Create a new Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/vagrant/": { + "post": { + "operationId": "packages_upload_vagrant", + "summary": "Create a new Vagrant package", + "description": "Create a new Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/alpine/": { + "post": { + "operationId": "packages_validate-upload_alpine", + "summary": "Validate parameters for create Alpine package", + "description": "Validate parameters for create Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cargo/": { + "post": { + "operationId": "packages_validate-upload_cargo", + "summary": "Validate parameters for create Cargo package", + "description": "Validate parameters for create Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cocoapods/": { + "post": { + "operationId": "packages_validate-upload_cocoapods", + "summary": "Validate parameters for create CocoaPods package", + "description": "Validate parameters for create CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/composer/": { + "post": { + "operationId": "packages_validate-upload_composer", + "summary": "Validate parameters for create Composer package", + "description": "Validate parameters for create Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conan/": { + "post": { + "operationId": "packages_validate-upload_conan", + "summary": "Validate parameters for create Conan package", + "description": "Validate parameters for create Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conda/": { + "post": { + "operationId": "packages_validate-upload_conda", + "summary": "Validate parameters for create Conda package", + "description": "Validate parameters for create Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cran/": { + "post": { + "operationId": "packages_validate-upload_cran", + "summary": "Validate parameters for create CRAN package", + "description": "Validate parameters for create CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/dart/": { + "post": { + "operationId": "packages_validate-upload_dart", + "summary": "Validate parameters for create Dart package", + "description": "Validate parameters for create Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/deb/": { + "post": { + "operationId": "packages_validate-upload_deb", + "summary": "Validate parameters for create Debian package", + "description": "Validate parameters for create Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/docker/": { + "post": { + "operationId": "packages_validate-upload_docker", + "summary": "Validate parameters for create Docker package", + "description": "Validate parameters for create Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/go/": { + "post": { + "operationId": "packages_validate-upload_go", + "summary": "Validate parameters for create Go package", + "description": "Validate parameters for create Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/helm/": { + "post": { + "operationId": "packages_validate-upload_helm", + "summary": "Validate parameters for create Helm package", + "description": "Validate parameters for create Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/hex/": { + "post": { + "operationId": "packages_validate-upload_hex", + "summary": "Validate parameters for create Hex package", + "description": "Validate parameters for create Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/luarocks/": { + "post": { + "operationId": "packages_validate-upload_luarocks", + "summary": "Validate parameters for create LuaRocks package", + "description": "Validate parameters for create LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/maven/": { + "post": { + "operationId": "packages_validate-upload_maven", + "summary": "Validate parameters for create Maven package", + "description": "Validate parameters for create Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/npm/": { + "post": { + "operationId": "packages_validate-upload_npm", + "summary": "Validate parameters for create npm package", + "description": "Validate parameters for create npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/nuget/": { + "post": { + "operationId": "packages_validate-upload_nuget", + "summary": "Validate parameters for create NuGet package", + "description": "Validate parameters for create NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/p2/": { + "post": { + "operationId": "packages_validate-upload_p2", + "summary": "Validate parameters for create P2 package", + "description": "Validate parameters for create P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/python/": { + "post": { + "operationId": "packages_validate-upload_python", + "summary": "Validate parameters for create Python package", + "description": "Validate parameters for create Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/raw/": { + "post": { + "operationId": "packages_validate-upload_raw", + "summary": "Validate parameters for create Raw package", + "description": "Validate parameters for create Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/rpm/": { + "post": { + "operationId": "packages_validate-upload_rpm", + "summary": "Validate parameters for create RedHat package", + "description": "Validate parameters for create RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/ruby/": { + "post": { + "operationId": "packages_validate-upload_ruby", + "summary": "Validate parameters for create Ruby package", + "description": "Validate parameters for create Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/swift/": { + "post": { + "operationId": "packages_validate-upload_swift", + "summary": "Validate parameters for create Swift package", + "description": "Validate parameters for create Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/terraform/": { + "post": { + "operationId": "packages_validate-upload_terraform", + "summary": "Validate parameters for create Terraform package", + "description": "Validate parameters for create Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/vagrant/": { + "post": { + "operationId": "packages_validate-upload_vagrant", + "summary": "Validate parameters for create Vagrant package", + "description": "Validate parameters for create Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "packages_read", + "summary": "Get a specific package in a repository.", + "description": "Get a specific package in a repository.", + "responses": { + "200": { + "description": "Retrieved the specified package successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "delete": { + "operationId": "packages_delete", + "summary": "Delete a specific package in a repository.", + "description": "Delete a specific package in a repository.", + "responses": { + "204": { + "description": "Deleted the specified package successfully." + }, + "400": { + "description": "The package cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/copy/": { + "post": { + "operationId": "packages_copy", + "summary": "Copy a package to another repository.", + "description": "Copy a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Copied specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopy" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/dependencies/": { + "get": { + "operationId": "packages_dependencies", + "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "responses": { + "200": { + "description": "Retrieved stored dependencies for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDependencies" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/move/": { + "post": { + "operationId": "packages_move", + "summary": "Move a package to another repository.", + "description": "Move a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMoveRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Moved specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMove" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/quarantine/": { + "post": { + "operationId": "packages_quarantine", + "summary": "Quarantine or release a package.", + "description": "Quarantine or release a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantineRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Changed the package's quarantine status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantine" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/resync/": { + "post": { + "operationId": "packages_resync", + "summary": "Schedule a package for resynchronisation.", + "description": "Schedule a package for resynchronisation.", + "responses": { + "200": { + "description": "Scheduled the package for resynchronisation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResync" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/scan/": { + "post": { + "operationId": "packages_scan", + "summary": "Schedule a package for scanning.", + "description": "Schedule a package for scanning.", + "responses": { + "200": { + "description": "Scheduled the package for scanning.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/status/": { + "get": { + "operationId": "packages_status", + "summary": "Get the synchronization status for a package.", + "description": "Get the synchronization status for a package.", + "responses": { + "200": { + "description": "Retrieved status for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/tag/": { + "post": { + "operationId": "packages_tag", + "summary": "Add/Replace/Remove tags for a package.", + "description": "Add/Replace/Remove tags for a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageTagRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Modified tags for the package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/history/{owner}/": { + "get": { + "operationId": "quota_history_read", + "summary": "Quota history for a given namespace.", + "description": "Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/history/{owner}/": { + "get": { + "operationId": "quota_oss_history_read", + "summary": "Open-source Quota history for a given namespace.", + "description": "Open-source Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/{owner}/": { + "get": { + "operationId": "quota_oss_read", + "summary": "Open-source Quota usage for a given namespace.", + "description": "Open-source Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/{owner}/": { + "get": { + "operationId": "quota_read", + "summary": "Quota usage for a given namespace.", + "description": "Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/rates/limits/": { + "get": { + "operationId": "rates_limits_list", + "summary": "Endpoint to check rate limits for current user.", + "description": "Endpoint to check rate limits for current user.", + "responses": { + "200": { + "description": "Rate check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResourcesRateCheck" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "rates" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/repos/": { + "get": { + "operationId": "repos_user_list", + "summary": "Get a list of all repositories associated with current user.", + "description": "Get a list of all repositories associated with current user.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/repos/{owner}/": { + "get": { + "operationId": "repos_namespace_list", + "summary": "Get a list of all repositories within a namespace.", + "description": "Get a list of all repositories within a namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_create", + "summary": "Create a new repository in a given namespace.", + "description": "Create a new repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreateRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The repository was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/": { + "get": { + "operationId": "repos_read", + "summary": "Get a specific repository.", + "description": "Get a specific repository.", + "responses": { + "200": { + "description": "Retrieved the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_partial_update", + "summary": "Update details about a repository in a given namespace.", + "description": "Update details about a repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "The repository was updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "repos_delete", + "summary": "Delete a repository in a given namespace.", + "description": "Delete a repository in a given namespace.", + "responses": { + "200": { + "description": "The repository has been scheduled for deletion." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/": { + "get": { + "operationId": "repos_ecdsa_list", + "summary": "Retrieve the active ECDSA key for the Repository.", + "description": "Retrieve the active ECDSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" + }, + "post": { + "operationId": "repos_ecdsa_create", + "summary": "Set the active ECDSA key for the Repository.", + "description": "Set the active ECDSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided ECDSA key is the same as the current ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "201": { + "description": "The provided ECDSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "The provided ECDSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom ECDSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/regenerate/": { + "post": { + "operationId": "repos_ecdsa_regenerate", + "summary": "Regenerate ECDSA Key for the Repository.", + "description": "Regenerate ECDSA Key for the Repository.", + "responses": { + "200": { + "description": "An ECDSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip": { + "get": { + "operationId": "repos_geoip_read", + "summary": "List all repository geoip rules.", + "description": "List all repository geoip rules.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_geoip_update", + "summary": "Replace repository geoip rules.", + "description": "Replace repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_geoip_partial_update", + "summary": "Partially update repository geoip rules.", + "description": "Partially update repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/disable/": { + "post": { + "operationId": "repos_geoip_disable", + "summary": "Disable GeoIP for this repository.", + "description": "Disable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been disabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/enable/": { + "post": { + "operationId": "repos_geoip_enable", + "summary": "Enable GeoIP for this repository.", + "description": "Enable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been enabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/status/": { + "get": { + "operationId": "api_repos_geoip_status", + "summary": "Retrieve the GeoIP status for this repository.", + "description": "Retrieve the GeoIP status for this repository.", + "responses": { + "200": { + "description": "Retrieved the GeoIP status for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/test/": { + "post": { + "operationId": "repos_geoip_test", + "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", + "description": "Test a list of IP addresses against the repository's current GeoIP rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" + } + } + } + }, + "responses": { + "201": { + "description": "Successfuly tested addresses against the repository's GeoIP rules", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/": { + "get": { + "operationId": "repos_gpg_list", + "summary": "Retrieve the active GPG key for the Repository.", + "description": "Retrieve the active GPG key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_gpg_create", + "summary": "Set the active GPG key for the Repository.", + "description": "Set the active GPG key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided GPG key is the same as the current GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "201": { + "description": "The provided GPG key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "The provided GPG key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom GPG keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/regenerate/": { + "post": { + "operationId": "repos_gpg_regenerate", + "summary": "Regenerate GPG Key for the Repository.", + "description": "Regenerate GPG Key for the Repository.", + "responses": { + "200": { + "description": "A GPG key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/privileges": { + "get": { + "operationId": "repos_privileges_list", + "summary": "List all explicity created privileges for the repository.", + "description": "List all explicity created privileges for the repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved privileges for the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInput" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_privileges_update", + "summary": "Replace all existing repository privileges with those specified.", + "description": "Replace all existing repository privileges with those specified.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges replaced" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_privileges_partial_update", + "summary": "Modify privileges for the repository.", + "description": "Modify privileges for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges updated" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/": { + "get": { + "operationId": "repos_rsa_list", + "summary": "Retrieve the active RSA key for the Repository.", + "description": "Retrieve the active RSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_rsa_create", + "summary": "Set the active RSA key for the Repository.", + "description": "Set the active RSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided RSA key is the same as the current RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "201": { + "description": "The provided RSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "The provided RSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom RSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/regenerate/": { + "post": { + "operationId": "repos_rsa_regenerate", + "summary": "Regenerate RSA Key for the Repository.", + "description": "Regenerate RSA Key for the Repository.", + "responses": { + "200": { + "description": "An RSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/": { + "get": { + "operationId": "repos_upstream_cargo_list", + "summary": "List Cargo upstream configs for this repository.", + "description": "List Cargo upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cargo_create", + "summary": "Create a Cargo upstream config for this repository.", + "description": "Create a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cargo_read", + "summary": "Retrieve a Cargo upstream config for this repository.", + "description": "Retrieve a Cargo upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cargo_update", + "summary": "Update a Cargo upstream config for this repository.", + "description": "Update a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cargo_partial_update", + "summary": "Partially update a Cargo upstream config for this repository.", + "description": "Partially update a Cargo upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cargo_delete", + "summary": "Delete a Cargo upstream config for this repository.", + "description": "Delete a Cargo upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/": { + "get": { + "operationId": "repos_upstream_composer_list", + "summary": "List Composer upstream configs for this repository.", + "description": "List Composer upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_composer_create", + "summary": "Create a Composer upstream config for this repository.", + "description": "Create a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_composer_read", + "summary": "Retrieve a Composer upstream config for this repository.", + "description": "Retrieve a Composer upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_composer_update", + "summary": "Update a Composer upstream config for this repository.", + "description": "Update a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_composer_partial_update", + "summary": "Partially update a Composer upstream config for this repository.", + "description": "Partially update a Composer upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_composer_delete", + "summary": "Delete a Composer upstream config for this repository.", + "description": "Delete a Composer upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/": { + "get": { + "operationId": "repos_upstream_cran_list", + "summary": "List CRAN upstream configs for this repository.", + "description": "List CRAN upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cran_create", + "summary": "Create a CRAN upstream config for this repository.", + "description": "Create a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cran_read", + "summary": "Retrieve a CRAN upstream config for this repository.", + "description": "Retrieve a CRAN upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cran_update", + "summary": "Update a CRAN upstream config for this repository.", + "description": "Update a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cran_partial_update", + "summary": "Partially update a CRAN upstream config for this repository.", + "description": "Partially update a CRAN upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cran_delete", + "summary": "Delete a CRAN upstream config for this repository.", + "description": "Delete a CRAN upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/": { + "get": { + "operationId": "repos_upstream_dart_list", + "summary": "List Dart upstream configs for this repository.", + "description": "List Dart upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_dart_create", + "summary": "Create a Dart upstream config for this repository.", + "description": "Create a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_dart_read", + "summary": "Retrieve a Dart upstream config for this repository.", + "description": "Retrieve a Dart upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_dart_update", + "summary": "Update a Dart upstream config for this repository.", + "description": "Update a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_dart_partial_update", + "summary": "Partially update a Dart upstream config for this repository.", + "description": "Partially update a Dart upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_dart_delete", + "summary": "Delete a Dart upstream config for this repository.", + "description": "Delete a Dart upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/": { + "get": { + "operationId": "repos_upstream_deb_list", + "summary": "List Debian upstream configs for this repository.", + "description": "List Debian upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_deb_create", + "summary": "Create a Debian upstream config for this repository.", + "description": "Create a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_deb_read", + "summary": "Retrieve a Debian upstream config for this repository.", + "description": "Retrieve a Debian upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_deb_update", + "summary": "Update a Debian upstream config for this repository.", + "description": "Update a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_deb_partial_update", + "summary": "Partially update a Debian upstream config for this repository.", + "description": "Partially update a Debian upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_deb_delete", + "summary": "Delete a Debian upstream config for this repository.", + "description": "Delete a Debian upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/": { + "get": { + "operationId": "repos_upstream_docker_list", + "summary": "List Docker upstream configs for this repository.", + "description": "List Docker upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_docker_create", + "summary": "Create a Docker upstream config for this repository.", + "description": "Create a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_docker_read", + "summary": "Retrieve a Docker upstream config for this repository.", + "description": "Retrieve a Docker upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_docker_update", + "summary": "Update a Docker upstream config for this repository.", + "description": "Update a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_docker_partial_update", + "summary": "Partially update a Docker upstream config for this repository.", + "description": "Partially update a Docker upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_docker_delete", + "summary": "Delete a Docker upstream config for this repository.", + "description": "Delete a Docker upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/": { + "get": { + "operationId": "repos_upstream_go_list", + "summary": "List Go upstream configs for this repository.", + "description": "List Go upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_go_create", + "summary": "Create a Go upstream config for this repository.", + "description": "Create a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_go_read", + "summary": "Retrieve a Go upstream config for this repository.", + "description": "Retrieve a Go upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_go_update", + "summary": "Update a Go upstream config for this repository.", + "description": "Update a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_go_partial_update", + "summary": "Partially update a Go upstream config for this repository.", + "description": "Partially update a Go upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_go_delete", + "summary": "Delete a Go upstream config for this repository.", + "description": "Delete a Go upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/": { + "get": { + "operationId": "repos_upstream_helm_list", + "summary": "List Helm upstream configs for this repository.", + "description": "List Helm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_helm_create", + "summary": "Create a Helm upstream config for this repository.", + "description": "Create a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_helm_read", + "summary": "Retrieve a Helm upstream config for this repository.", + "description": "Retrieve a Helm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_helm_update", + "summary": "Update a Helm upstream config for this repository.", + "description": "Update a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_helm_partial_update", + "summary": "Partially update a Helm upstream config for this repository.", + "description": "Partially update a Helm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_helm_delete", + "summary": "Delete a Helm upstream config for this repository.", + "description": "Delete a Helm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/": { + "get": { + "operationId": "repos_upstream_hex_list", + "summary": "List Hex upstream configs for this repository.", + "description": "List Hex upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_hex_create", + "summary": "Create a Hex upstream config for this repository.", + "description": "Create a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_hex_read", + "summary": "Retrieve a Hex upstream config for this repository.", + "description": "Retrieve a Hex upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_hex_update", + "summary": "Update a Hex upstream config for this repository.", + "description": "Update a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_hex_partial_update", + "summary": "Partially update a Hex upstream config for this repository.", + "description": "Partially update a Hex upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_hex_delete", + "summary": "Delete a Hex upstream config for this repository.", + "description": "Delete a Hex upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/": { + "get": { + "operationId": "repos_upstream_maven_list", + "summary": "List Maven upstream configs for this repository.", + "description": "List Maven upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_maven_create", + "summary": "Create a Maven upstream config for this repository.", + "description": "Create a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_maven_read", + "summary": "Retrieve a Maven upstream config for this repository.", + "description": "Retrieve a Maven upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_maven_update", + "summary": "Update a Maven upstream config for this repository.", + "description": "Update a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_maven_partial_update", + "summary": "Partially update a Maven upstream config for this repository.", + "description": "Partially update a Maven upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_maven_delete", + "summary": "Delete a Maven upstream config for this repository.", + "description": "Delete a Maven upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/": { + "get": { + "operationId": "repos_upstream_npm_list", + "summary": "List npm upstream configs for this repository.", + "description": "List npm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_npm_create", + "summary": "Create a npm upstream config for this repository.", + "description": "Create a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_npm_read", + "summary": "Retrieve a npm upstream config for this repository.", + "description": "Retrieve a npm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_npm_update", + "summary": "Update a npm upstream config for this repository.", + "description": "Update a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_npm_partial_update", + "summary": "Partially update a npm upstream config for this repository.", + "description": "Partially update a npm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_npm_delete", + "summary": "Delete a npm upstream config for this repository.", + "description": "Delete a npm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/": { + "get": { + "operationId": "repos_upstream_nuget_list", + "summary": "List NuGet upstream configs for this repository.", + "description": "List NuGet upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_nuget_create", + "summary": "Create a NuGet upstream config for this repository.", + "description": "Create a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_nuget_read", + "summary": "Retrieve a NuGet upstream config for this repository.", + "description": "Retrieve a NuGet upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_nuget_update", + "summary": "Update a NuGet upstream config for this repository.", + "description": "Update a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_nuget_partial_update", + "summary": "Partially update a NuGet upstream config for this repository.", + "description": "Partially update a NuGet upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_nuget_delete", + "summary": "Delete a NuGet upstream config for this repository.", + "description": "Delete a NuGet upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/": { + "get": { + "operationId": "repos_upstream_python_list", + "summary": "List Python upstream configs for this repository.", + "description": "List Python upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_python_create", + "summary": "Create a Python upstream config for this repository.", + "description": "Create a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_python_read", + "summary": "Retrieve a Python upstream config for this repository.", + "description": "Retrieve a Python upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_python_update", + "summary": "Update a Python upstream config for this repository.", + "description": "Update a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_python_partial_update", + "summary": "Partially update a Python upstream config for this repository.", + "description": "Partially update a Python upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_python_delete", + "summary": "Delete a Python upstream config for this repository.", + "description": "Delete a Python upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/": { + "get": { + "operationId": "repos_upstream_rpm_list", + "summary": "List RedHat upstream configs for this repository.", + "description": "List RedHat upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_rpm_create", + "summary": "Create a RedHat upstream config for this repository.", + "description": "Create a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_rpm_read", + "summary": "Retrieve a RedHat upstream config for this repository.", + "description": "Retrieve a RedHat upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_rpm_update", + "summary": "Update a RedHat upstream config for this repository.", + "description": "Update a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_rpm_partial_update", + "summary": "Partially update a RedHat upstream config for this repository.", + "description": "Partially update a RedHat upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_rpm_delete", + "summary": "Delete a RedHat upstream config for this repository.", + "description": "Delete a RedHat upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/": { + "get": { + "operationId": "repos_upstream_ruby_list", + "summary": "List Ruby upstream configs for this repository.", + "description": "List Ruby upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_ruby_create", + "summary": "Create a Ruby upstream config for this repository.", + "description": "Create a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_ruby_read", + "summary": "Retrieve a Ruby upstream config for this repository.", + "description": "Retrieve a Ruby upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_ruby_update", + "summary": "Update a Ruby upstream config for this repository.", + "description": "Update a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_ruby_partial_update", + "summary": "Partially update a Ruby upstream config for this repository.", + "description": "Partially update a Ruby upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_ruby_delete", + "summary": "Delete a Ruby upstream config for this repository.", + "description": "Delete a Ruby upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/": { + "get": { + "operationId": "repos_upstream_swift_list", + "summary": "List Swift upstream configs for this repository.", + "description": "List Swift upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_swift_create", + "summary": "Create a Swift upstream config for this repository.", + "description": "Create a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_swift_read", + "summary": "Retrieve a Swift upstream config for this repository.", + "description": "Retrieve a Swift upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_swift_update", + "summary": "Update a Swift upstream config for this repository.", + "description": "Update a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_swift_partial_update", + "summary": "Partially update a Swift upstream config for this repository.", + "description": "Partially update a Swift upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_swift_delete", + "summary": "Delete a Swift upstream config for this repository.", + "description": "Delete a Swift upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-ecdsa/": { + "get": { + "operationId": "repos_x509_ecdsa_list", + "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 ECDSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-rsa/": { + "get": { + "operationId": "repos_x509_rsa_list", + "summary": "Retrieve the active X.509 RSA certificate for the Repository.", + "description": "Retrieve the active X.509 RSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 RSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509RsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/create-entitlement/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/{eula}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eula", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/invalidate-cache/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/retention/": { + "get": { + "operationId": "repo_retention_read", + "summary": "Retrieve the retention rules for the repository.", + "description": "Retrieve the retention rules for the repository.", + "responses": { + "200": { + "description": "Retrieved the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "repo_retention_partial_update", + "summary": "Update the retention rules for the repository.", + "description": "Update the retention rules for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-owner/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-region/": { + "post": { + "operationId": "repos_transfer_region", + "summary": "Transfer a repository to a different region.", + "description": "Transfer a repository to a different region.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTransferRegionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Repository region transfer initiated." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom storage regions not available on plan; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner, namespace or repository not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Groups": { + "get": { + "operationId": "scim_v2_Groups_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Groups_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Groups/{id}": { + "get": { + "operationId": "scim_v2_Groups_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Groups_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Groups_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Groups_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ResourceTypes": { + "get": { + "operationId": "scim_v2_ResourceTypes_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ResourceTypes_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ResourceTypes/{id}": { + "get": { + "operationId": "scim_v2_ResourceTypes_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ResourceTypes_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ResourceTypes_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ResourceTypes_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ServiceProviderConfig": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ServiceProviderConfig_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ServiceProviderConfig/{id}": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ServiceProviderConfig_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ServiceProviderConfig_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ServiceProviderConfig_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Users": { + "get": { + "operationId": "scim_v2_Users_list", + "description": "", + "parameters": [ + { + "name": "count", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The initial index from which to return the results.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Users_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Users/{identifier}": { + "get": { + "operationId": "scim_v2_Users_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Users_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Users_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Users_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" + } + } + ] + }, + "/status/check/basic/": { + "get": { + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", + "responses": { + "200": { + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "status" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", + "responses": { + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [] + }, + "/storage-regions/{slug}/": { + "get": { + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/usage/{owner}/{requested_metric}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "requested_metric", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/additional-onboarding-actions/": { + "parameters": [] + }, + "/user/default-org/": { + "parameters": [] + }, + "/user/emails/": { + "parameters": [] + }, + "/user/emails/{email}/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/emails/{email}/resend-confirmation/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/": { + "parameters": [] + }, + "/user/invites/{invite_id}/accept/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/{invite_id}/reject/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/logins/": { + "parameters": [] + }, + "/user/logout/": { + "parameters": [] + }, + "/user/logout/other-sessions/": { + "parameters": [] + }, + "/user/password/": { + "parameters": [] + }, + "/user/permissions/check/": { + "parameters": [] + }, + "/user/profile/": { + "parameters": [] + }, + "/user/refresh-token/": { + "parameters": [] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", + "responses": { + "200": { + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/user/sessions/": { + "parameters": [] + }, + "/user/slug/": { + "parameters": [] + }, + "/user/soft-delete/": { + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Retrieved/created user API token/key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "403": { + "description": "Locked out.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Failed to authenticate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "security": [ + { + "basic": [] + } + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/user/token/restrictions/": { + "parameters": [] + }, + "/user/token/restrictions/{token}/": { + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/tokens/": { + "get": { + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", + "responses": { + "201": { + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "User has already created an API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [] + }, + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", + "responses": { + "200": { + "description": "Successfully refreshed the API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "The specified API key cannot be found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/totp/backup/disable/": { + "parameters": [] + }, + "/user/totp/backup/enable/": { + "parameters": [] + }, + "/user/totp/confirm/": { + "parameters": [] + }, + "/user/totp/disable/": { + "parameters": [] + }, + "/user/totp/enable/": { + "parameters": [] + }, + "/user/totp/settings/": { + "parameters": [] + }, + "/user/two-factor/": { + "parameters": [] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", + "responses": { + "200": { + "description": "Retrieved details for the specified user (or current user, if none was specified)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfile" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "users" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated" + ] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/": { + "get": { + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/": { + "get": { + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/": { + "get": { + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of webhooks", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", + "responses": { + "204": { + "description": "Deleted the specified webhook successfully." + }, + "400": { + "description": "The webhook cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io" + } + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } + } + } + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } + } + } + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } + } + } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" + } + } + } + }, + "SwiftUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequest" + } + } + } + }, + "NpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequest" + } + } + } + }, + "SwiftPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUploadRequest" + } + } + } + }, + "HexUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequest" + } + } + } + }, + "RubyPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUploadRequest" + } + } + } + }, + "CargoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUploadRequest" + } + } + } + }, + "RubyUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequest" + } + } + } + }, + "RpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequest" + } + } + } + }, + "MavenUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequest" + } + } + } + }, + "OrganizationTeamMembers": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "VagrantPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUploadRequest" + } + } + } + }, + "GoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequest" + } + } + } + }, + "ConanPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUploadRequest" + } + } + } + }, + "RawPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUploadRequest" + } + } + } + }, + "HelmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequest" + } + } + } + }, + "NugetUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequest" + } + } + } + }, + "TerraformPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUploadRequest" + } + } + } + }, + "PackageFileUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUploadRequest" + } + } + } + }, + "PackageDenyPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequest" + } + } + } + }, + "ProviderSettingsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequest" + } + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" + } + } + } + }, + "AlpinePackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUploadRequest" + } + } + } + }, + "CocoapodsPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" + } + } + } + }, + "ComposerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUploadRequest" + } + } + } + }, + "CondaPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUploadRequest" + } + } + } + }, + "CranPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUploadRequest" + } + } + } + }, + "DartPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUploadRequest" + } + } + } + }, + "DebPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUploadRequest" + } + } + } + }, + "DockerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUploadRequest" + } + } + } + }, + "HelmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUploadRequest" + } + } + } + }, + "HexPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUploadRequest" + } + } + } + }, + "LuarocksPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUploadRequest" + } + } + } + }, + "MavenPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUploadRequest" + } + } + } + }, + "NpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUploadRequest" + } + } + } + }, + "NugetPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUploadRequest" + } + } + } + }, + "P2PackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUploadRequest" + } + } + } + }, + "PythonPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUploadRequest" + } + } + } + }, + "RpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUploadRequest" + } + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" + } + } + } + }, + "ComposerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequest" + } + } + } + }, + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } + } + } + }, + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } + } + } + }, + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } + } + } + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" + }, + "basic": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "ErrorDetail": { + "required": [ + "detail" + ], + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "An extended message for the response.", + "type": "string", + "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "GeoIpLocation": { + "required": [ + "city", + "continent", + "country", + "postal_code" + ], + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "minLength": 1, + "nullable": true + }, + "continent": { + "title": "Continent", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "readOnly": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "NamespaceAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "target_kind": { + "title": "Target kind", + "type": "string", + "minLength": 1 + }, + "target_slug_perm": { + "title": "Target slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "RepositoryAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "PackageVersionBadge": { + "type": "object", + "properties": {} + }, + "PlanPrice": { + "description": "List of prices for the plan", + "required": [ + "amount", + "billing_interval", + "currency" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Plan Amount", + "type": "string", + "format": "decimal" + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing", + "type": "string", + "minLength": 1 + } + } + }, + "Plan": { + "required": [ + "identifier", + "is_enterprise", + "prices" + ], + "type": "object", + "properties": { + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_enterprise": { + "title": "Is enterprise", + "description": "Is this an enterprise plan", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "prices": { + "description": "List of prices for the plan", + "type": "array", + "items": { + "$ref": "#/components/schemas/PlanPrice" + } + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + } + } + }, + "Payment": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "When was the payment created and attempted", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "failure_code": { + "title": "Failure code", + "description": "Failure Code for the payment", + "type": "string", + "minLength": 1 + }, + "failure_message": { + "title": "Failure message", + "description": "Failure message for the payment", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Payment Status", + "type": "string", + "minLength": 1 + } + } + }, + "AccountStatus": { + "required": [ + "payments" + ], + "type": "object", + "properties": { + "billing_period_end_date": { + "title": "Billing period end date", + "description": "When does the current billing period end", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment" + } + }, + "status": { + "title": "Status", + "description": "Current Status of account", + "type": "string", + "minLength": 1 + } + } + }, + "InvoiceItem": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the line", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Invoice": { + "type": "object", + "properties": { + "amount_due": { + "title": "Amount due", + "description": "Amount due to be paid", + "type": "integer", + "readOnly": true + }, + "amount_paid": { + "title": "Amount paid", + "description": "Amount paid", + "type": "integer", + "readOnly": true + }, + "billing_reason": { + "title": "Billing reason", + "description": "Reason for the invoice to be created", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "billing_reason_text": { + "title": "Billing reason text", + "type": "string", + "readOnly": true + }, + "created": { + "title": "Created", + "description": "When was the invoice created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "currency": { + "title": "Currency", + "description": "The currency of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoice_id": { + "title": "Invoice id", + "description": "Invoice ID", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoiceitems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceItem" + }, + "readOnly": true + }, + "number": { + "title": "Number", + "description": "Invoice number", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Status of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "InvoicePDF": { + "type": "object", + "properties": { + "invoice_pdf": { + "title": "Invoice pdf", + "description": "Link to the invoice in PDF", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "CardPaymentMethod": { + "type": "object", + "properties": { + "brand": { + "title": "Brand", + "description": "Card Brand (e.g. Visa)", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "exp_month": { + "title": "Exp month", + "description": "Expiration Month", + "type": "integer", + "readOnly": true + }, + "exp_year": { + "title": "Exp year", + "description": "Expiration Year", + "type": "integer", + "readOnly": true + }, + "last4": { + "title": "Last4", + "description": "Last 4 digits of card", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "PaymentMethod": { + "required": [ + "card" + ], + "type": "object", + "properties": { + "card": { + "$ref": "#/components/schemas/CardPaymentMethod" + }, + "created": { + "title": "Created", + "description": "When was the payment method created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "is_default": { + "title": "Is default", + "description": "Is this the default payment method", + "type": "boolean", + "readOnly": true + }, + "type": { + "title": "Type", + "description": "Payment Method Type", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "BillingPeriod": { + "type": "object", + "properties": { + "is_current": { + "title": "Is current", + "description": "Is this the current Billing Period", + "type": "boolean", + "readOnly": true + }, + "period_end_at": { + "title": "Period End At", + "description": "The datetime usage is recorded to.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "period_start_at": { + "title": "Period Start At", + "description": "The datetime usage is recorded from.", + "type": "string", + "format": "date-time" + }, + "trial": { + "title": "Trial", + "description": "Usage period occurred during a trial.", + "type": "boolean" + } + } + }, + "PortalUrl": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "url": { + "title": "Url", + "description": "Billing Portal URL to Redirect User to", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "OnDemandUsageProduct": { + "description": "Products in the On-Demand Usage Subscription", + "required": [ + "currency", + "identifier", + "price_per_unit", + "unit" + ], + "type": "object", + "properties": { + "currency": { + "title": "Currency", + "description": "Currency used for invoicing product", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Identifier for this product", + "type": "string", + "minLength": 1 + }, + "price_per_unit": { + "title": "Price per unit", + "description": "Price per unit", + "type": "string", + "format": "decimal" + }, + "unit": { + "title": "Unit", + "description": "Unit for this product", + "type": "string", + "minLength": 1 + } + } + }, + "OnDemandUsageSubcription": { + "description": "Details of On-Demand Usage Subscription", + "required": [ + "billing_interval", + "products" + ], + "type": "object", + "properties": { + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "products": { + "description": "Products in the On-Demand Usage Subscription", + "type": "array", + "items": { + "$ref": "#/components/schemas/OnDemandUsageProduct" + } + } + } + }, + "Subscription": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Subscription Amount", + "type": "string", + "format": "decimal" + }, + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "can_charge": { + "title": "Can charge", + "description": "Does the customer have payment method configured", + "type": "boolean" + }, + "cancel_at_period_end": { + "title": "Cancel at period end", + "description": "Subscription will be cancelled when billing period ends", + "type": "boolean" + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing subscription", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_delinquent": { + "title": "Is delinquent", + "description": "Does this subscription have outstanding invoices", + "type": "boolean" + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "on_demand_usage": { + "$ref": "#/components/schemas/OnDemandUsageSubcription" + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Current Status of subscription", + "type": "string", + "minLength": 1 + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + }, + "trial_end_date": { + "title": "Trial end date", + "description": "Trial End Date", + "type": "string", + "format": "date-time" + } + } + }, + "TrialDays": { + "required": [ + "identifier", + "is_trialing", + "remaining_trial_days", + "trial_days" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "remaining_trial_days": { + "title": "Remaining trial days", + "description": "Remaining Unused Trial Days", + "type": "integer" + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + } + } + }, + "OrganizationCustomDomainNestedRepo": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "backend_kind_str": { + "title": "Backend kind str", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "domain_type_str": { + "title": "Domain type str", + "type": "string", + "readOnly": true + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + } + } + }, + "PublicBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "PublicBroadcastsRepository": { + "required": [ + "gpg_keys", + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string", + "maxLength": 1000 + }, + "gpg_keys": { + "type": "array", + "items": { + "type": "integer" + }, + "uniqueItems": true + }, + "is_open_source": { + "title": "Is open source", + "type": "string", + "readOnly": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "open_source_license_name": { + "title": "Open source license name", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_license_url": { + "title": "Open source license url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Total Packages", + "description": "The total number of packages in this repository.", + "type": "integer" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 50 + } + } + }, + "DistributionVersion": { + "description": "A list of the versions for this distribution", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The textual name for this version.", + "type": "string", + "maxLength": 64 + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this version", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "DistributionFull": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "versions": { + "description": "A list of the versions for this distribution", + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "readOnly": true + } + } + }, + "Eula": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "number": { + "title": "Number", + "description": "A sequential identifier that increments by one for each new commit in a repository.", + "type": "integer", + "nullable": true + } + }, + "nullable": true + }, + "RepositoryToken": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryTokenRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSyncRequest": { + "required": [ + "source" + ], + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "The source repository slug (in the same owner namespace).", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSync": { + "type": "object", + "properties": { + "tokens": { + "description": "The entitlements that have been synchronised.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + }, + "readOnly": true + } + } + }, + "RepositoryTokenRequestPatch": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenAction": { + "type": "object", + "properties": {} + }, + "RepositoryTokenRefreshRequest": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenRefresh": { + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageFileUploadRequest": { + "required": [ + "filename" + ], + "type": "object", + "properties": { + "filename": { + "title": "Filename", + "description": "Filename for the package file upload.", + "type": "string", + "minLength": 1 + }, + "md5_checksum": { + "title": "Md5 checksum", + "description": "MD5 checksum for a POST-based package file upload.", + "type": "string", + "maxLength": 32, + "minLength": 32 + }, + "method": { + "title": "Method", + "description": "The method to use for package file upload.", + "type": "string", + "enum": [ + "put_parts", + "put", + "post", + "presigned", + "unsigned_put" + ], + "default": "post" + }, + "sha256_checksum": { + "title": "Sha256 checksum", + "description": "SHA256 checksum for a PUT-based package file upload.", + "type": "string", + "maxLength": 64, + "minLength": 64 + } + } + }, + "PackageFileUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use when creating packages", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_fields": { + "title": "Upload fields", + "description": "The dictionary of fields that must be sent with POST uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_headers": { + "title": "Upload headers", + "description": "The dictionary of headers that must be sent with uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step POST or PUT upload", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step POST or PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "PackageFilePartsUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use uploading parts.", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step PUT upload.", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "Distribution": { + "description": "The distributions supported by this package format", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + } + }, + "nullable": true + }, + "FormatSupportUpstream": { + "description": "The upstream support for the package format", + "required": [ + "auth_modes", + "caching", + "indexing", + "proxying" + ], + "type": "object", + "properties": { + "auth_modes": { + "description": "The authentication modes supported by the upstream format", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Username and Password", + "Token", + "Certificate and Key" + ], + "default": "Username and Password" + } + }, + "caching": { + "title": "Caching", + "description": "If true the upstream format supports caching", + "type": "boolean" + }, + "indexing": { + "title": "Indexing", + "description": "If true the upstream format supports indexing", + "type": "boolean" + }, + "indexing_behavior": { + "title": "Indexing behavior", + "description": "The behavior of the upstream when indexing", + "type": "string", + "enum": [ + "Unsupported", + "Ahead-of-time (static) indexing", + "Just-in-time (dynamic) indexing" + ], + "default": "Unsupported" + }, + "proxying": { + "title": "Proxying", + "description": "If true the upstream format supports proxying", + "type": "boolean" + }, + "signature_verification": { + "title": "Signature verification", + "description": "The signature verification supported by the upstream format", + "type": "string", + "enum": [ + "Unsupported", + "Repository Metadata", + "Packages", + "Repository Metadata and Packages" + ], + "default": "Unsupported" + } + } + }, + "FormatSupport": { + "description": "A set of what the package format supports", + "required": [ + "dependencies", + "distributions", + "file_lists", + "metadata", + "upstreams", + "versioning" + ], + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "If true the package format supports dependencies", + "type": "boolean" + }, + "distributions": { + "title": "Distributions", + "description": "If true the package format supports distributions", + "type": "boolean" + }, + "file_lists": { + "title": "File lists", + "description": "If true the package format supports file lists", + "type": "boolean" + }, + "metadata": { + "title": "Metadata", + "description": "If true the package format supports metadata", + "type": "boolean" + }, + "upstreams": { + "$ref": "#/components/schemas/FormatSupportUpstream" + }, + "versioning": { + "title": "Versioning", + "description": "If true the package format supports versioning", + "type": "boolean" + } + } + }, + "Format": { + "required": [ + "description", + "extensions", + "name", + "premium", + "slug", + "supports" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the package format", + "type": "string", + "minLength": 1 + }, + "distributions": { + "description": "The distributions supported by this package format", + "type": "array", + "items": { + "$ref": "#/components/schemas/Distribution" + }, + "nullable": true + }, + "extensions": { + "description": "A non-exhaustive list of extensions supported", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "name": { + "title": "Name", + "description": "Name for the package format", + "type": "string", + "minLength": 1 + }, + "premium": { + "title": "Premium", + "description": "If true the package format is a premium-only feature", + "type": "boolean" + }, + "premium_plan_id": { + "title": "Premium plan id", + "description": "The minimum plan id required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "premium_plan_name": { + "title": "Premium plan name", + "description": "The minimum plan name required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug": { + "title": "Slug", + "description": "Slug for the package format", + "type": "string", + "minLength": 1 + }, + "supports": { + "$ref": "#/components/schemas/FormatSupport" + } + } + }, + "PrivilegeEscalation": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password for verification.", + "type": "string", + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "description": "TOTP code for verification.", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "description": "The type of verification used.", + "type": "string", + "enum": [ + "totp", + "password" + ] + } + } + }, + "UserRequestPasswordResetRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserRequestPasswordReset": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserResetPasswordRequest": { + "required": [ + "key", + "password" + ], + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Password reset token.", + "type": "string", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Enter a new password.", + "type": "string", + "minLength": 1 + } + } + }, + "UserResetPassword": { + "type": "object", + "properties": {} + }, + "DeviceVerificationRequest": { + "required": [ + "device_id" + ], + "type": "object", + "properties": { + "device_id": { + "title": "Device id", + "description": "The device ID to verify.", + "type": "string", + "minLength": 1 + } + } + }, + "DeviceVerification": { + "type": "object", + "properties": {} + }, + "License": { + "type": "object", + "properties": { + "full_name": { + "title": "Full name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the license.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "spdx_identifier": { + "title": "Spdx identifier", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "CommonBandwidthMetricsValue": { + "description": "Average bandwidth usage in the specified period, e.g. a day", + "required": [ + "display", + "value" + ], + "type": "object", + "properties": { + "display": { + "title": "Display", + "description": "Bandwidth usage value", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "units": { + "title": "Units", + "description": "Unit of measurement e.g. bytes", + "type": "string", + "default": "bytes", + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "Human readable version of display value", + "type": "integer" + } + } + }, + "CommonBandwidthMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + } + } + }, + "CommonDownloadsMetricsValue": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "title": "Value", + "type": "integer" + } + } + }, + "CommonDownloadsMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + } + } + }, + "CommonMetrics": { + "required": [ + "bandwidth", + "downloads" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "Number of packages with at least 1 download", + "type": "integer", + "default": 0 + }, + "bandwidth": { + "$ref": "#/components/schemas/CommonBandwidthMetrics" + }, + "downloads": { + "$ref": "#/components/schemas/CommonDownloadsMetrics" + }, + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", + "type": "integer", + "default": 0 + }, + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 + } + } + }, + "EntitlementUsageMetrics": { + "required": [ + "tokens" + ], + "type": "object", + "properties": { + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "PackageUsageMetrics": { + "required": [ + "packages" + ], + "type": "object", + "properties": { + "packages": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "type_name": { + "title": "Type name", + "type": "string", + "readOnly": true + } + } + }, + "OidcRequest": { + "required": [ + "oidc_token", + "service_slug" + ], + "type": "object", + "properties": { + "oidc_token": { + "title": "Oidc token", + "description": "Serialized OIDC token.", + "type": "string", + "minLength": 1 + }, + "service_slug": { + "title": "Service slug", + "description": "Slug for the service account.", + "type": "string", + "minLength": 1 + } + } + }, + "Oidc": { + "type": "object", + "properties": {} + }, + "Organization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "country": { + "title": "Country", + "type": "string", + "readOnly": true, + "maxLength": 32, + "minLength": 1, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationUserTokenPolicy": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + } + } + }, + "OrganizationUserTokenPolicyRequest": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationUserTokenPolicyRequestPatch": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequest": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequestPatch": { + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "dns_alias_value": { + "title": "Dns alias value", + "description": "The CNAME value to use to publish this domain publicly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_name": { + "title": "Dns cert name", + "description": "The CNAME name to create to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_value": { + "title": "Dns cert value", + "description": "The CNAME value to use to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationDefaultObjectPrivileges": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "OrganizationDefaultObjectPrivilegesRequest": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "PackageDenyPolicy": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Block downloads" + ], + "readOnly": true, + "default": "Block downloads" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "In Progress" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PackageDenyPolicyRequest": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "PackageDenyPolicyRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationFeatureFlags": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The human/computer readable name.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationGlobalPrivileges": { + "required": [ + "label", + "privilege", + "selected" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "type": "string", + "minLength": 1 + }, + "privilege": { + "title": "Privilege", + "type": "string", + "minLength": 1 + }, + "selected": { + "title": "Selected", + "type": "boolean" + } + } + }, + "OrganizationTeamInvite": { + "required": [ + "team" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user in the team.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationInvite": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationInviteRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationInviteUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteUpdate": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteExtend": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm of the invite to be extended.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageVulnerability": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "NestedLicensePolicy": { + "required": [ + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageLicensePolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "OrganizationPackageLicensePolicy": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageLicensePolicyRequest": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackageLicensePolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageLicensePolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageLicensePolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationMembership": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "is_active": { + "title": "Is active", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipRequestPatch": { + "type": "object", + "properties": {} + }, + "OrganizationMembershipRoleUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + } + } + }, + "OrganizationMembershipRoleUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdateRequestPatch": { + "type": "object", + "properties": { + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "ProviderSettings": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + }, + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "ProviderSettingsRequest": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "ProviderSettingsRequestPatch": { + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackagePolicyViolationsLicense": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "NestedVulnerabilityPolicy": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NestedVulnerabilityScanResults": { + "required": [ + "identifier", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackagePolicyViolationsVulnerability": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationProductFeatures": { + "type": "object", + "properties": { + "plan": { + "title": "Plan", + "description": "Plan Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationSAMLAuth": { + "required": [ + "saml_auth_enabled", + "saml_auth_enforced" + ], + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationSAMLAuthRequestPatch": { + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGroupSync": { + "required": [ + "idp_key", + "idp_value", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncRequest": { + "required": [ + "idp_key", + "idp_value", + "organization", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "organization": { + "title": "Organization", + "type": "string" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncStatus": { + "type": "object", + "properties": { + "saml_group_sync_status": { + "title": "Saml group sync status", + "type": "boolean", + "readOnly": true + } + } + }, + "OrganizationSCIM": { + "required": [ + "scim_enabled" + ], + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + }, + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationSCIMRequestPatch": { + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + } + } + }, + "OrganizationSCIMToken": { + "type": "object", + "properties": { + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "ServiceTeams": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The team role associated with the service", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + }, + "slug": { + "title": "Slug", + "description": "The teams associated with the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "Service": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "key": { + "title": "Key", + "description": "The API key of the service", + "type": "string", + "readOnly": true + }, + "key_expires_at": { + "title": "Key expires at", + "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug": { + "title": "Slug", + "description": "The slug of the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "OrganizationGeneralSettings": { + "required": [ + "email", + "name" + ], + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGeneralSettingsRequestPatch": { + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationRenameSlugRequest": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationRenameSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "OrganizationTeam": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamMembership": { + "description": "The team members", + "required": [ + "role", + "user" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamMembers": { + "required": [ + "members" + ], + "type": "object", + "properties": { + "members": { + "description": "The team members", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamMembership" + } + } + } + }, + "OrganizationEditTeamMemberRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationEditTeamMember": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationTeamMember": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationUsage": { + "type": "object", + "properties": { + "bandwidth_overage_limit": { + "title": "Package Delivery On-Demand Limit (GBs)", + "description": "The on-demand limit for package delivery usage (in GBs).", + "type": "integer", + "nullable": true + }, + "storage_overage_limit": { + "title": "Artifact Data On-Demand Limit (GBs)", + "description": "The on-demand limit for artifact data usage (in GBs).", + "type": "integer", + "nullable": true + } + } + }, + "OrganizationUsageUpdateRequestPatch": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "OrganizationUsageUpdate": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationPackageVulnerabilityPolicy": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageVulnerabilityPolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "DockerLayerReference": { + "type": "object", + "properties": { + "command": { + "title": "Command", + "description": "The V1 command for managing the layer.", + "type": "string", + "readOnly": true + }, + "digest": { + "title": "Digest", + "description": "The digest of the layer.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_empty": { + "title": "Is empty", + "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", + "type": "boolean", + "readOnly": true + }, + "layer_type": { + "title": "Layer type", + "description": "The type of layer this is relative to image.", + "type": "string", + "enum": [ + "Base Layer", + "Intermediate Layer", + "Final Layer" + ], + "readOnly": true, + "default": "Base Layer" + }, + "mount_type": { + "title": "Mount type", + "description": "The Mount Type for the layer.", + "type": "string", + "enum": [ + "Local", + "Remote" + ], + "readOnly": true, + "default": "Local" + }, + "processed": { + "title": "Processed", + "description": "Has the layer been processed.", + "type": "boolean", + "readOnly": true + }, + "size": { + "title": "Size", + "description": "The size of the layer (in bytes).", + "type": "integer", + "readOnly": true + } + } + }, + "DockerCosign": { + "description": "The list of docker cosign attestations", + "required": [ + "created_at" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "When this cosign artifact was created", + "type": "string", + "format": "date-time" + }, + "digest": { + "title": "Digest", + "description": "The cosign artifact digest", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "The package identifier of this signature.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + } + } + }, + "DockerManifest": { + "description": "The list of manifests associated with this Docker package", + "type": "object", + "properties": { + "digest": { + "title": "Digest", + "description": "The digest for the manifest.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "is_primary": { + "title": "Is primary", + "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", + "type": "boolean", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest Type", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "manifest_type_display": { + "title": "Manifest type display", + "type": "string", + "readOnly": true + } + } + }, + "DockerPackageAdditionalDetails": { + "type": "object", + "properties": { + "attestations": { + "$ref": "#/components/schemas/DockerCosign" + }, + "config_digest": { + "title": "Config digest", + "description": "The digest of the Docker image config", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + }, + "manifests": { + "$ref": "#/components/schemas/DockerManifest" + }, + "package_type": { + "title": "Package type", + "description": "The type of the docker package i.e. a manifest or manifest list.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "sboms": { + "$ref": "#/components/schemas/DockerCosign" + }, + "signatures": { + "$ref": "#/components/schemas/DockerCosign" + } + } + }, + "MavenPackageAdditionalDetails": { + "type": "object", + "properties": { + "extended_metadata": { + "title": "Extended metadata", + "type": "string", + "readOnly": true + } + } + }, + "Architecture": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "PackageFile": { + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true, + "nullable": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_primary": { + "title": "Is primary", + "type": "boolean", + "readOnly": true + }, + "is_synchronised": { + "title": "Is synchronised", + "type": "boolean", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the file.", + "type": "integer", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "tag": { + "title": "Tag", + "description": "Freeform descriptor that describes what the file is.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "Tags": { + "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", + "type": "object", + "properties": {} + }, + "Package": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageGroup": { + "required": [ + "count", + "last_push", + "num_downloads", + "size" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "type": "integer" + }, + "count": { + "title": "Count", + "type": "integer", + "nullable": true + }, + "last_push": { + "title": "Last push", + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "integer", + "nullable": true + }, + "size": { + "title": "Size", + "type": "integer", + "nullable": true + } + } + }, + "AlpinePackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "AlpinePackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CargoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CargoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CocoapodsPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CocoapodsPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ComposerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ComposerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ConanPackageUploadRequest": { + "required": [ + "info_file", + "manifest_file", + "metadata_file", + "package_file" + ], + "type": "object", + "properties": { + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "info_file": { + "title": "Info file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "manifest_file": { + "title": "Manifest file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "metadata_file": { + "title": "Metadata file", + "description": "The conan file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ConanPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CondaPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CondaPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CranPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "architecture": { + "title": "Architecture", + "description": "Binary package uploads for macOS should specify the architecture they were built for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CranPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DartPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DartPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DebPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "changes_file": { + "title": "Changes file", + "description": "The changes archive containing the changes made to the source and debian packaging files", + "type": "string", + "minLength": 1, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", + "type": "string", + "pattern": "^[-_.\\w]+$", + "default": "main", + "maxLength": 64, + "minLength": 1 + }, + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sources_file": { + "title": "Sources file", + "description": "The sources archive containing the source code for the binary", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DebPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DockerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DockerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "GoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "GoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HelmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provenance_file": { + "title": "Provenance file", + "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HelmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HexPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HexPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "LuarocksPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "LuarocksPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "MavenPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "extra_files": { + "description": "Extra files to include in the package. This can be a single file or multiple files.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "ivy_file": { + "title": "Ivy file", + "description": "The ivy file is an XML file describing the dependencies of the project.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "javadoc_file": { + "title": "Javadoc file", + "description": "Adds bundled Java documentation to the Maven package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "pom_file": { + "title": "Pom file", + "description": "The POM file is an XML file containing the Maven coordinates.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "sources_file": { + "title": "Sources file", + "description": "Adds bundled Java source code to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "tests_file": { + "title": "Tests file", + "description": "Adds bundled Java tests to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "MavenPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NpmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "npm_dist_tag": { + "title": "Npm dist tag", + "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", + "type": "string", + "default": "latest", + "maxLength": 255, + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NugetPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "symbols_file": { + "title": "Symbols file", + "description": "Uploads a symbols file as a separate package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NugetPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "P2PackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "P2PackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PythonPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "PythonPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RawPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "content_type": { + "title": "Content/Media Type", + "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "RawPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RpmPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RubyPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RubyPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "SwiftPackageUploadRequest": { + "required": [ + "name", + "package_file", + "scope", + "version" + ], + "type": "object", + "properties": { + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "SwiftPackageUpload": { + "required": [ + "name", + "scope", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "TerraformPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "TerraformPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VagrantPackageUploadRequest": { + "required": [ + "name", + "package_file", + "provider", + "version" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "VagrantPackageUpload": { + "required": [ + "name", + "provider", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageCopyRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + } + } + }, + "PackageCopy": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be copied to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageDependency": { + "type": "object", + "properties": { + "dep_type": { + "title": "Dep type", + "type": "string", + "enum": [ + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Enhances", + "Replaces", + "Breaks", + "Built-Using", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Conflicts", + "Provides", + "Obsoletes", + "Requires", + "Runtime", + "Development", + "Compile", + "Provided", + "Test", + "System", + "Import", + "Excluded", + "Build-Requires", + "Python-Requires" + ], + "readOnly": true, + "default": "Depends" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "maxLength": 255, + "minLength": 1 + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "=", + "!=", + "<", + "<<", + "<=", + ">", + ">>", + ">=", + "~=", + "~>", + "matches" + ], + "readOnly": true, + "default": "=", + "nullable": true + }, + "version": { + "title": "Version", + "type": "string", + "readOnly": true, + "maxLength": 128, + "minLength": 1, + "nullable": true + } + } + }, + "PackageDependencies": { + "required": [ + "dependencies" + ], + "type": "object", + "properties": { + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDependency" + } + } + } + }, + "PackageMoveRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + } + } + }, + "PackageMove": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be moved to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageQuarantineRequest": { + "type": "object", + "properties": { + "release": { + "title": "Release", + "description": "If true, the package is released from quarantine.", + "type": "boolean" + }, + "restore": { + "title": "Restore", + "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", + "type": "boolean" + } + } + }, + "PackageQuarantine": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageResync": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageStatus": { + "type": "object", + "properties": { + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + } + } + }, + "PackageTagRequest": { + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Add", + "Clear", + "Replace", + "Remove" + ], + "default": "Add", + "nullable": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "tags": { + "description": "A list of tags to apply the action to. Not required for clears.", + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "default": [], + "nullable": true + } + } + }, + "PackageTag": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "Usage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageUsage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "HistoryFieldset": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/Usage" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsage" + }, + "uploaded": { + "$ref": "#/components/schemas/Usage" + } + } + }, + "UsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageUsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "HistoryFieldsetRaw": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/UsageRaw" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsageRaw" + }, + "uploaded": { + "$ref": "#/components/schemas/UsageRaw" + } + } + }, + "History": { + "required": [ + "display", + "end", + "plan", + "raw", + "start" + ], + "type": "object", + "properties": { + "days": { + "title": "Days", + "type": "integer", + "default": 0 + }, + "display": { + "$ref": "#/components/schemas/HistoryFieldset" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time" + }, + "plan": { + "title": "Plan", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "raw": { + "$ref": "#/components/schemas/HistoryFieldsetRaw" + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + } + } + }, + "QuotaHistory": { + "required": [ + "history" + ], + "type": "object", + "properties": { + "history": { + "type": "array", + "items": { + "$ref": "#/components/schemas/History" + } + } + } + }, + "AllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageAllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "UsageLimits": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimit" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimit" + } + } + }, + "AllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageAllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "UsageLimitsRaw": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimitRaw" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimitRaw" + } + } + }, + "UsageFieldset": { + "required": [ + "display", + "raw" + ], + "type": "object", + "properties": { + "display": { + "$ref": "#/components/schemas/UsageLimits" + }, + "raw": { + "$ref": "#/components/schemas/UsageLimitsRaw" + } + } + }, + "Quota": { + "required": [ + "usage" + ], + "type": "object", + "properties": { + "usage": { + "$ref": "#/components/schemas/UsageFieldset" + } + } + }, + "RateCheck": { + "type": "object", + "properties": { + "interval": { + "title": "Interval", + "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", + "type": "number", + "readOnly": true + }, + "limit": { + "title": "Limit", + "description": "The maximum number of requests that you are permitted to send per hour", + "type": "integer", + "readOnly": true + }, + "remaining": { + "title": "Remaining", + "description": "The number of requests that are remaining in the current rate limit window", + "type": "integer", + "readOnly": true + }, + "reset": { + "title": "Reset", + "description": "The UTC epoch timestamp at which the current rate limit window will reset", + "type": "integer", + "readOnly": true + }, + "reset_iso_8601": { + "title": "Reset iso 8601", + "description": "The ISO 8601 datetime at which the current rate limit window will reset", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "throttled": { + "title": "Throttled", + "description": "If true, throttling is currently being enforced.", + "type": "boolean", + "readOnly": true + } + } + }, + "ResourcesRateCheck": { + "type": "object", + "properties": { + "resources": { + "title": "Resources", + "description": "Rate limit values per resource", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RateCheck" + }, + "readOnly": true + } + } + }, + "RepositoryEcdsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryGpgKey": { + "required": [ + "comment" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by GPG for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Repository": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "readOnly": true, + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreate": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryRequestPatch": { + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryEcdsaKeyCreate": { + "required": [ + "ecdsa_private_key" + ], + "type": "object", + "properties": { + "ecdsa_passphrase": { + "title": "Ecdsa passphrase", + "description": "The ECDSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "ecdsa_private_key": { + "title": "Ecdsa private key", + "description": "The ECDSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpCidr": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed CIDRs for this repository", + "type": "array", + "items": { + "description": "The allowed CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied CIDRs for this repository", + "type": "array", + "items": { + "description": "The denied CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpCountryCode": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed country codes for this repository", + "type": "array", + "items": { + "description": "The allowed country codes for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied country codes for this repository", + "type": "array", + "items": { + "description": "The denied country codes for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpRules": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequest": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "type": "object", + "properties": {} + }, + "RespositoryGeoIpEnableDisable": { + "type": "object", + "properties": {} + }, + "RepositoryGeoIpStatus": { + "type": "object", + "properties": { + "geoip_enabled": { + "title": "Geo/IP Restriction Enabled?", + "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", + "type": "boolean", + "readOnly": true + } + } + }, + "RepositoryGeoIpTestAddress": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP addresses to test against this repository", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "RepositoryGeoIpTestAddressResponseDict": { + "required": [ + "allowed", + "country_code", + "ip_address", + "reason" + ], + "type": "object", + "properties": { + "allowed": { + "title": "Allowed", + "description": "The result of the IP test", + "type": "boolean" + }, + "country_code": { + "title": "Country code", + "description": "The country code of the tested IP address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "ip_address": { + "title": "Ip address", + "description": "The IP address that was tested", + "type": "string", + "minLength": 1 + }, + "reason": { + "title": "Reason", + "description": "The reason for the result", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpTestAddressResponse": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP address test results ordered by allowed", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" + } + } + } + }, + "RepositoryGpgKeyCreate": { + "required": [ + "gpg_private_key" + ], + "type": "object", + "properties": { + "gpg_passphrase": { + "title": "Gpg passphrase", + "description": "The GPG passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "gpg_private_key": { + "title": "Gpg private key", + "description": "The GPG private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeDict": { + "required": [ + "privilege" + ], + "type": "object", + "properties": { + "privilege": { + "title": "Privilege", + "description": "The level of privilege that the user or team should be granted to the specified repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ] + }, + "service": { + "title": "Service", + "description": "The service identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "user": { + "title": "User", + "description": "The user identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeInput": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequest": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequestPatch": { + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryRsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by RSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by RSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryRsaKeyCreate": { + "required": [ + "rsa_private_key" + ], + "type": "object", + "properties": { + "rsa_passphrase": { + "title": "Rsa passphrase", + "description": "The RSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "rsa_private_key": { + "title": "Rsa private key", + "description": "The RSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "CargoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstream": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequest": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstream": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequest": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RepositoryX509EcdsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "EulaCreate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "EulaCreateRequest": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdateRequestPatch": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "RepositoryTransferOwnerRequest": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTransferOwner": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryRetentionRules": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", + "type": "string", + "readOnly": true, + "default": "0.0.0", + "minLength": 1 + } + } + }, + "StorageRegion": { + "required": [ + "label", + "slug" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "description": "Name of the storage region", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "Slug for the storage region", + "type": "string", + "minLength": 1 + } + } + }, + "MetricsRequest": { + "type": "object", + "properties": { + "backend_type": { + "title": "Backend type", + "type": "string", + "enum": [ + "DEB", + "RPM", + "RUBY", + "PYTHON", + "MAVEN", + "BOWER", + "DOCKER", + "RAW", + "CHOCOLATEY", + "NPM", + "NUGET", + "VAGRANT", + "COMPOSER", + "ALPINE", + "HELM", + "CONAN", + "CARGO", + "LUAROCKS", + "CRAN", + "GO", + "DART", + "COCOAPODS", + "TERRAFORM", + "P2", + "CONDA", + "HEX", + "SWIFT", + "DEFAULT" + ] + }, + "end_time": { + "title": "End time", + "type": "string", + "format": "date" + }, + "interval": { + "title": "Interval", + "type": "string", + "enum": [ + "day", + "week", + "month" + ], + "default": "day" + }, + "repository_slugs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "repository_type": { + "title": "Repository type", + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE", + "OPEN_SOURCE" + ] + }, + "start_time": { + "title": "Start time", + "type": "string", + "format": "date" + }, + "user_type": { + "title": "User type", + "type": "string", + "enum": [ + "USER", + "SERVICE" + ] + } + } + }, + "AdditionalOnboardingActions": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "type": "string", + "readOnly": true + }, + "kind": { + "title": "Kind", + "type": "string", + "readOnly": true + }, + "label": { + "title": "Label", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "verb": { + "title": "Verb", + "type": "string", + "readOnly": true + } + } + }, + "AdditionalOnboardingActionsRequestPatch": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + } + } + }, + "UserDefaultOrg": { + "required": [ + "org_slug" + ], + "type": "object", + "properties": { + "org_name": { + "title": "Org name", + "description": "The descriptive name for the user's default organization.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "org_slug_perm": { + "title": "Org slug perm", + "description": "The slug_perm of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserDefaultOrgRequestPatch": { + "type": "object", + "properties": { + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "EmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddressRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "UpdatePrimaryEmail": { + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean", + "readOnly": true + } + } + }, + "EmailAddressResendConfirmation": { + "type": "object", + "properties": {} + }, + "UserOrganizationInvite": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "UserOrganizationInviteRequest": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "Location": { + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "readOnly": true + }, + "country": { + "title": "Country", + "type": "string", + "readOnly": true + } + } + }, + "UserLoginHistory": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "method": { + "title": "Method", + "type": "string", + "readOnly": true + }, + "method_context": { + "title": "Method context", + "type": "string", + "readOnly": true, + "nullable": true + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserLogoutOtherSessions": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserPasswordRequest": { + "required": [ + "confirm_new_password", + "current_password", + "new_password" + ], + "type": "object", + "properties": { + "confirm_new_password": { + "title": "Confirm new password", + "description": "Confirming the new password for the current user.", + "type": "string", + "minLength": 1 + }, + "current_password": { + "title": "Current password", + "description": "The current user's password.", + "type": "string", + "minLength": 1 + }, + "new_password": { + "title": "New password", + "description": "The new password for the current user.", + "type": "string", + "minLength": 1 + } + } + }, + "UserPassword": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Permission": { + "description": "A list of permissions to check if permissible.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "args": { + "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "context": { + "title": "Context", + "description": "Any additional context for why a permission check failed.", + "type": "string", + "readOnly": true, + "maxLength": 512, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The qualified name of the permission; e.g. package.upload_packages", + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "permissible": { + "title": "Permissible", + "description": "If permissible is true, then the user has the specified permission.", + "type": "boolean", + "readOnly": true, + "default": false + } + } + }, + "Permissions": { + "required": [ + "permissions" + ], + "type": "object", + "properties": { + "permissions": { + "description": "A list of permissions to check if permissible.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Permission" + } + } + } + }, + "User": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "onboarding_actions": { + "title": "Onboarding actions", + "type": "string", + "readOnly": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRequestPatch": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRefreshWebTokenRequest": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserRefreshWebToken": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserBrief": { + "type": "object", + "properties": { + "authenticated": { + "title": "Authenticated", + "description": "If true then you're logged in as a user.", + "type": "boolean", + "readOnly": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSession": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSlugRequestPatch": { + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "UserSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "SoftDeleteUser": { + "type": "object", + "properties": {} + }, + "UserAuthTokenRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "Email address to authenticate with", + "type": "string", + "format": "email", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password to authenticate with", + "type": "string", + "minLength": 1 + }, + "totp_token": { + "title": "Two-factor code", + "description": "Two-factor authentication code", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthToken": { + "type": "object", + "properties": { + "token": { + "title": "Token", + "description": "API token for the authenticated user", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "two_factor_required": { + "title": "Two factor required", + "description": "Flag indicating whether a 2FA code is required to complete authentication", + "type": "boolean", + "readOnly": true + }, + "two_factor_token": { + "title": "Two factor token", + "description": "Token to use when providing 2FA code", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserApiCidr": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "An auto-generated id that uniquely identifies the object.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1, + "nullable": true + } + } + }, + "UserApiCidrRequest": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserApiCidrRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthenticationToken": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "The time at which the API key was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm for token.", + "type": "string", + "readOnly": true + } + } + }, + "TOTPRequest": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + }, + "token": { + "title": "Token", + "description": "Token for TOTP Device confirmation", + "type": "string", + "minLength": 1 + } + } + }, + "TOTP": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "qr_code_encoded_image": { + "title": "Qr code encoded image", + "description": "Base64 Encoded QR Image", + "type": "string", + "readOnly": true + }, + "secret_key": { + "title": "Secret key", + "description": "TOTP Secret Key", + "type": "string", + "readOnly": true + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + } + } + }, + "TOTPSettings": { + "required": [ + "enforce_saml_2fa" + ], + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + }, + "is_2fa_backup_codes_enabled": { + "title": "Is 2fa backup codes enabled", + "description": "Is 2FA Backup Codes enabled for the authenticated user", + "type": "boolean", + "readOnly": true + }, + "is_2fa_enabled": { + "title": "Is 2fa enabled", + "description": "Is 2FA enabled for the authenticated user", + "type": "boolean", + "readOnly": true + } + } + }, + "TOTPSettingsRequestPatch": { + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + } + } + }, + "UserProfile": { + "required": [ + "first_name", + "last_name" + ], + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time" + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VulnerabilityScanResultsList": { + "required": [ + "identifier", + "package", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + } + } + }, + "VulnerabilityScanVersion": { + "required": [ + "major", + "minor", + "patch" + ], + "type": "object", + "properties": { + "major": { + "title": "Major", + "type": "integer" + }, + "minor": { + "title": "Minor", + "type": "integer" + }, + "operator": { + "title": "Operator", + "type": "string", + "default": "", + "maxLength": 32, + "minLength": 1 + }, + "patch": { + "title": "Patch", + "type": "integer" + }, + "raw_version": { + "title": "Raw version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + }, + "version": { + "title": "Version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + } + } + }, + "Vulnerability": { + "required": [ + "affected_version", + "description", + "fixed_version", + "package_name", + "references", + "severity_source", + "title", + "vulnerability_id" + ], + "type": "object", + "properties": { + "affected_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 1028, + "minLength": 1 + }, + "fixed_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "package_name": { + "title": "Package name", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "references": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "severity_source": { + "title": "Severity source", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "vulnerability_id": { + "title": "Vulnerability id", + "type": "string", + "maxLength": 13, + "minLength": 1 + } + } + }, + "VulnerabilityScan": { + "required": [ + "results", + "target", + "type" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Vulnerability" + } + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "minLength": 1 + } + } + }, + "VulnerabilityScanResults": { + "required": [ + "identifier", + "package", + "scan_id", + "scans" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScan" + } + } + } + }, + "WebhookTemplate": { + "required": [ + "event" + ], + "type": "object", + "properties": { + "event": { + "title": "Event", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "template": { + "title": "Template", + "type": "string", + "maxLength": 4096, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryWebhook": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "disable_reason_str": { + "title": "Disable reason str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "is_last_response_bad": { + "title": "Is last response bad", + "type": "boolean", + "readOnly": true + }, + "last_response_status": { + "title": "Last response status", + "type": "integer", + "readOnly": true + }, + "last_response_status_str": { + "title": "Last response status str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "num_sent": { + "title": "Num sent", + "type": "integer", + "readOnly": true + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_format_str": { + "title": "Request body format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_body_template_format_str": { + "title": "Request body template format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequest": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequestPatch": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + } + } + } +} diff --git a/src/content/schemas/api-schema-v3.json b/src/content/schemas/api-schema-v3.json index c8a4bea6..8087d0c5 100644 --- a/src/content/schemas/api-schema-v3.json +++ b/src/content/schemas/api-schema-v3.json @@ -1,59793 +1,59811 @@ { - "openapi": "3.0.0", - "info": { - "title": "dev", - "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io", - "contact": { - "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io", - "email": "support@cloudsmith.io" - }, - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - }, - "version": "v1" - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "paths": { - "/audit-log/{owner}": { - "get": { - "operationId": "audit_log_namespace_list", - "summary": "Lists audit log entries for a specific namespace.", - "description": "Lists audit log entries for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NamespaceAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["audit-log"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/audit-log/{owner}/{repo}": { - "get": { - "operationId": "audit_log_repo_list", - "summary": "Lists audit log entries for a specific repository.", - "description": "Lists audit log entries for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["audit-log"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "openapi": "3.0.0", + "info": { + "title": "dev", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io", + "contact": { + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io", + "email": "support@cloudsmith.io" }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "v1" }, - "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}": { - "get": { - "operationId": "badges_version_list", - "summary": "Get latest package version for a package or package group.", - "description": "Get latest package version for a package or package group.", - "parameters": [ - { - "name": "badge_token", - "in": "query", - "description": "Badge token to authenticate for private packages", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "cacheSeconds", - "in": "query", - "description": "Override the shields.io badge cacheSeconds value.", - "required": false, - "schema": { - "type": "string", - "default": "300" - } - }, - { - "name": "color", - "in": "query", - "description": "Override the shields.io badge color value.", - "required": false, - "schema": { - "type": "string", - "default": "12577E" - } - }, - { - "name": "label", - "in": "query", - "description": "Override the shields.io badge label value.", - "required": false, - "schema": { - "type": "string", - "default": "cloudsmith" - } - }, - { - "name": "labelColor", - "in": "query", - "description": "Override the shields.io badge labelColor value.", - "required": false, - "schema": { - "type": "string", - "default": "021F2F" - } - }, - { - "name": "logoColor", - "in": "query", - "description": "Override the shields.io badge logoColor value.", - "required": false, - "schema": { - "type": "string", - "default": "45B6EE" - } - }, - { - "name": "logoWidth", - "in": "query", - "description": "Override the shields.io badge logoWidth value.", - "required": false, - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "render", - "in": "query", - "description": "If true, badge will be rendered", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "shields", - "in": "query", - "description": "If true, a shields response will be generated", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_latest", - "in": "query", - "description": "If true, for latest version badges a '(latest)' suffix is added", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "style", - "in": "query", - "description": "Override the shields.io badge style value.", - "required": false, - "schema": { - "type": "string", - "default": "flat-square" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVersionBadge" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["badges"], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["AllowAny"] - }, - "parameters": [ + "security": [ { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "apikey": [] }, { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "basic": [] + } + ], + "paths": { + "/audit-log/{owner}/": { + "get": { + "operationId": "audit_log_namespace_list", + "summary": "Lists audit log entries for a specific namespace.", + "description": "Lists audit log entries for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NamespaceAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "package_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/audit-log/{owner}/{repo}/": { + "get": { + "operationId": "audit_log_repo_list", + "summary": "Lists audit log entries for a specific repository.", + "description": "Lists audit log entries for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "package_name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "get": { + "operationId": "badges_version_list", + "summary": "Get latest package version for a package or package group.", + "description": "Get latest package version for a package or package group.", + "parameters": [ + { + "name": "badge_token", + "in": "query", + "description": "Badge token to authenticate for private packages", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "cacheSeconds", + "in": "query", + "description": "Override the shields.io badge cacheSeconds value.", + "required": false, + "schema": { + "type": "string", + "default": "300" + } + }, + { + "name": "color", + "in": "query", + "description": "Override the shields.io badge color value.", + "required": false, + "schema": { + "type": "string", + "default": "12577E" + } + }, + { + "name": "label", + "in": "query", + "description": "Override the shields.io badge label value.", + "required": false, + "schema": { + "type": "string", + "default": "cloudsmith" + } + }, + { + "name": "labelColor", + "in": "query", + "description": "Override the shields.io badge labelColor value.", + "required": false, + "schema": { + "type": "string", + "default": "021F2F" + } + }, + { + "name": "logoColor", + "in": "query", + "description": "Override the shields.io badge logoColor value.", + "required": false, + "schema": { + "type": "string", + "default": "45B6EE" + } + }, + { + "name": "logoWidth", + "in": "query", + "description": "Override the shields.io badge logoWidth value.", + "required": false, + "schema": { + "type": "string", + "default": "10" + } + }, + { + "name": "render", + "in": "query", + "description": "If true, badge will be rendered", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "shields", + "in": "query", + "description": "If true, a shields response will be generated", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_latest", + "in": "query", + "description": "If true, for latest version badges a '(latest)' suffix is added", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "style", + "in": "query", + "description": "Override the shields.io badge style value.", + "required": false, + "schema": { + "type": "string", + "default": "flat-square" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionBadge" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "badges" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_identifiers", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "package_version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/billing/plans/": { + "parameters": [] }, - { - "name": "package_identifiers", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/plans": { - "get": { - "operationId": "billing_plans_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the plans", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Plan" - } + "/billing/{owner}/account-status/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/billing/{owner}/account-status": { - "get": { - "operationId": "billing_account_status", - "description": "", - "responses": { - "200": { - "description": "Retrieved the account status", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccountStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_billing_account_status(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices": { - "get": { - "operationId": "billing_invoices", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the Invoices", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Invoice" - } + ] + }, + "/billing/{owner}/invoices/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_invoices(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/{invoice_id}": { - "get": { - "operationId": "billing_invoice_pdf", - "description": "", - "responses": { - "200": { - "description": "Retrieved the Invoice PDF Link", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InvoicePDF" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or invoice not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_invoices(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "invoice_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/payment-methods": { - "get": { - "operationId": "billing_payment_methods", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the Payment Methods", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } + "/billing/{owner}/invoices/{invoice_id}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_billing_payment_methods(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/periods": { - "get": { - "operationId": "billing_periods", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the Billing Periods", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/BillingPeriod" - } + ] + }, + "/billing/{owner}/payment-methods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_billing_periods(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/portal": { - "get": { - "operationId": "billing_portal", - "description": "", - "responses": { - "200": { - "description": "Retrieved Billing Portal URL", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PortalUrl" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_billing_portal(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/subscription": { - "get": { - "operationId": "billing_subscription", - "description": "", - "responses": { - "200": { - "description": "Retrieved the Subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Subscription" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_subscription(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "put": { - "operationId": "billing_update_subscription", - "description": "", - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "identifier": { - "type": "string" - } - } - } - } - } + ] }, - "responses": { - "200": { - "description": "Subscription has been updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Subscription" + "/billing/{owner}/periods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The subscription couldn't be updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "500": { - "description": "There was an unexpected error processing your request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.activate_billing_product(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "billing_cancel_subscription", - "description": "", - "responses": { - "204": { - "description": "Subscription Cancelled Successfully" - }, - "400": { - "description": "There was an issue cancelling your subscription", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "417": { - "description": "Privilege Escalation Required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "500": { - "description": "There was an unexpected error processing your request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.cancel_billing_product(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/trial": { - "get": { - "operationId": "billing_trial", - "description": "", - "responses": { - "200": { - "description": "Retrieved the trial data", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrialDays" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_trial(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "billing_cancel_trial", - "description": "", - "responses": { - "204": { - "description": "The trial has been cancelled" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "You don't have access to the specified Organization", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["billing"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.cancel_billing_product(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/distros": { - "get": { - "operationId": "distros_list", - "summary": "Get a list of all supported distributions.", - "description": "Get a list of all supported distributions.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["distros"], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/distros/{slug}": { - "get": { - "operationId": "distros_read", - "summary": "View for viewing/listing distributions.", - "description": "View for viewing/listing distributions.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["distros"], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}": { - "get": { - "operationId": "entitlements_list", - "summary": "Get a list of all entitlements in a repository.", - "description": "Get a list of all entitlements in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names of entitlements.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "If true, only include active tokens", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of entitlement tokens", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "entitlements_create", - "summary": "Create a specific entitlement in a repository.", - "description": "Create a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" + "/billing/{owner}/portal/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/sync": { - "post": { - "operationId": "entitlements_sync", - "summary": "Synchronise tokens from a source repository.", - "description": "Synchronise tokens from a source repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSyncRequest" - } - } - } + "/billing/{owner}/subscription/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "The tokens have been synchronised from the source repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSync" + "/billing/{owner}/trial/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}": { - "get": { - "operationId": "entitlements_read", - "summary": "Get a specific entitlement in a repository.", - "description": "Get a specific entitlement in a repository.", - "parameters": [ - { - "name": "fuzzy", - "in": "query", - "description": "If true, entitlement identifiers including name will be fuzzy matched.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Couldn't retrieve the specified token because the request contains an error.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "entitlements_partial_update", - "summary": "Update a specific entitlement in a repository.", - "description": "Update a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequestPatch" - } - } - } + "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_kind", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Updated the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" + "/broadcasts/{org}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The entitlement cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "entitlements_delete", - "summary": "Delete a specific entitlement in a repository.", - "description": "Delete a specific entitlement in a repository.", - "responses": { - "204": { - "description": "Soft-deleted the specified entitlement token successfully." - }, - "400": { - "description": "The entitlement cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/broadcasts/{org}/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/disable": { - "post": { - "operationId": "entitlements_disable", - "summary": "Disable an entitlement token in a repository.", - "description": "Disable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/broadcasts/{org}/repos/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/broadcasts/{org}/repos/{identifier}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/enable": { - "post": { - "operationId": "entitlements_enable", - "summary": "Enable an entitlement token in a repository.", - "description": "Enable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/distros/": { + "get": { + "operationId": "distros_list", + "summary": "Get a list of all supported distributions.", + "description": "Get a list of all supported distributions.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/distros/{slug}/": { + "get": { + "operationId": "distros_read", + "summary": "View for viewing/listing distributions.", + "description": "View for viewing/listing distributions.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "entitlements_list", + "summary": "Get a list of all entitlements in a repository.", + "description": "Get a list of all entitlements in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names of entitlements.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "If true, only include active tokens", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of entitlement tokens", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "entitlements_create", + "summary": "Create a specific entitlement in a repository.", + "description": "Create a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/refresh": { - "post": { - "operationId": "entitlements_refresh", - "summary": "Refresh an entitlement token in a repository.", - "description": "Refresh an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" - } - } - } + "/entitlements/{owner}/{repo}/sync/": { + "post": { + "operationId": "entitlements_sync", + "summary": "Synchronise tokens from a source repository.", + "description": "Synchronise tokens from a source repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSyncRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The tokens have been synchronised from the source repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "The entitlement token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefresh" + "/entitlements/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "entitlements_read", + "summary": "Get a specific entitlement in a repository.", + "description": "Get a specific entitlement in a repository.", + "parameters": [ + { + "name": "fuzzy", + "in": "query", + "description": "If true, entitlement identifiers including name will be fuzzy matched.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Retrieved the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Couldn't retrieve the specified token because the request contains an error.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "entitlements_partial_update", + "summary": "Update a specific entitlement in a repository.", + "description": "Update a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "The entitlement cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "entitlements_delete", + "summary": "Delete a specific entitlement in a repository.", + "description": "Delete a specific entitlement in a repository.", + "responses": { + "204": { + "description": "Soft-deleted the specified entitlement token successfully." + }, + "400": { + "description": "The entitlement cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/entitlements/{owner}/{repo}/{identifier}/disable/": { + "post": { + "operationId": "entitlements_disable", + "summary": "Disable an entitlement token in a repository.", + "description": "Disable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been disabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/reset": { - "post": { - "operationId": "entitlements_reset", - "summary": "Reset the statistics for an entitlement token in a repository.", - "description": "Reset the statistics for an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "204": { - "description": "The entitlement token statistics have been reset." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["entitlements"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/entitlements/{owner}/{repo}/{identifier}/enable/": { + "post": { + "operationId": "entitlements_enable", + "summary": "Enable an entitlement token in a repository.", + "description": "Enable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been enabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/entitlements/{owner}/{repo}/{identifier}/refresh/": { + "post": { + "operationId": "entitlements_refresh", + "summary": "Refresh an entitlement token in a repository.", + "description": "Refresh an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The entitlement token has been refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefresh" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}": { - "post": { - "operationId": "files_create", - "summary": "Request URL(s) to upload new package file upload(s) to.", - "description": "Request URL(s) to upload new package file upload(s) to.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "202": { - "description": "The upload request was accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["files"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/entitlements/{owner}/{repo}/{identifier}/reset/": { + "post": { + "operationId": "entitlements_reset", + "summary": "Reset the statistics for an entitlement token in a repository.", + "description": "Reset the statistics for an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "The entitlement token statistics have been reset." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/validate": { - "post": { - "operationId": "files_validate", - "summary": "Validate parameters used for create.", - "description": "Validate parameters used for create.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["files"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/files/{owner}/{repo}/": { + "post": { + "operationId": "files_create", + "summary": "Request URL(s) to upload new package file upload(s) to.", + "description": "Request URL(s) to upload new package file upload(s) to.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "202": { + "description": "The upload request was accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/abort": { - "post": { - "operationId": "files_abort", - "summary": "Abort a multipart file upload.", - "description": "Abort a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "The multipart upload was aborted successfully." - }, - "400": { - "description": "The multipart upload could not be aborted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["files"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/complete": { - "post": { - "operationId": "files_complete", - "summary": "Complete a multipart file upload.", - "description": "Complete a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "201": { - "description": "The multipart upload was completed successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "The multipart upload could not be completed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["files"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/info": { - "get": { - "operationId": "files_info", - "summary": "Get upload information to perform a multipart file upload.", - "description": "Get upload information to perform a multipart file upload.", - "parameters": [ - { - "name": "filename", - "in": "query", - "description": "The filename of the file being uploaded", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "part_number", - "in": "query", - "description": "The part number to be uploaded next", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Information for multipart uploaded retrieved successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFilePartsUpload" - } - } - } - }, - "400": { - "description": "The provided upload file was not a multipart upload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["files"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/files/{owner}/{repo}/validate/": { + "post": { + "operationId": "files_validate", + "summary": "Validate parameters used for create.", + "description": "Validate parameters used for create.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/files/{owner}/{repo}/{identifier}/abort/": { + "post": { + "operationId": "files_abort", + "summary": "Abort a multipart file upload.", + "description": "Abort a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "The multipart upload was aborted successfully." + }, + "400": { + "description": "The multipart upload could not be aborted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/formats": { - "get": { - "operationId": "formats_list", - "summary": "Get a list of all supported package formats.", - "description": "Get a list of all supported package formats.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Format" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["formats"], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/formats/{slug}": { - "get": { - "operationId": "formats_read", - "summary": "Get a specific supported package format.", - "description": "Get a specific supported package format.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Format" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["formats"], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/orgs/slugify": { - "get": { - "operationId": "internal_orgs_slugify", - "description": "", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["internal"], - "x-hidden": true, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/internal/orgs/{org}/saml": { - "get": { - "operationId": "internal_orgs_get_saml_redirect_url", - "summary": "Get an organization SAML Redirect URL if it exists and has SAML configured", - "description": "Get an organization SAML Redirect URL if it exists and has SAML configured", - "responses": { - "200": { - "description": "Organization has SAML Enabled. Redirect URL Returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "SAML Configuration for Organization is invalid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization namespace not found or it doesn't have SAML configured", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/files/{owner}/{repo}/{identifier}/complete/": { + "post": { + "operationId": "files_complete", + "summary": "Complete a multipart file upload.", + "description": "Complete a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "201": { + "description": "The multipart upload was completed successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "The multipart upload could not be completed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/user/confirm": { - "post": { - "operationId": "internal_user_confirm", - "summary": "Confirm the user.", - "description": "Confirm the user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserConfirmRequest" - } - } - } + "/files/{owner}/{repo}/{identifier}/info/": { + "get": { + "operationId": "files_info", + "summary": "Get upload information to perform a multipart file upload.", + "description": "Get upload information to perform a multipart file upload.", + "parameters": [ + { + "name": "filename", + "in": "query", + "description": "The filename of the file being uploaded", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "part_number", + "in": "query", + "description": "The part number to be uploaded next", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Information for multipart uploaded retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFilePartsUpload" + } + } + } + }, + "400": { + "description": "The provided upload file was not a multipart upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserConfirm" + "/formats/": { + "get": { + "operationId": "formats_list", + "summary": "Get a list of all supported package formats.", + "description": "Get a list of all supported package formats.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Format" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/formats/{slug}/": { + "get": { + "operationId": "formats_read", + "summary": "Get a specific supported package format.", + "description": "Get a specific supported package format.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Format" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + ] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [] - }, - "/internal/user/escalate": { - "post": { - "operationId": "internal_user_escalate", - "description": "", - "parameters": [ - { - "name": "next", - "in": "query", - "description": "The URL to redirect to after successful privilege escalation.", - "required": false, - "schema": { - "type": "string", - "minLength": 1, - "default": "/" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PrivilegeEscalation" - } - } - } - }, - "responses": { - "200": { - "description": "Session is now privileged, or already was if SAML. New tokens are returned if not SAML." - }, - "400": { - "description": "Verification type missing or invalid, or the redirect URL is invalid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "The verification failed", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["internal"], - "security": [], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/internal/user/login": { - "post": { - "operationId": "internal_user_login", - "summary": "Login an existing user.", - "description": "Login an existing user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserLoginRequest" - } - } - } + "/internal/orgs/slugify/": { + "parameters": [] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserLogin" + "/internal/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + ] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [] - }, - "/internal/user/password/request-reset": { - "post": { - "operationId": "internal_user_password_request_reset", - "summary": "Request a link (via email) that allows the user to reset their password.", - "description": "Request a link (via email) that allows the user to reset their password.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRequestPasswordResetRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Password reset email has been sent, if a user with that email exists." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/internal/user/confirm/": { + "parameters": [] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [] - }, - "/internal/user/password/reset": { - "post": { - "operationId": "internal_user_password_reset_password", - "summary": "Reset user's password using one-time token.", - "description": "Reset user's password using one-time token.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserResetPasswordRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Password has been reset successfully." - }, - "400": { - "description": "Failed to update password.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/internal/user/escalate/": { + "parameters": [] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"], - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/internal/user/signup": { - "post": { - "operationId": "internal_user_signup", - "summary": "Create a new user (signup).", - "description": "Create a new user (signup).", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserSignupRequest" - } - } - } + "/internal/user/login/": { + "parameters": [] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserSignup" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/internal/user/password/request-reset/": { + "parameters": [] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [] - }, - "/internal/user/two-factor": { - "post": { - "operationId": "internal_user_two_factor", - "summary": "Exchange a two_factor_token and totp_token for a JWT.", - "description": "Exchange a two_factor_token and totp_token for a JWT.", - "requestBody": { - "$ref": "#/components/requestBodies/InternalUserTwoFactorRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserTwoFactor" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/internal/user/password/reset/": { + "parameters": [] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"] - }, - "parameters": [] - }, - "/internal/user/zendesk/jwt": { - "post": { - "operationId": "internal_user_zendesk_zendesk_jwt", - "summary": "Generates a JWT for given user to be used with Zendesk", - "description": "Generates a JWT for given user to be used with Zendesk", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserZendeskTokenRequest" - } - } - } + "/internal/user/signup/": { + "parameters": [] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserZendeskToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } + "/internal/user/two-factor/": { + "parameters": [] }, - "tags": ["internal"], - "security": [ - { - "apikey": [] - } - ], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsSystemUser"], - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/licenses": { - "get": { - "operationId": "licenses_list", - "summary": "Get a list of known software licenses.", - "description": "Get a list of known software licenses.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/License" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["licenses"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/metrics/entitlements/{owner}": { - "get": { - "operationId": "metrics_entitlements_account_list", - "summary": "View for listing entitlement token metrics, across an account.", - "description": "View for listing entitlement token metrics, across an account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["metrics"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", - "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/{repo}": { - "get": { - "operationId": "metrics_entitlements_repo_list", - "summary": "View for listing entitlement token metrics, for a repository.", - "description": "View for listing entitlement token metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["metrics"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/internal/user/verify-device/": { + "parameters": [] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/packages/{owner}/{repo}": { - "get": { - "operationId": "metrics_packages_list", - "summary": "View for listing package usage metrics, for a repository.", - "description": "View for listing package usage metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "packages", - "in": "query", - "description": "A comma seperated list of packages (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for packages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["metrics"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/internal/user/zendesk/jwt/": { + "parameters": [] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/namespaces": { - "get": { - "operationId": "namespaces_list", - "summary": "Get a list of all namespaces the user belongs to.", - "description": "Get a list of all namespaces the user belongs to.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["namespaces"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [] - }, - "/namespaces/{slug}": { - "get": { - "operationId": "namespaces_read", - "summary": "Get a specific namespace that the user belongs to.", - "description": "Get a specific namespace that the user belongs to.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Namespace" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["namespaces"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/openid/{owner}": { - "post": { - "operationId": "openid_create", - "summary": "Get a JWT token for a configured service\naccount belonging to the requesting org.", - "description": "Get a JWT token for a configured service\naccount belonging to the requesting org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OidcRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "title": "Oidc", - "type": "object", - "properties": { - "token": { - "title": "Serialized JWT", - "description": "Serialized JWT to be used for authentication.", - "type": "string" + "/licenses/": { + "parameters": [] + }, + "/metrics/entitlements/{owner}/": { + "get": { + "operationId": "metrics_entitlements_account_list", + "summary": "View for listing entitlement token metrics, across an account.", + "description": "View for listing entitlement token metrics, across an account.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", + "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "The JWT cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "OIDC token cannot be authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["openid"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs": { - "get": { - "operationId": "orgs_list", - "summary": "Get a list of all the organizations you are associated with.", - "description": "Get a list of all the organizations you are associated with.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Organization" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "post": { - "operationId": "orgs_create", - "summary": "Create a new organization.", - "description": "Create a new organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" + "/metrics/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "metrics_entitlements_repo_list", + "summary": "View for listing entitlement token metrics, for a repository.", + "description": "View for listing entitlement token metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.create_orgs()", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [] - }, - "/orgs/{org}": { - "get": { - "operationId": "orgs_read", - "summary": "Get the details for the specific organization.", - "description": "Get the details for the specific organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "delete": { - "operationId": "orgs_delete", - "summary": "Delete the specified organization.", - "description": "Delete the specified organization.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa": { - "get": { - "operationId": "orgs_get_2fa_settings", - "summary": "Retrieve the 2FA settings for the organization.", - "description": "Retrieve the 2FA settings for the organization.", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/enforce": { - "post": { - "operationId": "orgs_2fa_enforce_2fa", - "summary": "Enforce 2FA for the organization.", - "description": "Enforce 2FA for the organization.", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/relax": { - "post": { - "operationId": "orgs_2fa_relax_2fa", - "summary": "Relax 2FA enforcement for the organization.", - "description": "Relax 2FA enforcement for the organization.", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/authentication-policy": { - "get": { - "operationId": "orgs_authentication-policy_read", - "summary": "Retrieve the organization API key policy details.", - "description": "Retrieve the organization API key policy details.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUserTokenPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "post": { - "operationId": "orgs_authentication-policy_create", - "summary": "Create an organization API key policy.", - "description": "Create an organization API key policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUserTokenPolicyRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUserTokenPolicy" + "/metrics/packages/{owner}/{repo}/": { + "get": { + "operationId": "metrics_packages_list", + "summary": "View for listing package usage metrics, for a repository.", + "description": "View for listing package usage metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "packages", + "in": "query", + "description": "A comma seperated list of packages (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for packages.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_authentication-policy_partial_update", - "summary": "Update the organization API key policy.", - "description": "Update the organization API key policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUserTokenPolicyRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUserTokenPolicy" + "/namespaces/": { + "get": { + "operationId": "namespaces_list", + "summary": "Get a list of all namespaces the user belongs to.", + "description": "Get a list of all namespaces the user belongs to.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [] + }, + "/namespaces/{slug}/": { + "get": { + "operationId": "namespaces_read", + "summary": "Get a specific namespace that the user belongs to.", + "description": "Get a specific namespace that the user belongs to.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config": { - "get": { - "operationId": "orgs_broadcasts_config", - "summary": "Retrieve the organization's broadcast config details.", - "description": "Retrieve the organization's broadcast config details.", - "responses": { - "200": { - "description": "Retrieved the organization broadcasts config.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationBroadcastsConfig" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization broadcasts config not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_broadcasts_config(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "orgs_broadcasts_create_config", - "summary": "Create an organization's broadcast config details", - "description": "Create an organization's broadcast config details", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationBroadcastsConfigRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created the organization broadcasts config.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationBroadcastsConfig" + "/openid/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "orgs_broadcasts_update_config", - "summary": "Update the organization's broadcast config details.", - "description": "Update the organization's broadcast config details.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationBroadcastsConfigRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the organization broadcasts config.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationBroadcastsConfig" + "/orgs/": { + "get": { + "operationId": "orgs_list", + "summary": "Get a list of all the organizations you are associated with.", + "description": "Get a list of all the organizations you are associated with.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [] + }, + "/orgs/{org}/": { + "get": { + "operationId": "orgs_read", + "summary": "Get the details for the specific organization.", + "description": "Get the details for the specific organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "delete": { + "operationId": "orgs_delete", + "summary": "Delete the specified organization.", + "description": "Delete the specified organization.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization broadcasts config not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "orgs_broadcasts_delete_config", - "summary": "Delete an organization's broadcast config details", - "description": "Delete an organization's broadcast config details", - "responses": { - "204": { - "description": "Removed organization broadcasts config." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization broadcasts config not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/company-logo": { - "delete": { - "operationId": "orgs_broadcasts_config_delete_company_logo", - "summary": "Delete an organization's company logo from their broadcast config.", - "description": "Delete an organization's company logo from their broadcast config.", - "responses": { - "204": { - "description": "Deleted company logo." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization broadcasts config not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/custom-domains": { - "get": { - "operationId": "orgs_custom-domains_list", - "summary": "Get the details for all custom domains.", - "description": "Get the details for all custom domains.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Custom domains for the organization.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationCustomDomains" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom Domains are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/default-object-privileges": { - "get": { - "operationId": "orgs_default_object_privileges", - "summary": "Retrieve the default object privileges for the organization.", - "description": "Retrieve the default object privileges for the organization.", - "responses": { - "200": { - "description": "Retrieved organization default object privileges.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationDefaultObjectPrivileges" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "put": { - "operationId": "orgs_update_default_object_privileges", - "summary": "Update the default object privileges for the organization.", - "description": "Update the default object privileges for the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationDefaultObjectPrivilegesRequest" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated organization default object privileges.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationDefaultObjectPrivileges" + "/orgs/{org}/2fa/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/delete-org": { - "get": { - "operationId": "orgs_delete_org", - "summary": "Check if the organization can be deleted, if not return the reason(s).", - "description": "Check if the organization can be deleted, if not return the reason(s).", - "responses": { - "200": { - "description": "Check if the organization can be deleted.", - "content": { - "application/json": { - "schema": { - "description": "Check if the organization can be deleted.", - "type": "object", - "properties": { - "deleteable": { - "type": "boolean" - } - } - } - } - } - }, - "400": { - "description": "The organization cannot be deleted.", - "content": { - "application/json": { - "schema": { - "description": "The organization cannot be deleted.", - "type": "object", - "properties": { - "detail": { - "type": "string" - }, - "fields": { - "type": "array", - "items": { + ] + }, + "/orgs/{org}/2fa/enforce/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { "type": "string" - } } - } } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy": { - "get": { - "operationId": "orgs_deny-policy_list", - "summary": "Get a list of all package deny policies.", - "description": "Get a list of all package deny policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_deny-policy_create", - "summary": "Create a package deny policy.", - "description": "Create a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/{slug_perm}": { - "get": { - "operationId": "orgs_deny-policy_read", - "summary": "Get a package deny policy.", - "description": "Get a package deny policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_deny-policy_update", - "summary": "Update a package deny policy.", - "description": "Update a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_deny-policy_partial_update", - "summary": "Partially update a package deny policy.", - "description": "Partially update a package deny policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" + "/orgs/{org}/2fa/relax/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_deny-policy_delete", - "summary": "Delete a package deny policy.", - "description": "Delete a package deny policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/global-privileges": { - "get": { - "operationId": "orgs_global-privileges_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "List of all privileges after update.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGlobalPrivileges" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites": { - "get": { - "operationId": "orgs_invites_list", - "summary": "Get a list of all invites for an organization.", - "description": "Get a list of all invites for an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization invites", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization invites not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_invites_create", - "summary": "Create an organization invite for a specific user", - "description": "Create an organization invite for a specific user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteRequest" - } - } - } + "/orgs/{org}/authentication-policy": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "Invite sent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" + "/orgs/{org}/broadcasts/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The invite cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}": { - "patch": { - "operationId": "orgs_invites_partial_update", - "summary": "Update a specific organization invite.", - "description": "Update a specific organization invite.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Invite updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" + "/orgs/{org}/broadcasts/config/company-logo/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The invite cannot be updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_invites_delete", - "summary": "Delete a specific organization invite", - "description": "Delete a specific organization invite", - "responses": { - "204": { - "description": "Deleted the organization invite successfully." - }, - "400": { - "description": "The organization invite cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/extend": { - "post": { - "operationId": "orgs_invites_extend", - "summary": "Extend an organization invite.", - "description": "Extend an organization invite.", - "responses": { - "200": { - "description": "The invite has been extended", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/custom-domains/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/resend": { - "post": { - "operationId": "orgs_invites_resend", - "summary": "Resend an organization invite.", - "description": "Resend an organization invite.", - "responses": { - "200": { - "description": "The invite has been resent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/default-object-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy-violation": { - "get": { - "operationId": "orgs_license-policy-violation_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" - } + "/orgs/{org}/delete-org/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "title": "PackageLicensePolicyViolationLogCursorPage" } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy": { - "get": { - "operationId": "orgs_license-policy_list", - "summary": "Get a list of all package license policies.", - "description": "Get a list of all package license policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_create", - "summary": "Create a package license policy.", - "description": "Create a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation": { - "get": { - "operationId": "orgs_license-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + "/orgs/{org}/deny-policy/": { + "get": { + "operationId": "orgs_deny-policy_list", + "summary": "Get a list of all package deny policies.", + "description": "Get a list of all package deny policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_deny-policy_create", + "summary": "Create a package deny policy.", + "description": "Create a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}": { - "get": { - "operationId": "orgs_license-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/deny-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_deny-policy_read", + "summary": "Get a package deny policy.", + "description": "Get a package deny policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_deny-policy_update", + "summary": "Update a package deny policy.", + "description": "Update a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_deny-policy_partial_update", + "summary": "Partially update a package deny policy.", + "description": "Partially update a package deny policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_deny-policy_delete", + "summary": "Delete a package deny policy.", + "description": "Delete a package deny policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{slug_perm}": { - "get": { - "operationId": "orgs_license-policy_read", - "summary": "Get a package license policy.", - "description": "Get a package license policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_license-policy_update", - "summary": "Update a package license policy.", - "description": "Update a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_license-policy_partial_update", - "summary": "Partially update a package license policy.", - "description": "Partially update a package license policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" - } - } - } + "/orgs/{org}/feature-flags/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + "/orgs/{org}/feature-flags/check/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_license-policy_delete", - "summary": "Delete a package license policy.", - "description": "Delete a package license policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users": { - "get": { - "operationId": "orgs_get_managed_users_settings", - "summary": "Retrieve the managed users settings for the organization.", - "description": "Retrieve the managed users settings for the organization.", - "responses": { - "200": { - "description": "Retrieved the settings for managed users." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/disable": { - "post": { - "operationId": "orgs_managed-users_disable_managed_users", - "summary": "Disable enforce_managed_users for the organization.", - "description": "Disable enforce_managed_users for the organization.", - "responses": { - "204": { - "description": "Managed users enforcement disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "The organization doesn't have SAML enabled and configured, or feature not available.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/enable": { - "post": { - "operationId": "orgs_managed-users_enable_managed_users", - "summary": "Enable enforce_managed_users for the organization.", - "description": "Enable enforce_managed_users for the organization.", - "responses": { - "204": { - "description": "Managed users enforcement enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "The organization doesn't have SAML enabled and configured, or feature not available.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members": { - "get": { - "operationId": "orgs_members_list", - "summary": "Get the details for all organization members.", - "description": "Get the details for all organization members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "is_active", - "in": "query", - "description": "Filter for active/inactive users.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization's members", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}": { - "get": { - "operationId": "orgs_members_read", - "summary": "Get the details for a specific organization member.", - "description": "Get the details for a specific organization member.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_members_partial_update", - "summary": "Views for working with organization members.", - "description": "Views for working with organization members.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" - } - } - } + "/orgs/{org}/global-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" + "/orgs/{org}/invites/": { + "get": { + "operationId": "orgs_invites_list", + "summary": "Get a list of all invites for an organization.", + "description": "Get a list of all invites for an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization invites", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization invites not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_invites_create", + "summary": "Create an organization invite for a specific user", + "description": "Create an organization invite for a specific user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Invite sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_members_delete", - "summary": "Removes a member from the organization.", - "description": "Removes a member from the organization.", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/refresh": { - "post": { - "operationId": "orgs_members_refresh", - "summary": "Refresh a member of the organization's API key.", - "description": "Refresh a member of the organization's API key.", - "responses": { - "204": { - "description": "Org member API key has been refreshed." - }, - "400": { - "description": "The org member's API key cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org member not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/invites/{slug_perm}/": { + "patch": { + "operationId": "orgs_invites_partial_update", + "summary": "Update a specific organization invite.", + "description": "Update a specific organization invite.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Invite updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_invites_delete", + "summary": "Delete a specific organization invite", + "description": "Delete a specific organization invite", + "responses": { + "204": { + "description": "Deleted the organization invite successfully." + }, + "400": { + "description": "The organization invite cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/remove": { - "get": { - "operationId": "orgs_members_remove", - "summary": "Removes a member from the organization (deprecated, use DELETE instead).", - "description": "Removes a member from the organization (deprecated, use DELETE instead).", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/invites/{slug_perm}/extend/": { + "post": { + "operationId": "orgs_invites_extend", + "summary": "Extend an organization invite.", + "description": "Extend an organization invite.", + "responses": { + "200": { + "description": "The invite has been extended", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-role": { - "patch": { - "operationId": "orgs_members_update_role", - "summary": "Update a member's role in the organization.", - "description": "Update a member's role in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" - } - } - } + "/orgs/{org}/invites/{slug_perm}/resend/": { + "post": { + "operationId": "orgs_invites_resend", + "summary": "Resend an organization invite.", + "description": "Resend an organization invite.", + "responses": { + "200": { + "description": "The invite has been resent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + "/orgs/{org}/license-policy-violation/": { + "get": { + "operationId": "orgs_license-policy-violation_list", + "summary": "List all current license policy violations for this Organization.", + "description": "List all current license policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" + } + } + }, + "title": "PackageLicensePolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-visibility": { - "patch": { - "operationId": "orgs_members_update_visibility", - "summary": "Update a member's visibility in the organization.", - "description": "Update a member's visibility in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" - } - } - } + "/orgs/{org}/license-policy/": { + "get": { + "operationId": "orgs_license-policy_list", + "summary": "Get a list of all package license policies.", + "description": "Get a list of all package license policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_create", + "summary": "Create a package license policy.", + "description": "Create a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_license-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect": { - "get": { - "operationId": "orgs_openid-connect_list", - "summary": "Retrieve the list of OpenID Connect provider settings for the org.", - "description": "Retrieve the list of OpenID Connect provider settings for the org.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_openid-connect_create", - "summary": "Create the OpenID Connect provider settings for the org.", - "description": "Create the OpenID Connect provider settings for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "201": { - "description": "Created the OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/{slug_perm}": { - "get": { - "operationId": "orgs_openid-connect_read", - "summary": "Retrieve a specific OpenID Connect provider setting for the org.", - "description": "Retrieve a specific OpenID Connect provider setting for the org.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_openid-connect_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_openid-connect_partial_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_openid-connect_delete", - "summary": "Delete a specific OpenID Connect provider setting for the org.", - "description": "Delete a specific OpenID Connect provider setting for the org.", - "responses": { - "204": { - "description": "Deleted the specified OpenID Connect provider setting successfully." - }, - "400": { - "description": "The specified OpenID Connect provider setting cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/license": { - "get": { - "operationId": "orgs_policy-violations_license_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying violations. Available options: package, repository, policy (name or slug_perm).", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Available options: event_at, policy_name, package_name.", - "required": false, - "schema": { - "type": "string", - "default": "-event_at" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackagePolicyViolationsLicense" - } + "/orgs/{org}/license-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_read", + "summary": "Get a package license policy.", + "description": "Get a package license policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_license-policy_update", + "summary": "Update a package license policy.", + "description": "Update a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_license-policy_partial_update", + "summary": "Partially update a package license policy.", + "description": "Partially update a package license policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_license-policy_delete", + "summary": "Delete a package license policy.", + "description": "Delete a package license policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/vulnerability": { - "get": { - "operationId": "orgs_policy_violations_vulnerability_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying violations. Available options: package, repository, policy (name or slug_perm).", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "a field for sorting objects in ascending or descending order. available options: event_at, policy_name, package_name.", - "required": false, - "schema": { - "type": "string", - "default": "-event_at" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackagePolicyViolationsVulnerability" - } + ] + }, + "/orgs/{org}/managed-users/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-authentication": { - "get": { - "operationId": "orgs_saml-authentication_read", - "summary": "Retrieve the SAML Authentication settings for this Organization.", - "description": "Retrieve the SAML Authentication settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_saml-authentication_partial_update", - "summary": "Update the SAML Authentication settings for this Organization.", - "description": "Update the SAML Authentication settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" + "/orgs/{org}/managed-users/disable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync": { - "get": { - "operationId": "orgs_saml-group-sync_list", - "summary": "Get the details of all SAML Group Sync mapping within an organization.", - "description": "Get the details of all SAML Group Sync mapping within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of all SAML Group Sync mappings for this org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_saml-group-sync_create", - "summary": "Create a new SAML Group Sync mapping within an organization.", - "description": "Create a new SAML Group Sync mapping within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "The SAML Group Sync mapping was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSync" + "/orgs/{org}/managed-users/enable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/disable": { - "post": { - "operationId": "orgs_saml-group-sync_disable", - "summary": "Disable SAML Group Sync for this organization.", - "description": "Disable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been disabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/enable": { - "post": { - "operationId": "orgs_saml-group-sync_enable", - "summary": "Enable SAML Group Sync for this organization.", - "description": "Enable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been enabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/status": { - "get": { - "operationId": "orgs_saml-group-sync_status", - "summary": "Retrieve the SAML Group Sync status for this organization.", - "description": "Retrieve the SAML Group Sync status for this organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Group Sync status for this organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/{slug_perm}": { - "delete": { - "operationId": "orgs_saml-group-sync_delete", - "summary": "Delete a SAML Group Sync mapping from an organization.", - "description": "Delete a SAML Group Sync mapping from an organization.", - "responses": { - "204": { - "description": "Mapping removed successfully" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml": { - "get": { - "operationId": "orgs_get_saml_redirect_url", - "summary": "Get an organization SAML Redirect URL if it exists and has SAML configured", - "description": "Get an organization SAML Redirect URL if it exists and has SAML configured", - "responses": { - "200": { - "description": "Organization has SAML Enabled. Redirect URL Returned", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": {} - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "SAML Configuration for Organization is invalid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization namespace not found or it doesn't have SAML configured", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "security": [], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": "empty" - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim": { - "get": { - "operationId": "orgs_scim_read", - "summary": "Retrieve the SCIM settings for this Organization.", - "description": "Retrieve the SCIM settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SCIM organization settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSCIM" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SCIM is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_scim_partial_update", - "summary": "Update the SCIM settings for this Organization.", - "description": "Update the SCIM settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSCIMRequestPatch" - } - } - } + "/orgs/{org}/members/": { + "get": { + "operationId": "orgs_members_list", + "summary": "Get the details for all organization members.", + "description": "Get the details for all organization members.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "is_active", + "in": "query", + "description": "Filter for active/inactive users.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", + "required": false, + "schema": { + "type": "string", + "default": "user_name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization's members", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Updated the SCIM organization settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSCIM" + "/orgs/{org}/members/{member}/": { + "get": { + "operationId": "orgs_members_read", + "summary": "Get the details for a specific organization member.", + "description": "Get the details for a specific organization member.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_members_partial_update", + "summary": "Views for working with organization members.", + "description": "Views for working with organization members.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_members_delete", + "summary": "Removes a member from the organization.", + "description": "Removes a member from the organization.", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SCIM is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim/refresh-token": { - "post": { - "operationId": "orgs_scim_refresh", - "summary": "Refresh the SCIM token for the organization.", - "description": "Refresh the SCIM token for the organization.", - "responses": { - "201": { - "description": "The SCIM token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSCIMToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SCIM is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services": { - "get": { - "operationId": "orgs_services_list", - "summary": "Get a list of all services within an organization.", - "description": "Get a list of all services within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of services within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Service" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "orgs_services_create", - "summary": "Create a service within an organization.", - "description": "Create a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequest" - } - } - } + ] }, - "responses": { - "200": { - "description": "Created the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" + "/orgs/{org}/members/{member}/refresh/": { + "post": { + "operationId": "orgs_members_refresh", + "summary": "Refresh a member of the organization's API key.", + "description": "Refresh a member of the organization's API key.", + "responses": { + "204": { + "description": "Org member API key has been refreshed." + }, + "400": { + "description": "The org member's API key cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org member not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}": { - "get": { - "operationId": "orgs_services_read", - "summary": "Retrieve details of a single service within an organization.", - "description": "Retrieve details of a single service within an organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_services_partial_update", - "summary": "Update a service within an organization.", - "description": "Update a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" + "/orgs/{org}/members/{member}/remove/": { + "get": { + "operationId": "orgs_members_remove", + "summary": "Removes a member from the organization (deprecated, use DELETE instead).", + "description": "Removes a member from the organization (deprecated, use DELETE instead).", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_services_delete", - "summary": "Delete a specific service", - "description": "Delete a specific service", - "responses": { - "204": { - "description": "Deleted the service successfully." - }, - "400": { - "description": "The service cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/refresh": { - "post": { - "operationId": "orgs_services_refresh", - "summary": "Refresh service API token.", - "description": "Refresh service API token.", - "responses": { - "200": { - "description": "Refreshed the service token successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "The service token cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/settings": { - "get": { - "operationId": "orgs_settings_read", - "summary": "Retrieve the organization's general settings.", - "description": "Retrieve the organization's general settings.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGeneralSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_settings_partial_update", - "summary": "Update the organization's general settings.", - "description": "Update the organization's general settings.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGeneralSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGeneralSettings" + "/orgs/{org}/members/{member}/update-role/": { + "patch": { + "operationId": "orgs_members_update_role", + "summary": "Update a member's role in the organization.", + "description": "Update a member's role in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/slug": { - "put": { - "operationId": "orgs_slug_update", - "summary": "Update the organization slug.", - "description": "Update the organization slug.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationRenameSlugRequest" - } - } - } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationRenameSlug" + "/orgs/{org}/members/{member}/update-visibility/": { + "patch": { + "operationId": "orgs_members_update_visibility", + "summary": "Update a member's visibility in the organization.", + "description": "Update a member's visibility in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.rename_org(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams": { - "get": { - "operationId": "orgs_teams_list", - "summary": "Get the details of all teams within an organization.", - "description": "Get the details of all teams within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of teams within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_teams_create", - "summary": "Create a team for this organization.", - "description": "Create a team for this organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Team created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" + "/orgs/{org}/openid-connect/": { + "get": { + "operationId": "orgs_openid-connect_list", + "summary": "Retrieve the list of OpenID Connect provider settings for the org.", + "description": "Retrieve the list of OpenID Connect provider settings for the org.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_openid-connect_create", + "summary": "Create the OpenID Connect provider settings for the org.", + "description": "Create the OpenID Connect provider settings for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "201": { + "description": "Created the OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The team cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}": { - "get": { - "operationId": "orgs_teams_read", - "summary": "Get the details of a specific team within an organization.", - "description": "Get the details of a specific team within an organization.", - "responses": { - "200": { - "description": "Retrieved the details of the requested team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_teams_partial_update", - "summary": "Update a specific team in a organization.", - "description": "Update a specific team in a organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" + "/orgs/{org}/openid-connect/{slug_perm}/": { + "get": { + "operationId": "orgs_openid-connect_read", + "summary": "Retrieve a specific OpenID Connect provider setting for the org.", + "description": "Retrieve a specific OpenID Connect provider setting for the org.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_openid-connect_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_openid-connect_partial_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_openid-connect_delete", + "summary": "Delete a specific OpenID Connect provider setting for the org.", + "description": "Delete a specific OpenID Connect provider setting for the org.", + "responses": { + "204": { + "description": "Deleted the specified OpenID Connect provider setting successfully." + }, + "400": { + "description": "The specified OpenID Connect provider setting cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The team cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "orgs_teams_delete", - "summary": "Delete a specific team in a organization.", - "description": "Delete a specific team in a organization.", - "responses": { - "204": { - "description": "Deleted the team successfully." - }, - "400": { - "description": "The team cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members": { - "get": { - "operationId": "orgs_teams_members_list", - "summary": "List all members for the team.", - "description": "List all members for the team.", - "responses": { - "200": { - "description": "Retrieved users for the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "post": { - "operationId": "orgs_teams_members_create", - "summary": "Add users to a team.", - "description": "Add users to a team.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "201": { - "description": "The users were added to the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "orgs_teams_members_update", - "summary": "Replace all team members.", - "description": "Replace all team members.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "204": { - "description": "The team members were replaced.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members/{member}": { - "patch": { - "operationId": "orgs_teams_members_partial_update", - "summary": "View for editing the membership of members of a team.", - "description": "View for editing the membership of members of a team.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationEditTeamMemberRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated role of specified user within the Organization Team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationEditTeamMember" + "/orgs/{org}/policy-violations/license/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Membership not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_membership_role(membership: 'OrganizationTeamMembership')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "delete": { - "operationId": "orgs_teams_members_delete", - "summary": "View for editing the membership of members of a team.", - "description": "View for editing the membership of members of a team.", - "responses": { - "204": { - "description": "Removed member of Organization Team." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Membership not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.delete_org_team_membership(membership: 'OrganizationTeamMembership')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/policy-violations/vulnerability/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/memberships": { - "get": { - "operationId": "orgs_teams_memberships_list", - "summary": "Get a list of team members.", - "description": "Get a list of team members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "sort", - "in": "query", - "description": "A comma-separated string of fields to sort by. Descending order can be expressed by prepending `-` to the field name. For example, 'sort by role ascending, email descending' would be expressed as `role,-email`.", - "required": false, - "schema": { - "type": "string", - "default": "role,user_name" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying users of team memberships. Boolean operators/symbols may be used to construct intricate queries, e.g. `(bart OR lisa) AND simpson`. Omitting boolean operators is interpreted as an implicit `AND`, e.g. `bart simpson`.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMember" - } + "/orgs/{org}/product-features/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/usage-limits": { - "get": { - "operationId": "orgs_retrieve_usage_limits", - "description": "", - "responses": { - "200": { - "description": "Organization usage limits configuration.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "type": "boolean" + "/orgs/{org}/saml-authentication": { + "get": { + "operationId": "orgs_saml-authentication_read", + "summary": "Retrieve the SAML Authentication settings for this Organization.", + "description": "Retrieve the SAML Authentication settings for this Organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } }, - "storage_overage_limit": { - "type": "integer" + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } }, - "bandwidth_overage_limit": { - "type": "integer" + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "orgs_saml-authentication_partial_update", + "summary": "Update the SAML Authentication settings for this Organization.", + "description": "Update the SAML Authentication settings for this Organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "orgs_update_usage_limits", - "description": "", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationUsageUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Organization usage limits configuration updated.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "type": "boolean" + ] + }, + "/orgs/{org}/saml-group-sync/": { + "get": { + "operationId": "orgs_saml-group-sync_list", + "summary": "Get the details of all SAML Group Sync mapping within an organization.", + "description": "Get the details of all SAML Group Sync mapping within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } }, - "storage_overage_limit": { - "type": "integer" + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of all SAML Group Sync mappings for this org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + } }, - "bandwidth_overage_limit": { - "type": "integer" + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_saml-group-sync_create", + "summary": "Create a new SAML Group Sync mapping within an organization.", + "description": "Create a new SAML Group Sync mapping within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The SAML Group Sync mapping was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Invalid input", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy-violation": { - "get": { - "operationId": "orgs_vulnerability-policy-violation_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true + ] + }, + "/orgs/{org}/saml-group-sync/disable/": { + "post": { + "operationId": "orgs_saml-group-sync_disable", + "summary": "Disable SAML Group Sync for this organization.", + "description": "Disable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been disabled for this organization." }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" - } + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" } - }, - "title": "PackageVulnerabilityPolicyViolationLogCursorPage" } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy": { - "get": { - "operationId": "orgs_vulnerability-policy_list", - "summary": "Get a list of all package vulnerability policies.", - "description": "Get a list of all package vulnerability policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_create", - "summary": "Create a package vulnerability policy.", - "description": "Create a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + "/orgs/{org}/saml-group-sync/enable/": { + "post": { + "operationId": "orgs_saml-group-sync_enable", + "summary": "Enable SAML Group Sync for this organization.", + "description": "Enable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been enabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/saml-group-sync/status/": { + "get": { + "operationId": "orgs_saml-group-sync_status", + "summary": "Retrieve the SAML Group Sync status for this organization.", + "description": "Retrieve the SAML Group Sync status for this organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Group Sync status for this organization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/saml-group-sync/{slug_perm}/": { + "delete": { + "operationId": "orgs_saml-group-sync_delete", + "summary": "Delete a SAML Group Sync mapping from an organization.", + "description": "Delete a SAML Group Sync mapping from an organization.", + "responses": { + "204": { + "description": "Mapping removed successfully" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{slug_perm}": { - "get": { - "operationId": "orgs_vulnerability-policy_read", - "summary": "Get a package vulnerability policy.", - "description": "Get a package vulnerability policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_vulnerability-policy_update", - "summary": "Update a package vulnerability policy.", - "description": "Update a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_vulnerability-policy_partial_update", - "summary": "Partially update a package vulnerability policy.", - "description": "Partially update a package vulnerability policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" - } - } - } + "/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + "/orgs/{org}/scim": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_vulnerability-policy_delete", - "summary": "Delete a package vulnerability policy.", - "description": "Delete a package vulnerability policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["orgs"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/docker/{owner}/{repo}/{identifier}": { - "get": { - "operationId": "packages_docker_read", - "summary": "Retrieve additional details about a Docker package.", - "description": "Retrieve additional details about a Docker package.", - "responses": { - "200": { - "description": "Retrieved additional details about the Docker package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageAdditionalDetails" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": true, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/scim/refresh-token": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/services/": { + "get": { + "operationId": "orgs_services_list", + "summary": "Get a list of all services within an organization.", + "description": "Get a list of all services within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of services within an Organization.Available options are: name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", + "required": false, + "schema": { + "type": "string", + "default": "created_at" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of services within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Service" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "orgs_services_create", + "summary": "Create a service within an organization.", + "description": "Create a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Created the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}": { - "get": { - "operationId": "packages_org_list", - "summary": "Get a list of all packages associated with organization.", - "description": "Get a list of all packages associated with organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}": { - "get": { - "operationId": "packages_list", - "summary": "Get a list of all packages associated with repository.", - "description": "Get a list of all packages associated with repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/services/{service}/": { + "get": { + "operationId": "orgs_services_read", + "summary": "Retrieve details of a single service within an organization.", + "description": "Retrieve details of a single service within an organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_services_partial_update", + "summary": "Update a service within an organization.", + "description": "Update a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_services_delete", + "summary": "Delete a specific service", + "description": "Delete a specific service", + "responses": { + "204": { + "description": "Deleted the service successfully." + }, + "400": { + "description": "The service cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/groups": { - "get": { - "operationId": "packages_groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "group_by", - "in": "query", - "description": "Field to group packages by. Available options: name, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of package groups.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageGroup" - } + "/orgs/{org}/services/{service}/refresh/": { + "post": { + "operationId": "orgs_services_refresh", + "summary": "Refresh service API token.", + "description": "Refresh service API token.", + "responses": { + "200": { + "description": "Refreshed the service token successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "The service token cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/alpine": { - "post": { - "operationId": "packages_upload_alpine", - "summary": "Create a new Alpine package", - "description": "Create a new Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/settings": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cargo": { - "post": { - "operationId": "packages_upload_cargo", - "summary": "Create a new Cargo package", - "description": "Create a new Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/slug": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cocoapods": { - "post": { - "operationId": "packages_upload_cocoapods", - "summary": "Create a new CocoaPods package", - "description": "Create a new CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/teams/": { + "get": { + "operationId": "orgs_teams_list", + "summary": "Get the details of all teams within an organization.", + "description": "Get the details of all teams within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "for_user", + "in": "query", + "description": "Filter for teams that you are a member of.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of teams within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_teams_create", + "summary": "Create a team for this organization.", + "description": "Create a team for this organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Team created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/composer": { - "post": { - "operationId": "packages_upload_composer", - "summary": "Create a new Composer package", - "description": "Create a new Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/teams/{team}/": { + "get": { + "operationId": "orgs_teams_read", + "summary": "Get the details of a specific team within an organization.", + "description": "Get the details of a specific team within an organization.", + "responses": { + "200": { + "description": "Retrieved the details of the requested team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_teams_partial_update", + "summary": "Update a specific team in a organization.", + "description": "Update a specific team in a organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "orgs_teams_delete", + "summary": "Delete a specific team in a organization.", + "description": "Delete a specific team in a organization.", + "responses": { + "204": { + "description": "Deleted the team successfully." + }, + "400": { + "description": "The team cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conan": { - "post": { - "operationId": "packages_upload_conan", - "summary": "Create a new Conan package", - "description": "Create a new Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/teams/{team}/members": { + "get": { + "operationId": "orgs_teams_members_list", + "summary": "List all members for the team.", + "description": "List all members for the team.", + "responses": { + "200": { + "description": "Retrieved users for the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "post": { + "operationId": "orgs_teams_members_create", + "summary": "Add users to a team.", + "description": "Add users to a team.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "201": { + "description": "The users were added to the team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "orgs_teams_members_update", + "summary": "Replace all team members.", + "description": "Replace all team members.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "204": { + "description": "The team members were replaced.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conda": { - "post": { - "operationId": "packages_upload_conda", - "summary": "Create a new Conda package", - "description": "Create a new Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cran": { - "post": { - "operationId": "packages_upload_cran", - "summary": "Create a new CRAN package", - "description": "Create a new CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/teams/{team}/members/{member}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/dart": { - "post": { - "operationId": "packages_upload_dart", - "summary": "Create a new Dart package", - "description": "Create a new Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/teams/{team}/memberships/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/deb": { - "post": { - "operationId": "packages_upload_deb", - "summary": "Create a new Debian package", - "description": "Create a new Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/usage-limits/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/docker": { - "post": { - "operationId": "packages_upload_docker", - "summary": "Create a new Docker package", - "description": "Create a new Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/vulnerability-policy-violation/": { + "get": { + "operationId": "orgs_vulnerability-policy-violation_list", + "summary": "List all current vulnerability policy violations for this Organization.", + "description": "List all current vulnerability policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" + } + } + }, + "title": "PackageVulnerabilityPolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/go": { - "post": { - "operationId": "packages_upload_go", - "summary": "Create a new Go package", - "description": "Create a new Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/vulnerability-policy/": { + "get": { + "operationId": "orgs_vulnerability-policy_list", + "summary": "Get a list of all package vulnerability policies.", + "description": "Get a list of all package vulnerability policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_create", + "summary": "Create a package vulnerability policy.", + "description": "Create a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/helm": { - "post": { - "operationId": "packages_upload_helm", - "summary": "Create a new Helm package", - "description": "Create a new Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/hex": { - "post": { - "operationId": "packages_upload_hex", - "summary": "Create a new Hex package", - "description": "Create a new Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/luarocks": { - "post": { - "operationId": "packages_upload_luarocks", - "summary": "Create a new LuaRocks package", - "description": "Create a new LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/orgs/{org}/vulnerability-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_read", + "summary": "Get a package vulnerability policy.", + "description": "Get a package vulnerability policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_vulnerability-policy_update", + "summary": "Update a package vulnerability policy.", + "description": "Update a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_vulnerability-policy_partial_update", + "summary": "Partially update a package vulnerability policy.", + "description": "Partially update a package vulnerability policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_vulnerability-policy_delete", + "summary": "Delete a package vulnerability policy.", + "description": "Delete a package vulnerability policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/maven": { - "post": { - "operationId": "packages_upload_maven", - "summary": "Create a new Maven package", - "description": "Create a new Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/docker/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/npm": { - "post": { - "operationId": "packages_upload_npm", - "summary": "Create a new npm package", - "description": "Create a new npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/maven/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/nuget": { - "post": { - "operationId": "packages_upload_nuget", - "summary": "Create a new NuGet package", - "description": "Create a new NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/p2": { - "post": { - "operationId": "packages_upload_p2", - "summary": "Create a new P2 package", - "description": "Create a new P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/": { + "get": { + "operationId": "packages_list", + "summary": "Get a list of all packages associated with repository.", + "description": "Get a list of all packages associated with repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "-date" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of packages", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/python": { - "post": { - "operationId": "packages_upload_python", - "summary": "Create a new Python package", - "description": "Create a new Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/groups/": { + "get": { + "operationId": "packages_groups_list", + "summary": "Return a list of Package Groups in a repository.", + "description": "Return a list of Package Groups in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "group_by", + "in": "query", + "description": "A field to group packages by. Available options: name, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of package groups.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageGroup" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/raw": { - "post": { - "operationId": "packages_upload_raw", - "summary": "Create a new Raw package", - "description": "Create a new Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/alpine/": { + "post": { + "operationId": "packages_upload_alpine", + "summary": "Create a new Alpine package", + "description": "Create a new Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/rpm": { - "post": { - "operationId": "packages_upload_rpm", - "summary": "Create a new RedHat package", - "description": "Create a new RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/cargo/": { + "post": { + "operationId": "packages_upload_cargo", + "summary": "Create a new Cargo package", + "description": "Create a new Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/ruby": { - "post": { - "operationId": "packages_upload_ruby", - "summary": "Create a new Ruby package", - "description": "Create a new Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/cocoapods/": { + "post": { + "operationId": "packages_upload_cocoapods", + "summary": "Create a new CocoaPods package", + "description": "Create a new CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/swift": { - "post": { - "operationId": "packages_upload_swift", - "summary": "Create a new Swift package", - "description": "Create a new Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/composer/": { + "post": { + "operationId": "packages_upload_composer", + "summary": "Create a new Composer package", + "description": "Create a new Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/terraform": { - "post": { - "operationId": "packages_upload_terraform", - "summary": "Create a new Terraform package", - "description": "Create a new Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/conan/": { + "post": { + "operationId": "packages_upload_conan", + "summary": "Create a new Conan package", + "description": "Create a new Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/vagrant": { - "post": { - "operationId": "packages_upload_vagrant", - "summary": "Create a new Vagrant package", - "description": "Create a new Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/conda/": { + "post": { + "operationId": "packages_upload_conda", + "summary": "Create a new Conda package", + "description": "Create a new Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/alpine": { - "post": { - "operationId": "packages_validate-upload_alpine", - "summary": "Validate parameters for create Alpine package", - "description": "Validate parameters for create Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/cran/": { + "post": { + "operationId": "packages_upload_cran", + "summary": "Create a new CRAN package", + "description": "Create a new CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cargo": { - "post": { - "operationId": "packages_validate-upload_cargo", - "summary": "Validate parameters for create Cargo package", - "description": "Validate parameters for create Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/dart/": { + "post": { + "operationId": "packages_upload_dart", + "summary": "Create a new Dart package", + "description": "Create a new Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cocoapods": { - "post": { - "operationId": "packages_validate-upload_cocoapods", - "summary": "Validate parameters for create CocoaPods package", - "description": "Validate parameters for create CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/deb/": { + "post": { + "operationId": "packages_upload_deb", + "summary": "Create a new Debian package", + "description": "Create a new Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/composer": { - "post": { - "operationId": "packages_validate-upload_composer", - "summary": "Validate parameters for create Composer package", - "description": "Validate parameters for create Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/docker/": { + "post": { + "operationId": "packages_upload_docker", + "summary": "Create a new Docker package", + "description": "Create a new Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conan": { - "post": { - "operationId": "packages_validate-upload_conan", - "summary": "Validate parameters for create Conan package", - "description": "Validate parameters for create Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/go/": { + "post": { + "operationId": "packages_upload_go", + "summary": "Create a new Go package", + "description": "Create a new Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conda": { - "post": { - "operationId": "packages_validate-upload_conda", - "summary": "Validate parameters for create Conda package", - "description": "Validate parameters for create Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/helm/": { + "post": { + "operationId": "packages_upload_helm", + "summary": "Create a new Helm package", + "description": "Create a new Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cran": { - "post": { - "operationId": "packages_validate-upload_cran", - "summary": "Validate parameters for create CRAN package", - "description": "Validate parameters for create CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/hex/": { + "post": { + "operationId": "packages_upload_hex", + "summary": "Create a new Hex package", + "description": "Create a new Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/dart": { - "post": { - "operationId": "packages_validate-upload_dart", - "summary": "Validate parameters for create Dart package", - "description": "Validate parameters for create Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/luarocks/": { + "post": { + "operationId": "packages_upload_luarocks", + "summary": "Create a new LuaRocks package", + "description": "Create a new LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/deb": { - "post": { - "operationId": "packages_validate-upload_deb", - "summary": "Validate parameters for create Debian package", - "description": "Validate parameters for create Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/maven/": { + "post": { + "operationId": "packages_upload_maven", + "summary": "Create a new Maven package", + "description": "Create a new Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/docker": { - "post": { - "operationId": "packages_validate-upload_docker", - "summary": "Validate parameters for create Docker package", - "description": "Validate parameters for create Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/npm/": { + "post": { + "operationId": "packages_upload_npm", + "summary": "Create a new npm package", + "description": "Create a new npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/go": { - "post": { - "operationId": "packages_validate-upload_go", - "summary": "Validate parameters for create Go package", - "description": "Validate parameters for create Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/nuget/": { + "post": { + "operationId": "packages_upload_nuget", + "summary": "Create a new NuGet package", + "description": "Create a new NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/helm": { - "post": { - "operationId": "packages_validate-upload_helm", - "summary": "Validate parameters for create Helm package", - "description": "Validate parameters for create Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/p2/": { + "post": { + "operationId": "packages_upload_p2", + "summary": "Create a new P2 package", + "description": "Create a new P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/hex": { - "post": { - "operationId": "packages_validate-upload_hex", - "summary": "Validate parameters for create Hex package", - "description": "Validate parameters for create Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/python/": { + "post": { + "operationId": "packages_upload_python", + "summary": "Create a new Python package", + "description": "Create a new Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/luarocks": { - "post": { - "operationId": "packages_validate-upload_luarocks", - "summary": "Validate parameters for create LuaRocks package", - "description": "Validate parameters for create LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/raw/": { + "post": { + "operationId": "packages_upload_raw", + "summary": "Create a new Raw package", + "description": "Create a new Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/maven": { - "post": { - "operationId": "packages_validate-upload_maven", - "summary": "Validate parameters for create Maven package", - "description": "Validate parameters for create Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/rpm/": { + "post": { + "operationId": "packages_upload_rpm", + "summary": "Create a new RedHat package", + "description": "Create a new RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/npm": { - "post": { - "operationId": "packages_validate-upload_npm", - "summary": "Validate parameters for create npm package", - "description": "Validate parameters for create npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/ruby/": { + "post": { + "operationId": "packages_upload_ruby", + "summary": "Create a new Ruby package", + "description": "Create a new Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/nuget": { - "post": { - "operationId": "packages_validate-upload_nuget", - "summary": "Validate parameters for create NuGet package", - "description": "Validate parameters for create NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/swift/": { + "post": { + "operationId": "packages_upload_swift", + "summary": "Create a new Swift package", + "description": "Create a new Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/p2": { - "post": { - "operationId": "packages_validate-upload_p2", - "summary": "Validate parameters for create P2 package", - "description": "Validate parameters for create P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/terraform/": { + "post": { + "operationId": "packages_upload_terraform", + "summary": "Create a new Terraform package", + "description": "Create a new Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/python": { - "post": { - "operationId": "packages_validate-upload_python", - "summary": "Validate parameters for create Python package", - "description": "Validate parameters for create Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/upload/vagrant/": { + "post": { + "operationId": "packages_upload_vagrant", + "summary": "Create a new Vagrant package", + "description": "Create a new Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/raw": { - "post": { - "operationId": "packages_validate-upload_raw", - "summary": "Validate parameters for create Raw package", - "description": "Validate parameters for create Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/alpine/": { + "post": { + "operationId": "packages_validate-upload_alpine", + "summary": "Validate parameters for create Alpine package", + "description": "Validate parameters for create Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/rpm": { - "post": { - "operationId": "packages_validate-upload_rpm", - "summary": "Validate parameters for create RedHat package", - "description": "Validate parameters for create RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/cargo/": { + "post": { + "operationId": "packages_validate-upload_cargo", + "summary": "Validate parameters for create Cargo package", + "description": "Validate parameters for create Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/ruby": { - "post": { - "operationId": "packages_validate-upload_ruby", - "summary": "Validate parameters for create Ruby package", - "description": "Validate parameters for create Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/cocoapods/": { + "post": { + "operationId": "packages_validate-upload_cocoapods", + "summary": "Validate parameters for create CocoaPods package", + "description": "Validate parameters for create CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/swift": { - "post": { - "operationId": "packages_validate-upload_swift", - "summary": "Validate parameters for create Swift package", - "description": "Validate parameters for create Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/terraform": { - "post": { - "operationId": "packages_validate-upload_terraform", - "summary": "Validate parameters for create Terraform package", - "description": "Validate parameters for create Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/composer/": { + "post": { + "operationId": "packages_validate-upload_composer", + "summary": "Validate parameters for create Composer package", + "description": "Validate parameters for create Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/vagrant": { - "post": { - "operationId": "packages_validate-upload_vagrant", - "summary": "Validate parameters for create Vagrant package", - "description": "Validate parameters for create Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/conan/": { + "post": { + "operationId": "packages_validate-upload_conan", + "summary": "Validate parameters for create Conan package", + "description": "Validate parameters for create Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}": { - "get": { - "operationId": "packages_read", - "summary": "Get a specific package in a repository.", - "description": "Get a specific package in a repository.", - "responses": { - "200": { - "description": "Retrieved the specified package successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "delete": { - "operationId": "packages_delete", - "summary": "Delete a specific package in a repository.", - "description": "Delete a specific package in a repository.", - "responses": { - "204": { - "description": "Deleted the specified package successfully." - }, - "400": { - "description": "The package cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/conda/": { + "post": { + "operationId": "packages_validate-upload_conda", + "summary": "Validate parameters for create Conda package", + "description": "Validate parameters for create Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/cran/": { + "post": { + "operationId": "packages_validate-upload_cran", + "summary": "Validate parameters for create CRAN package", + "description": "Validate parameters for create CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/copy": { - "post": { - "operationId": "packages_copy", - "summary": "Copy a package to another repository.", - "description": "Copy a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopyRequest" - } - } - } + "/packages/{owner}/{repo}/validate-upload/dart/": { + "post": { + "operationId": "packages_validate-upload_dart", + "summary": "Validate parameters for create Dart package", + "description": "Validate parameters for create Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Copied specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopy" + "/packages/{owner}/{repo}/validate-upload/deb/": { + "post": { + "operationId": "packages_validate-upload_deb", + "summary": "Validate parameters for create Debian package", + "description": "Validate parameters for create Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/docker/": { + "post": { + "operationId": "packages_validate-upload_docker", + "summary": "Validate parameters for create Docker package", + "description": "Validate parameters for create Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/dependencies": { - "get": { - "operationId": "packages_dependencies", - "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "responses": { - "200": { - "description": "Retrieved stored dependencies for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDependencies" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/go/": { + "post": { + "operationId": "packages_validate-upload_go", + "summary": "Validate parameters for create Go package", + "description": "Validate parameters for create Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/helm/": { + "post": { + "operationId": "packages_validate-upload_helm", + "summary": "Validate parameters for create Helm package", + "description": "Validate parameters for create Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/move": { - "post": { - "operationId": "packages_move", - "summary": "Move a package to another repository.", - "description": "Move a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMoveRequest" - } - } - } + "/packages/{owner}/{repo}/validate-upload/hex/": { + "post": { + "operationId": "packages_validate-upload_hex", + "summary": "Validate parameters for create Hex package", + "description": "Validate parameters for create Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Moved specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMove" + "/packages/{owner}/{repo}/validate-upload/luarocks/": { + "post": { + "operationId": "packages_validate-upload_luarocks", + "summary": "Validate parameters for create LuaRocks package", + "description": "Validate parameters for create LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/maven/": { + "post": { + "operationId": "packages_validate-upload_maven", + "summary": "Validate parameters for create Maven package", + "description": "Validate parameters for create Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/quarantine": { - "post": { - "operationId": "packages_quarantine", - "summary": "Quarantine or release a package.", - "description": "Quarantine or release a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantineRequest" - } - } - } + "/packages/{owner}/{repo}/validate-upload/npm/": { + "post": { + "operationId": "packages_validate-upload_npm", + "summary": "Validate parameters for create npm package", + "description": "Validate parameters for create npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Changed the package's quarantine status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantine" + "/packages/{owner}/{repo}/validate-upload/nuget/": { + "post": { + "operationId": "packages_validate-upload_nuget", + "summary": "Validate parameters for create NuGet package", + "description": "Validate parameters for create NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/p2/": { + "post": { + "operationId": "packages_validate-upload_p2", + "summary": "Validate parameters for create P2 package", + "description": "Validate parameters for create P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/resync": { - "post": { - "operationId": "packages_resync", - "summary": "Schedule a package for resynchronisation.", - "description": "Schedule a package for resynchronisation.", - "responses": { - "200": { - "description": "Scheduled the package for resynchronisation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageResync" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/python/": { + "post": { + "operationId": "packages_validate-upload_python", + "summary": "Validate parameters for create Python package", + "description": "Validate parameters for create Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/validate-upload/raw/": { + "post": { + "operationId": "packages_validate-upload_raw", + "summary": "Validate parameters for create Raw package", + "description": "Validate parameters for create Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/scan": { - "post": { - "operationId": "packages_scan", - "summary": "Schedule a package for scanning.", - "description": "Schedule a package for scanning.", - "responses": { - "200": { - "description": "Scheduled the package for scanning.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/status": { - "get": { - "operationId": "packages_status", - "summary": "Get the synchronization status for a package.", - "description": "Get the synchronization status for a package.", - "responses": { - "200": { - "description": "Retrieved status for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/tag": { - "post": { - "operationId": "packages_tag", - "summary": "Add/Replace/Remove tags for a package.", - "description": "Add/Replace/Remove tags for a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageTagRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Modified tags for the package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" + "/packages/{owner}/{repo}/validate-upload/rpm/": { + "post": { + "operationId": "packages_validate-upload_rpm", + "summary": "Validate parameters for create RedHat package", + "description": "Validate parameters for create RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["packages"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/history/{owner}": { - "get": { - "operationId": "quota_history_read", - "summary": "Quota history for a given namespace.", - "description": "Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["quota"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/history/{owner}": { - "get": { - "operationId": "quota_oss_history_read", - "summary": "Open-source Quota history for a given namespace.", - "description": "Open-source Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["quota"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/{owner}": { - "get": { - "operationId": "quota_oss_read", - "summary": "Open-source Quota usage for a given namespace.", - "description": "Open-source Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["quota"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/{owner}": { - "get": { - "operationId": "quota_read", - "summary": "Quota usage for a given namespace.", - "description": "Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["quota"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/rates/limits": { - "get": { - "operationId": "rates_limits_list", - "summary": "Endpoint to check rate limits for current user.", - "description": "Endpoint to check rate limits for current user.", - "responses": { - "200": { - "description": "Rate check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcesRateCheck" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["rates"], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["AllowAny"] - }, - "parameters": [] - }, - "/repos": { - "get": { - "operationId": "repos_user_list", - "summary": "Get a list of all repositories associated with current user.", - "description": "Get a list of all repositories associated with current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/repos/{owner}": { - "get": { - "operationId": "repos_namespace_list", - "summary": "Get a list of all repositories within a namespace.", - "description": "Get a list of all repositories within a namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_create", - "summary": "Create a new repository in a given namespace.", - "description": "Create a new repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreateRequest" - } - } - } + "/packages/{owner}/{repo}/validate-upload/ruby/": { + "post": { + "operationId": "packages_validate-upload_ruby", + "summary": "Validate parameters for create Ruby package", + "description": "Validate parameters for create Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "The repository was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreate" + "/packages/{owner}/{repo}/validate-upload/swift/": { + "post": { + "operationId": "packages_validate-upload_swift", + "summary": "Validate parameters for create Swift package", + "description": "Validate parameters for create Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}": { - "get": { - "operationId": "repos_read", - "summary": "Get a specific repository.", - "description": "Get a specific repository.", - "responses": { - "200": { - "description": "Retrieved the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_partial_update", - "summary": "Update details about a repository in a given namespace.", - "description": "Update details about a repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "The repository was updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" + "/packages/{owner}/{repo}/validate-upload/terraform/": { + "post": { + "operationId": "packages_validate-upload_terraform", + "summary": "Validate parameters for create Terraform package", + "description": "Validate parameters for create Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "repos_delete", - "summary": "Delete a repository in a given namespace.", - "description": "Delete a repository in a given namespace.", - "responses": { - "200": { - "description": "The repository has been scheduled for deletion." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa": { - "get": { - "operationId": "repos_ecdsa_list", - "summary": "Retrieve the active ECDSA key for the Repository.", - "description": "Retrieve the active ECDSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" - }, - "post": { - "operationId": "repos_ecdsa_create", - "summary": "Set the active ECDSA key for the Repository.", - "description": "Set the active ECDSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" - } - } - } + "/packages/{owner}/{repo}/validate-upload/vagrant/": { + "post": { + "operationId": "packages_validate-upload_vagrant", + "summary": "Validate parameters for create Vagrant package", + "description": "Validate parameters for create Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "The provided ECDSA key is the same as the current ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" + "/packages/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "packages_read", + "summary": "Get a specific package in a repository.", + "description": "Get a specific package in a repository.", + "responses": { + "200": { + "description": "Retrieved the specified package successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "delete": { + "operationId": "packages_delete", + "summary": "Delete a specific package in a repository.", + "description": "Delete a specific package in a repository.", + "responses": { + "204": { + "description": "Deleted the specified package successfully." + }, + "400": { + "description": "The package cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "201": { - "description": "The provided ECDSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "The provided ECDSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom ECDSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/regenerate": { - "post": { - "operationId": "repos_ecdsa_regenerate", - "summary": "Regenerate ECDSA Key for the Repository.", - "description": "Regenerate ECDSA Key for the Repository.", - "responses": { - "200": { - "description": "An ECDSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/{identifier}/copy/": { + "post": { + "operationId": "packages_copy", + "summary": "Copy a package to another repository.", + "description": "Copy a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Copied specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopy" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip": { - "get": { - "operationId": "repos_geoip_read", - "summary": "List all repository geoip rules.", - "description": "List all repository geoip rules.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_geoip_update", - "summary": "Replace repository geoip rules.", - "description": "Replace repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" - } - } - } + "/packages/{owner}/{repo}/{identifier}/dependencies/": { + "get": { + "operationId": "packages_dependencies", + "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "responses": { + "200": { + "description": "Retrieved stored dependencies for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDependencies" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" + "/packages/{owner}/{repo}/{identifier}/move/": { + "post": { + "operationId": "packages_move", + "summary": "Move a package to another repository.", + "description": "Move a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMoveRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Moved specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMove" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_geoip_partial_update", - "summary": "Partially update repository geoip rules.", - "description": "Partially update repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" + "/packages/{owner}/{repo}/{identifier}/quarantine/": { + "post": { + "operationId": "packages_quarantine", + "summary": "Quarantine or release a package.", + "description": "Quarantine or release a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantineRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Changed the package's quarantine status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantine" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/disable": { - "post": { - "operationId": "repos_geoip_disable", - "summary": "Disable GeoIP for this repository.", - "description": "Disable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been disabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/{identifier}/resync/": { + "post": { + "operationId": "packages_resync", + "summary": "Schedule a package for resynchronisation.", + "description": "Schedule a package for resynchronisation.", + "responses": { + "200": { + "description": "Scheduled the package for resynchronisation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResync" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/enable": { - "post": { - "operationId": "repos_geoip_enable", - "summary": "Enable GeoIP for this repository.", - "description": "Enable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been enabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/{identifier}/scan/": { + "post": { + "operationId": "packages_scan", + "summary": "Schedule a package for scanning.", + "description": "Schedule a package for scanning.", + "responses": { + "200": { + "description": "Scheduled the package for scanning.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/status": { - "get": { - "operationId": "api_repos_geoip_status", - "summary": "Retrieve the GeoIP status for this repository.", - "description": "Retrieve the GeoIP status for this repository.", - "responses": { - "200": { - "description": "Retrieved the GeoIP status for this repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/packages/{owner}/{repo}/{identifier}/status/": { + "get": { + "operationId": "packages_status", + "summary": "Get the synchronization status for a package.", + "description": "Get the synchronization status for a package.", + "responses": { + "200": { + "description": "Retrieved status for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/test": { - "post": { - "operationId": "repos_geoip_test", - "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", - "description": "Test a list of IP addresses against the repository's current GeoIP rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" - } - } - } + "/packages/{owner}/{repo}/{identifier}/tag/": { + "post": { + "operationId": "packages_tag", + "summary": "Add/Replace/Remove tags for a package.", + "description": "Add/Replace/Remove tags for a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageTagRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Modified tags for the package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "Successfuly tested addresses against the repository's GeoIP rules", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + "/quota/history/{owner}/": { + "get": { + "operationId": "quota_history_read", + "summary": "Quota history for a given namespace.", + "description": "Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg": { - "get": { - "operationId": "repos_gpg_list", - "summary": "Retrieve the active GPG key for the Repository.", - "description": "Retrieve the active GPG key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_gpg_create", - "summary": "Set the active GPG key for the Repository.", - "description": "Set the active GPG key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKeyCreate" - } - } - } + "/quota/oss/history/{owner}/": { + "get": { + "operationId": "quota_oss_history_read", + "summary": "Open-source Quota history for a given namespace.", + "description": "Open-source Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "The provided GPG key is the same as the current GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" + "/quota/oss/{owner}/": { + "get": { + "operationId": "quota_oss_read", + "summary": "Open-source Quota usage for a given namespace.", + "description": "Open-source Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "201": { - "description": "The provided GPG key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "The provided GPG key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom GPG keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organizaition/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/regenerate": { - "post": { - "operationId": "repos_gpg_regenerate", - "summary": "Regenerate GPG Key for the Repository.", - "description": "Regenerate GPG Key for the Repository.", - "responses": { - "200": { - "description": "A GPG key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/quota/{owner}/": { + "get": { + "operationId": "quota_read", + "summary": "Quota usage for a given namespace.", + "description": "Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/privileges": { - "get": { - "operationId": "repos_privileges_list", - "summary": "List all explicity created privileges for the repository.", - "description": "List all explicity created privileges for the repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved privileges for the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInput" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_privileges_update", - "summary": "Replace all existing repository privileges with those specified.", - "description": "Replace all existing repository privileges with those specified.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges replaced" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_privileges_partial_update", - "summary": "Modify privileges for the repository.", - "description": "Modify privileges for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges updated" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/rates/limits/": { + "get": { + "operationId": "rates_limits_list", + "summary": "Endpoint to check rate limits for current user.", + "description": "Endpoint to check rate limits for current user.", + "responses": { + "200": { + "description": "Rate check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResourcesRateCheck" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "rates" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/repos/": { + "get": { + "operationId": "repos_user_list", + "summary": "Get a list of all repositories associated with current user.", + "description": "Get a list of all repositories associated with current user.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/repos/{owner}/": { + "get": { + "operationId": "repos_namespace_list", + "summary": "Get a list of all repositories within a namespace.", + "description": "Get a list of all repositories within a namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_create", + "summary": "Create a new repository in a given namespace.", + "description": "Create a new repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreateRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The repository was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa": { - "get": { - "operationId": "repos_rsa_list", - "summary": "Retrieve the active RSA key for the Repository.", - "description": "Retrieve the active RSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_rsa_create", - "summary": "Set the active RSA key for the Repository.", - "description": "Set the active RSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKeyCreate" - } - } - } + "/repos/{owner}/{identifier}/": { + "get": { + "operationId": "repos_read", + "summary": "Get a specific repository.", + "description": "Get a specific repository.", + "responses": { + "200": { + "description": "Retrieved the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_partial_update", + "summary": "Update details about a repository in a given namespace.", + "description": "Update details about a repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "The repository was updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "repos_delete", + "summary": "Delete a repository in a given namespace.", + "description": "Delete a repository in a given namespace.", + "responses": { + "200": { + "description": "The repository has been scheduled for deletion." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "The provided RSA key is the same as the current RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" + "/repos/{owner}/{identifier}/ecdsa/": { + "get": { + "operationId": "repos_ecdsa_list", + "summary": "Retrieve the active ECDSA key for the Repository.", + "description": "Retrieve the active ECDSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" + }, + "post": { + "operationId": "repos_ecdsa_create", + "summary": "Set the active ECDSA key for the Repository.", + "description": "Set the active ECDSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided ECDSA key is the same as the current ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "201": { + "description": "The provided ECDSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "The provided ECDSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom ECDSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "201": { - "description": "The provided RSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "The provided RSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom RSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/regenerate": { - "post": { - "operationId": "repos_rsa_regenerate", - "summary": "Regenerate RSA Key for the Repository.", - "description": "Regenerate RSA Key for the Repository.", - "responses": { - "200": { - "description": "An RSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/ecdsa/regenerate/": { + "post": { + "operationId": "repos_ecdsa_regenerate", + "summary": "Regenerate ECDSA Key for the Repository.", + "description": "Regenerate ECDSA Key for the Repository.", + "responses": { + "200": { + "description": "An ECDSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer": { - "get": { - "operationId": "repos_upstream_composer_list", - "summary": "List Composer upstream configs for this repository.", - "description": "List Composer upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_composer_create", - "summary": "Create a Composer upstream config for this repository.", - "description": "Create a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}": { - "get": { - "operationId": "repos_upstream_composer_read", - "summary": "Retrieve a Composer upstream config for this repository.", - "description": "Retrieve a Composer upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_composer_update", - "summary": "Update a Composer upstream config for this repository.", - "description": "Update a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_composer_partial_update", - "summary": "Partially update a Composer upstream config for this repository.", - "description": "Partially update a Composer upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/geoip": { + "get": { + "operationId": "repos_geoip_read", + "summary": "List all repository geoip rules.", + "description": "List all repository geoip rules.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_geoip_update", + "summary": "Replace repository geoip rules.", + "description": "Replace repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_geoip_partial_update", + "summary": "Partially update repository geoip rules.", + "description": "Partially update repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" + "/repos/{owner}/{identifier}/geoip/disable/": { + "post": { + "operationId": "repos_geoip_disable", + "summary": "Disable GeoIP for this repository.", + "description": "Disable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been disabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_composer_delete", - "summary": "Delete a Composer upstream config for this repository.", - "description": "Delete a Composer upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/geoip/enable/": { + "post": { + "operationId": "repos_geoip_enable", + "summary": "Enable GeoIP for this repository.", + "description": "Enable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been enabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran": { - "get": { - "operationId": "repos_upstream_cran_list", - "summary": "List CRAN upstream configs for this repository.", - "description": "List CRAN upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cran_create", - "summary": "Create a CRAN upstream config for this repository.", - "description": "Create a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/geoip/status/": { + "get": { + "operationId": "api_repos_geoip_status", + "summary": "Retrieve the GeoIP status for this repository.", + "description": "Retrieve the GeoIP status for this repository.", + "responses": { + "200": { + "description": "Retrieved the GeoIP status for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}": { - "get": { - "operationId": "repos_upstream_cran_read", - "summary": "Retrieve a CRAN upstream config for this repository.", - "description": "Retrieve a CRAN upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cran_update", - "summary": "Update a CRAN upstream config for this repository.", - "description": "Update a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cran_partial_update", - "summary": "Partially update a CRAN upstream config for this repository.", - "description": "Partially update a CRAN upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/geoip/test/": { + "post": { + "operationId": "repos_geoip_test", + "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", + "description": "Test a list of IP addresses against the repository's current GeoIP rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" + } + } + } + }, + "responses": { + "201": { + "description": "Successfuly tested addresses against the repository's GeoIP rules", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" + "/repos/{owner}/{identifier}/gpg/": { + "get": { + "operationId": "repos_gpg_list", + "summary": "Retrieve the active GPG key for the Repository.", + "description": "Retrieve the active GPG key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_gpg_create", + "summary": "Set the active GPG key for the Repository.", + "description": "Set the active GPG key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided GPG key is the same as the current GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "201": { + "description": "The provided GPG key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "The provided GPG key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom GPG keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cran_delete", - "summary": "Delete a CRAN upstream config for this repository.", - "description": "Delete a CRAN upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/gpg/regenerate/": { + "post": { + "operationId": "repos_gpg_regenerate", + "summary": "Regenerate GPG Key for the Repository.", + "description": "Regenerate GPG Key for the Repository.", + "responses": { + "200": { + "description": "A GPG key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart": { - "get": { - "operationId": "repos_upstream_dart_list", - "summary": "List Dart upstream configs for this repository.", - "description": "List Dart upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_dart_create", - "summary": "Create a Dart upstream config for this repository.", - "description": "Create a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/privileges": { + "get": { + "operationId": "repos_privileges_list", + "summary": "List all explicity created privileges for the repository.", + "description": "List all explicity created privileges for the repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved privileges for the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInput" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_privileges_update", + "summary": "Replace all existing repository privileges with those specified.", + "description": "Replace all existing repository privileges with those specified.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges replaced" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_privileges_partial_update", + "summary": "Modify privileges for the repository.", + "description": "Modify privileges for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges updated" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}": { - "get": { - "operationId": "repos_upstream_dart_read", - "summary": "Retrieve a Dart upstream config for this repository.", - "description": "Retrieve a Dart upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_dart_update", - "summary": "Update a Dart upstream config for this repository.", - "description": "Update a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_dart_partial_update", - "summary": "Partially update a Dart upstream config for this repository.", - "description": "Partially update a Dart upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/rsa/": { + "get": { + "operationId": "repos_rsa_list", + "summary": "Retrieve the active RSA key for the Repository.", + "description": "Retrieve the active RSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_rsa_create", + "summary": "Set the active RSA key for the Repository.", + "description": "Set the active RSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided RSA key is the same as the current RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "201": { + "description": "The provided RSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "The provided RSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom RSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" + "/repos/{owner}/{identifier}/rsa/regenerate/": { + "post": { + "operationId": "repos_rsa_regenerate", + "summary": "Regenerate RSA Key for the Repository.", + "description": "Regenerate RSA Key for the Repository.", + "responses": { + "200": { + "description": "An RSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_dart_delete", - "summary": "Delete a Dart upstream config for this repository.", - "description": "Delete a Dart upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/cargo/": { + "get": { + "operationId": "repos_upstream_cargo_list", + "summary": "List Cargo upstream configs for this repository.", + "description": "List Cargo upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cargo_create", + "summary": "Create a Cargo upstream config for this repository.", + "description": "Create a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb": { - "get": { - "operationId": "repos_upstream_deb_list", - "summary": "List Debian upstream configs for this repository.", - "description": "List Debian upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_deb_create", - "summary": "Create a Debian upstream config for this repository.", - "description": "Create a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}": { - "get": { - "operationId": "repos_upstream_deb_read", - "summary": "Retrieve a Debian upstream config for this repository.", - "description": "Retrieve a Debian upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_deb_update", - "summary": "Update a Debian upstream config for this repository.", - "description": "Update a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_deb_partial_update", - "summary": "Partially update a Debian upstream config for this repository.", - "description": "Partially update a Debian upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cargo_read", + "summary": "Retrieve a Cargo upstream config for this repository.", + "description": "Retrieve a Cargo upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cargo_update", + "summary": "Update a Cargo upstream config for this repository.", + "description": "Update a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cargo_partial_update", + "summary": "Partially update a Cargo upstream config for this repository.", + "description": "Partially update a Cargo upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cargo_delete", + "summary": "Delete a Cargo upstream config for this repository.", + "description": "Delete a Cargo upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_deb_delete", - "summary": "Delete a Debian upstream config for this repository.", - "description": "Delete a Debian upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/composer/": { + "get": { + "operationId": "repos_upstream_composer_list", + "summary": "List Composer upstream configs for this repository.", + "description": "List Composer upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_composer_create", + "summary": "Create a Composer upstream config for this repository.", + "description": "Create a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker": { - "get": { - "operationId": "repos_upstream_docker_list", - "summary": "List Docker upstream configs for this repository.", - "description": "List Docker upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_docker_create", - "summary": "Create a Docker upstream config for this repository.", - "description": "Create a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_composer_read", + "summary": "Retrieve a Composer upstream config for this repository.", + "description": "Retrieve a Composer upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_composer_update", + "summary": "Update a Composer upstream config for this repository.", + "description": "Update a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_composer_partial_update", + "summary": "Partially update a Composer upstream config for this repository.", + "description": "Partially update a Composer upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_composer_delete", + "summary": "Delete a Composer upstream config for this repository.", + "description": "Delete a Composer upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}": { - "get": { - "operationId": "repos_upstream_docker_read", - "summary": "Retrieve a Docker upstream config for this repository.", - "description": "Retrieve a Docker upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_docker_update", - "summary": "Update a Docker upstream config for this repository.", - "description": "Update a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_docker_partial_update", - "summary": "Partially update a Docker upstream config for this repository.", - "description": "Partially update a Docker upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" + "/repos/{owner}/{identifier}/upstream/cran/": { + "get": { + "operationId": "repos_upstream_cran_list", + "summary": "List CRAN upstream configs for this repository.", + "description": "List CRAN upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cran_create", + "summary": "Create a CRAN upstream config for this repository.", + "description": "Create a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_docker_delete", - "summary": "Delete a Docker upstream config for this repository.", - "description": "Delete a Docker upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cran_read", + "summary": "Retrieve a CRAN upstream config for this repository.", + "description": "Retrieve a CRAN upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cran_update", + "summary": "Update a CRAN upstream config for this repository.", + "description": "Update a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cran_partial_update", + "summary": "Partially update a CRAN upstream config for this repository.", + "description": "Partially update a CRAN upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cran_delete", + "summary": "Delete a CRAN upstream config for this repository.", + "description": "Delete a CRAN upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm": { - "get": { - "operationId": "repos_upstream_helm_list", - "summary": "List Helm upstream configs for this repository.", - "description": "List Helm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_helm_create", - "summary": "Create a Helm upstream config for this repository.", - "description": "Create a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}": { - "get": { - "operationId": "repos_upstream_helm_read", - "summary": "Retrieve a Helm upstream config for this repository.", - "description": "Retrieve a Helm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_helm_update", - "summary": "Update a Helm upstream config for this repository.", - "description": "Update a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_helm_partial_update", - "summary": "Partially update a Helm upstream config for this repository.", - "description": "Partially update a Helm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/dart/": { + "get": { + "operationId": "repos_upstream_dart_list", + "summary": "List Dart upstream configs for this repository.", + "description": "List Dart upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_dart_create", + "summary": "Create a Dart upstream config for this repository.", + "description": "Create a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_dart_read", + "summary": "Retrieve a Dart upstream config for this repository.", + "description": "Retrieve a Dart upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_dart_update", + "summary": "Update a Dart upstream config for this repository.", + "description": "Update a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_dart_partial_update", + "summary": "Partially update a Dart upstream config for this repository.", + "description": "Partially update a Dart upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_dart_delete", + "summary": "Delete a Dart upstream config for this repository.", + "description": "Delete a Dart upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_helm_delete", - "summary": "Delete a Helm upstream config for this repository.", - "description": "Delete a Helm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex": { - "get": { - "operationId": "repos_upstream_hex_list", - "summary": "List Hex upstream configs for this repository.", - "description": "List Hex upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_hex_create", - "summary": "Create a Hex upstream config for this repository.", - "description": "Create a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}": { - "get": { - "operationId": "repos_upstream_hex_read", - "summary": "Retrieve a Hex upstream config for this repository.", - "description": "Retrieve a Hex upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_hex_update", - "summary": "Update a Hex upstream config for this repository.", - "description": "Update a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_hex_partial_update", - "summary": "Partially update a Hex upstream config for this repository.", - "description": "Partially update a Hex upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" + "/repos/{owner}/{identifier}/upstream/deb/": { + "get": { + "operationId": "repos_upstream_deb_list", + "summary": "List Debian upstream configs for this repository.", + "description": "List Debian upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_deb_create", + "summary": "Create a Debian upstream config for this repository.", + "description": "Create a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_hex_delete", - "summary": "Delete a Hex upstream config for this repository.", - "description": "Delete a Hex upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_deb_read", + "summary": "Retrieve a Debian upstream config for this repository.", + "description": "Retrieve a Debian upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_deb_update", + "summary": "Update a Debian upstream config for this repository.", + "description": "Update a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_deb_partial_update", + "summary": "Partially update a Debian upstream config for this repository.", + "description": "Partially update a Debian upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_deb_delete", + "summary": "Delete a Debian upstream config for this repository.", + "description": "Delete a Debian upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven": { - "get": { - "operationId": "repos_upstream_maven_list", - "summary": "List Maven upstream configs for this repository.", - "description": "List Maven upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_maven_create", - "summary": "Create a Maven upstream config for this repository.", - "description": "Create a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}": { - "get": { - "operationId": "repos_upstream_maven_read", - "summary": "Retrieve a Maven upstream config for this repository.", - "description": "Retrieve a Maven upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_maven_update", - "summary": "Update a Maven upstream config for this repository.", - "description": "Update a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_maven_partial_update", - "summary": "Partially update a Maven upstream config for this repository.", - "description": "Partially update a Maven upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/docker/": { + "get": { + "operationId": "repos_upstream_docker_list", + "summary": "List Docker upstream configs for this repository.", + "description": "List Docker upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_docker_create", + "summary": "Create a Docker upstream config for this repository.", + "description": "Create a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_docker_read", + "summary": "Retrieve a Docker upstream config for this repository.", + "description": "Retrieve a Docker upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_docker_update", + "summary": "Update a Docker upstream config for this repository.", + "description": "Update a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_docker_partial_update", + "summary": "Partially update a Docker upstream config for this repository.", + "description": "Partially update a Docker upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_docker_delete", + "summary": "Delete a Docker upstream config for this repository.", + "description": "Delete a Docker upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_maven_delete", - "summary": "Delete a Maven upstream config for this repository.", - "description": "Delete a Maven upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm": { - "get": { - "operationId": "repos_upstream_npm_list", - "summary": "List npm upstream configs for this repository.", - "description": "List npm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_npm_create", - "summary": "Create a npm upstream config for this repository.", - "description": "Create a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/go/": { + "get": { + "operationId": "repos_upstream_go_list", + "summary": "List Go upstream configs for this repository.", + "description": "List Go upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_go_create", + "summary": "Create a Go upstream config for this repository.", + "description": "Create a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}": { - "get": { - "operationId": "repos_upstream_npm_read", - "summary": "Retrieve a npm upstream config for this repository.", - "description": "Retrieve a npm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_npm_update", - "summary": "Update a npm upstream config for this repository.", - "description": "Update a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_npm_partial_update", - "summary": "Partially update a npm upstream config for this repository.", - "description": "Partially update a npm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_go_read", + "summary": "Retrieve a Go upstream config for this repository.", + "description": "Retrieve a Go upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_go_update", + "summary": "Update a Go upstream config for this repository.", + "description": "Update a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_go_partial_update", + "summary": "Partially update a Go upstream config for this repository.", + "description": "Partially update a Go upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_go_delete", + "summary": "Delete a Go upstream config for this repository.", + "description": "Delete a Go upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_npm_delete", - "summary": "Delete a npm upstream config for this repository.", - "description": "Delete a npm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/helm/": { + "get": { + "operationId": "repos_upstream_helm_list", + "summary": "List Helm upstream configs for this repository.", + "description": "List Helm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_helm_create", + "summary": "Create a Helm upstream config for this repository.", + "description": "Create a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget": { - "get": { - "operationId": "repos_upstream_nuget_list", - "summary": "List NuGet upstream configs for this repository.", - "description": "List NuGet upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_nuget_create", - "summary": "Create a NuGet upstream config for this repository.", - "description": "Create a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}": { - "get": { - "operationId": "repos_upstream_nuget_read", - "summary": "Retrieve a NuGet upstream config for this repository.", - "description": "Retrieve a NuGet upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_nuget_update", - "summary": "Update a NuGet upstream config for this repository.", - "description": "Update a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_nuget_partial_update", - "summary": "Partially update a NuGet upstream config for this repository.", - "description": "Partially update a NuGet upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_helm_read", + "summary": "Retrieve a Helm upstream config for this repository.", + "description": "Retrieve a Helm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_helm_update", + "summary": "Update a Helm upstream config for this repository.", + "description": "Update a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_helm_partial_update", + "summary": "Partially update a Helm upstream config for this repository.", + "description": "Partially update a Helm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_helm_delete", + "summary": "Delete a Helm upstream config for this repository.", + "description": "Delete a Helm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_nuget_delete", - "summary": "Delete a NuGet upstream config for this repository.", - "description": "Delete a NuGet upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/hex/": { + "get": { + "operationId": "repos_upstream_hex_list", + "summary": "List Hex upstream configs for this repository.", + "description": "List Hex upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_hex_create", + "summary": "Create a Hex upstream config for this repository.", + "description": "Create a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python": { - "get": { - "operationId": "repos_upstream_python_list", - "summary": "List Python upstream configs for this repository.", - "description": "List Python upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_python_create", - "summary": "Create a Python upstream config for this repository.", - "description": "Create a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_hex_read", + "summary": "Retrieve a Hex upstream config for this repository.", + "description": "Retrieve a Hex upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_hex_update", + "summary": "Update a Hex upstream config for this repository.", + "description": "Update a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_hex_partial_update", + "summary": "Partially update a Hex upstream config for this repository.", + "description": "Partially update a Hex upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_hex_delete", + "summary": "Delete a Hex upstream config for this repository.", + "description": "Delete a Hex upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}": { - "get": { - "operationId": "repos_upstream_python_read", - "summary": "Retrieve a Python upstream config for this repository.", - "description": "Retrieve a Python upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_python_update", - "summary": "Update a Python upstream config for this repository.", - "description": "Update a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_python_partial_update", - "summary": "Partially update a Python upstream config for this repository.", - "description": "Partially update a Python upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" + "/repos/{owner}/{identifier}/upstream/maven/": { + "get": { + "operationId": "repos_upstream_maven_list", + "summary": "List Maven upstream configs for this repository.", + "description": "List Maven upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_maven_create", + "summary": "Create a Maven upstream config for this repository.", + "description": "Create a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_python_delete", - "summary": "Delete a Python upstream config for this repository.", - "description": "Delete a Python upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_maven_read", + "summary": "Retrieve a Maven upstream config for this repository.", + "description": "Retrieve a Maven upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_maven_update", + "summary": "Update a Maven upstream config for this repository.", + "description": "Update a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_maven_partial_update", + "summary": "Partially update a Maven upstream config for this repository.", + "description": "Partially update a Maven upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_maven_delete", + "summary": "Delete a Maven upstream config for this repository.", + "description": "Delete a Maven upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm": { - "get": { - "operationId": "repos_upstream_rpm_list", - "summary": "List RedHat upstream configs for this repository.", - "description": "List RedHat upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_rpm_create", - "summary": "Create a RedHat upstream config for this repository.", - "description": "Create a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}": { - "get": { - "operationId": "repos_upstream_rpm_read", - "summary": "Retrieve a RedHat upstream config for this repository.", - "description": "Retrieve a RedHat upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_rpm_update", - "summary": "Update a RedHat upstream config for this repository.", - "description": "Update a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_rpm_partial_update", - "summary": "Partially update a RedHat upstream config for this repository.", - "description": "Partially update a RedHat upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/npm/": { + "get": { + "operationId": "repos_upstream_npm_list", + "summary": "List npm upstream configs for this repository.", + "description": "List npm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_npm_create", + "summary": "Create a npm upstream config for this repository.", + "description": "Create a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_npm_read", + "summary": "Retrieve a npm upstream config for this repository.", + "description": "Retrieve a npm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_npm_update", + "summary": "Update a npm upstream config for this repository.", + "description": "Update a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_npm_partial_update", + "summary": "Partially update a npm upstream config for this repository.", + "description": "Partially update a npm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_npm_delete", + "summary": "Delete a npm upstream config for this repository.", + "description": "Delete a npm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_rpm_delete", - "summary": "Delete a RedHat upstream config for this repository.", - "description": "Delete a RedHat upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby": { - "get": { - "operationId": "repos_upstream_ruby_list", - "summary": "List Ruby upstream configs for this repository.", - "description": "List Ruby upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_ruby_create", - "summary": "Create a Ruby upstream config for this repository.", - "description": "Create a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}": { - "get": { - "operationId": "repos_upstream_ruby_read", - "summary": "Retrieve a Ruby upstream config for this repository.", - "description": "Retrieve a Ruby upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_ruby_update", - "summary": "Update a Ruby upstream config for this repository.", - "description": "Update a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_ruby_partial_update", - "summary": "Partially update a Ruby upstream config for this repository.", - "description": "Partially update a Ruby upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" + "/repos/{owner}/{identifier}/upstream/nuget/": { + "get": { + "operationId": "repos_upstream_nuget_list", + "summary": "List NuGet upstream configs for this repository.", + "description": "List NuGet upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_nuget_create", + "summary": "Create a NuGet upstream config for this repository.", + "description": "Create a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_ruby_delete", - "summary": "Delete a Ruby upstream config for this repository.", - "description": "Delete a Ruby upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift": { - "get": { - "operationId": "repos_upstream_swift_list", - "summary": "List Swift upstream configs for this repository.", - "description": "List Swift upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_swift_create", - "summary": "Create a Swift upstream config for this repository.", - "description": "Create a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}": { - "get": { - "operationId": "repos_upstream_swift_read", - "summary": "Retrieve a Swift upstream config for this repository.", - "description": "Retrieve a Swift upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_swift_update", - "summary": "Update a Swift upstream config for this repository.", - "description": "Update a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_swift_partial_update", - "summary": "Partially update a Swift upstream config for this repository.", - "description": "Partially update a Swift upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_nuget_read", + "summary": "Retrieve a NuGet upstream config for this repository.", + "description": "Retrieve a NuGet upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_nuget_update", + "summary": "Update a NuGet upstream config for this repository.", + "description": "Update a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_nuget_partial_update", + "summary": "Partially update a NuGet upstream config for this repository.", + "description": "Partially update a NuGet upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_nuget_delete", + "summary": "Delete a NuGet upstream config for this repository.", + "description": "Delete a NuGet upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_swift_delete", - "summary": "Delete a Swift upstream config for this repository.", - "description": "Delete a Swift upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/python/": { + "get": { + "operationId": "repos_upstream_python_list", + "summary": "List Python upstream configs for this repository.", + "description": "List Python upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_python_create", + "summary": "Create a Python upstream config for this repository.", + "description": "Create a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509": { - "get": { - "operationId": "repos_x509_list", - "summary": "Retrieve the active X.509 certificate for the Repository.", - "description": "Retrieve the active X.509 certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509Certificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_python_read", + "summary": "Retrieve a Python upstream config for this repository.", + "description": "Retrieve a Python upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_python_update", + "summary": "Update a Python upstream config for this repository.", + "description": "Update a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_python_partial_update", + "summary": "Partially update a Python upstream config for this repository.", + "description": "Partially update a Python upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_python_delete", + "summary": "Delete a Python upstream config for this repository.", + "description": "Delete a Python upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula": { - "get": { - "operationId": "repos_eula_list", - "summary": "Retrieve EULA iterations for a repository.", - "description": "Retrieve EULA iterations for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved EULAs successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EulaCreate" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "repos_eula_create", - "summary": "Create a EULA for a repository.", - "description": "Create a EULA for a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EulaCreateRequest" - } - } - } + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "Created EULA successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EulaCreate" + "/repos/{owner}/{identifier}/upstream/rpm/": { + "get": { + "operationId": "repos_upstream_rpm_list", + "summary": "List RedHat upstream configs for this repository.", + "description": "List RedHat upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_rpm_create", + "summary": "Create a RedHat upstream config for this repository.", + "description": "Create a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/{eula}": { - "patch": { - "operationId": "repos_eula_partial_update", - "summary": "Update the most recent EULA iteration.", - "description": "Update the most recent EULA iteration.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EulaUpdateRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_rpm_read", + "summary": "Retrieve a RedHat upstream config for this repository.", + "description": "Retrieve a RedHat upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_rpm_update", + "summary": "Update a RedHat upstream config for this repository.", + "description": "Update a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_rpm_partial_update", + "summary": "Partially update a RedHat upstream config for this repository.", + "description": "Partially update a RedHat upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_rpm_delete", + "summary": "Delete a RedHat upstream config for this repository.", + "description": "Delete a RedHat upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "Updated EULA successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EulaUpdate" + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": true, - "x-detail": true, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/ruby/": { + "get": { + "operationId": "repos_upstream_ruby_list", + "summary": "List Ruby upstream configs for this repository.", + "description": "List Ruby upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_ruby_create", + "summary": "Create a Ruby upstream config for this repository.", + "description": "Create a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "eula", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/invalidate-cache": { - "post": { - "operationId": "repos_invalidate_cache", - "summary": "Viewset for various actions carried out on Repository.", - "description": "Viewset for various actions carried out on Repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RepositoryTransferOwnerRequest" - }, - "responses": { - "200": { - "description": "Cache invalidated successfully." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "package.invalidate_repo(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/retention": { - "get": { - "operationId": "repo_retention_read", - "summary": "Retrieve the retention rules for the repository.", - "description": "Retrieve the retention rules for the repository.", - "responses": { - "200": { - "description": "Retrieved the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "repo_retention_partial_update", - "summary": "Update the retention rules for the repository.", - "description": "Update the retention rules for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_ruby_read", + "summary": "Retrieve a Ruby upstream config for this repository.", + "description": "Retrieve a Ruby upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_ruby_update", + "summary": "Update a Ruby upstream config for this repository.", + "description": "Update a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_ruby_partial_update", + "summary": "Partially update a Ruby upstream config for this repository.", + "description": "Partially update a Ruby upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_ruby_delete", + "summary": "Delete a Ruby upstream config for this repository.", + "description": "Delete a Ruby upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-owner": { - "post": { - "operationId": "repos_transfer_owner", - "summary": "Viewset for various actions carried out on Repository.", - "description": "Viewset for various actions carried out on Repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RepositoryTransferOwnerRequest" - }, - "responses": { - "200": { - "description": "Repository transferred successfully." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "package.transfer_repo(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-region": { - "post": { - "operationId": "repos_transfer_region", - "summary": "Transfer a repository to a different region.", - "description": "Transfer a repository to a different region.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferRegionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Repository region transfer initiated." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom storage regions not available on plan; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner, namespace or repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["repos"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/swift/": { + "get": { + "operationId": "repos_upstream_swift_list", + "summary": "List Swift upstream configs for this repository.", + "description": "List Swift upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_swift_create", + "summary": "Create a Swift upstream config for this repository.", + "description": "Create a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Groups": { - "get": { - "operationId": "scim_v2_Groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Groups_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Groups/{id}": { - "get": { - "operationId": "scim_v2_Groups_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Groups_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Groups_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Groups_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ResourceTypes": { - "get": { - "operationId": "scim_v2_ResourceTypes_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ResourceTypes_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ResourceTypes/{id}": { - "get": { - "operationId": "scim_v2_ResourceTypes_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ResourceTypes_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ResourceTypes_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ResourceTypes_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ServiceProviderConfig": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ServiceProviderConfig_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ServiceProviderConfig/{id}": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ServiceProviderConfig_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ServiceProviderConfig_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ServiceProviderConfig_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Users": { - "get": { - "operationId": "scim_v2_Users_list", - "description": "", - "parameters": [ - { - "name": "count", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "startIndex", - "in": "query", - "description": "The initial index from which to return the results.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Users_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Users/{identifier}": { - "get": { - "operationId": "scim_v2_Users_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Users_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Users_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Users_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["scim"], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" - } - } - ] - }, - "/status/check/basic": { - "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", - "responses": { - "200": { - "description": "Status check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatusBasic" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["status"], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["AllowAny"] - }, - "parameters": [] - }, - "/storage-regions": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", - "responses": { - "200": { - "description": "Available storage regions retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["storage-regions"], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/storage-regions/{slug}": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["storage-regions"], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/usage/{owner}/{requested_metric}": { - "get": { - "operationId": "stats", - "description": "API to provide time-series data around package delivery, artifact data, overages etc. one metric at a time\nas specified by /usage/// where requested_metric can be one of -\n(download_count, download_bytes, download_count_packages, download_backend_types, num_users, num_teams, max_data_used)\n\nThe following filters are supported:\n1. start_time=%Y-%m-%dT%H:%M:%SZ\n2. end_time=%Y-%m-%dT%H:%M:%SZ\n3. interval=day|week\n\nMetrics like `num_teams` do not provide time-series values and only provide one value for the entire filter period.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetricsRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["stats"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_usage(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org_usage(org: 'Organization')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_swift_read", + "summary": "Retrieve a Swift upstream config for this repository.", + "description": "Retrieve a Swift upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_swift_update", + "summary": "Update a Swift upstream config for this repository.", + "description": "Update a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_swift_partial_update", + "summary": "Partially update a Swift upstream config for this repository.", + "description": "Partially update a Swift upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_swift_delete", + "summary": "Delete a Swift upstream config for this repository.", + "description": "Delete a Swift upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "requested_metric", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/additional-onboarding-actions": { - "get": { - "operationId": "user_additional_onboarding_actions", - "summary": "Views for the current user.", - "description": "Views for the current user.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdditionalOnboardingActions" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "patch": { - "operationId": "user_additional_onboarding_actions", - "summary": "Views for the current user.", - "description": "Views for the current user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdditionalOnboardingActionsRequestPatch" - } - } - } + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdditionalOnboardingActions" + "/repos/{owner}/{identifier}/x509-ecdsa/": { + "get": { + "operationId": "repos_x509_ecdsa_list", + "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 ECDSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/default-org": { - "get": { - "operationId": "user_default_org", - "summary": "Retrieve the default organization for the current user.", - "description": "Retrieve the default organization for the current user.", - "responses": { - "200": { - "description": "Retrieved the user's default organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDefaultOrg" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The user has no default organization set.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "patch": { - "operationId": "user_update_default_org", - "summary": "Update the default organization for the current user.", - "description": "Update the default organization for the current user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDefaultOrgRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Successfully updated user's default organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserDefaultOrg" + "/repos/{owner}/{identifier}/x509-rsa/": { + "get": { + "operationId": "repos_x509_rsa_list", + "summary": "Retrieve the active X.509 RSA certificate for the Repository.", + "description": "Retrieve the active X.509 RSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 RSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509RsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/emails": { - "get": { - "operationId": "user_emails_list", - "summary": "Returns a list of all emails associated with a user's account.", - "description": "Returns a list of all emails associated with a user's account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved email addresses successfully.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/EmailAddress" - } + ] + }, + "/repos/{owner}/{repo}/create-entitlement/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "post": { - "operationId": "user_emails_create", - "summary": "Adds a new email address to the user's account.", - "description": "Adds a new email address to the user's account.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateEmailAddressRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Email Address created successfully." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/emails/{email}": { - "put": { - "operationId": "user_emails_update", - "summary": "Updates the user's primary email address.", - "description": "Updates the user's primary email address.", - "responses": { - "200": { - "description": "Updated primary email address successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdatePrimaryEmail" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "delete": { - "operationId": "user_emails_delete", - "summary": "Delete a specified email address from a user's account.", - "description": "Delete a specified email address from a user's account.", - "responses": { - "204": { - "description": "Deleted specified email address." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Primary email address cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/emails/{email}/resend-confirmation": { - "post": { - "operationId": "user_emails_resend_confirmation", - "summary": "Resends verification confirmation email to specified email address.", - "description": "Resends verification confirmation email to specified email address.", - "responses": { - "204": { - "description": "Confirmation email resent." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites": { - "get": { - "operationId": "user_invites_list", - "summary": "List all organization invites associated with the user.", - "description": "List all organization invites associated with the user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved all organization invites associated with the user.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserOrganizationInvite" - } + ] + }, + "/repos/{owner}/{repo}/eula/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/invites/{invite_id}/accept": { - "post": { - "operationId": "user_invites_accept", - "summary": "Accept the specified organization invite.", - "description": "Accept the specified organization invite.", - "requestBody": { - "$ref": "#/components/requestBodies/UserOrganizationInviteRequest" - }, - "responses": { - "204": { - "description": "Accepted the organization invite." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/{invite_id}/reject": { - "post": { - "operationId": "user_invites_reject", - "summary": "Reject the specified organization invite.", - "description": "Reject the specified organization invite.", - "requestBody": { - "$ref": "#/components/requestBodies/UserOrganizationInviteRequest" - }, - "responses": { - "204": { - "description": "Rejected the organization invite." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/logins": { - "get": { - "operationId": "user_logins", - "summary": "List the most recent logins for the current user.", - "description": "List the most recent logins for the current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of logins for the current user.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserLoginHistory" - } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "parameters": [] - }, - "/user/logout": { - "post": { - "operationId": "user_logout", - "summary": "Log out the current user.", - "description": "Log out the current user.", - "responses": { - "204": { - "description": "Successfully logged out the current user." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "parameters": [] - }, - "/user/logout/other-sessions": { - "post": { - "operationId": "user_logout_logout_other_sessions", - "summary": "Log out the current user's active sessions.", - "description": "Log out the current user's active sessions.", - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserLogoutOtherSessions" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/password": { - "put": { - "operationId": "user_password", - "summary": "Update the current user's password and return authentication tokens if successful.", - "description": "Update the current user's password and return authentication tokens if successful.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserPasswordRequest" - } - } - } + ] }, - "responses": { - "200": { - "description": "User's password updated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserPassword" + "/repos/{owner}/{repo}/eula/{eula}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eula", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/permissions/check": { - "post": { - "operationId": "user_permissions_check_permissions", - "summary": "Views to handle checking of user-based permissions.", - "description": "Views to handle checking of user-based permissions.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permissions" - } - } - } + ] }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Permissions" + "/repos/{owner}/{repo}/invalidate-cache/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Malformed request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Malformed request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/profile": { - "get": { - "operationId": "user_profile", - "summary": "Provide full details for the current user.", - "description": "Provide full details for the current user.", - "responses": { - "200": { - "description": "Retrieved the details for the current user.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Authentication credentials were not provided.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "patch": { - "operationId": "user_update_profile", - "summary": "Update the details for the current user.", - "description": "Update the details for the current user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the details for the current user.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/User" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "401": { - "description": "Authentication credentials were not provided.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/refresh-token": { - "post": { - "operationId": "user_refresh_token", - "summary": "Refresh API key/token for the authenticated user.", - "description": "Refresh API key/token for the authenticated user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserRefreshWebTokenRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Refresh user API token/key." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/self": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["AllowAny"] - }, - "parameters": [] - }, - "/user/sessions": { - "get": { - "operationId": "user_sessions", - "summary": "List all the sessions for the current user.", - "description": "List all the sessions for the current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of sessions for the current user.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserSession" - } + "/repos/{owner}/{repo}/retention/": { + "get": { + "operationId": "repo_retention_read", + "summary": "Retrieve the retention rules for the repository.", + "description": "Retrieve the retention rules for the repository.", + "responses": { + "200": { + "description": "Retrieved the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "repo_retention_partial_update", + "summary": "Update the retention rules for the repository.", + "description": "Update the retention rules for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "parameters": [] - }, - "/user/slug": { - "patch": { - "operationId": "user_update_slug", - "summary": "Views for the current user.", - "description": "Views for the current user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserSlugRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Slug updated successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserSlug" + "/repos/{owner}/{repo}/transfer-owner/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Slug was not updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/soft-delete": { - "post": { - "operationId": "user_soft_delete", - "summary": "Allows users to soft delete their own account.", - "description": "Allows users to soft delete their own account.", - "responses": { - "204": { - "description": "User soft deleted successfully." - }, - "400": { - "description": "User was not soft deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [] - }, - "/user/token": { - "post": { - "operationId": "user_token_create", - "summary": "Retrieve/Create API key/token for the authenticated user.", - "description": "Retrieve/Create API key/token for the authenticated user.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } + ] }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" + "/repos/{owner}/{repo}/transfer-region/": { + "post": { + "operationId": "repos_transfer_region", + "summary": "Transfer a repository to a different region.", + "description": "Transfer a repository to a different region.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTransferRegionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Repository region transfer initiated." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom storage regions not available on plan; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner, namespace or repository not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "security": [ - { - "basic": [] - } - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions": { - "get": { - "operationId": "user_token_restrictions_list", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved restrictions successfully.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserApiCidr" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "user_token_restrictions_create", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "requestBody": { - "$ref": "#/components/requestBodies/UserApiCidrRequest" - }, - "responses": { - "201": { - "description": "Restriction created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidr" - } - } - } - }, - "400": { - "description": "The restriction cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions/{token}": { - "get": { - "operationId": "user_token_restrictions_read", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "responses": { - "200": { - "description": "Retrieved the details of the requested restriction.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidr" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Restriction not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "user_token_restrictions_update", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "requestBody": { - "$ref": "#/components/requestBodies/UserApiCidrRequest" - }, - "responses": { - "200": { - "description": "Updated the restriction successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidr" - } - } - } - }, - "400": { - "description": "Invalid data.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Restriction not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "user_token_restrictions_partial_update", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidrRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "Updated the specified restriction.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidr" - } - } - } - }, - "400": { - "description": "The restriction cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Restriction not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "user_token_restrictions_delete", - "summary": "View for viewing and editing user's API token restrictions.", - "description": "View for viewing and editing user's API token restrictions.", - "responses": { - "204": { - "description": "Deleted the restriction successfully." - }, - "400": { - "description": "The restriction cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Restriction not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/tokens": { - "get": { - "operationId": "user_tokens_list", - "summary": "List the API keys assigned to the currently authenticated user.", - "description": "List the API keys assigned to the currently authenticated user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved API keys for the currently authenticated user.", - "content": { - "application/json": { - "schema": { - "required": ["results"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } + "/scim/v2/Groups": { + "get": { + "operationId": "scim_v2_Groups_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Groups_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Groups/{id}": { + "get": { + "operationId": "scim_v2_Groups_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Groups_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Groups_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Groups_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" } - } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the currently authenticated user.", - "description": "Create an API key for the currently authenticated user.", - "responses": { - "201": { - "description": "Created an API key for the currently authenticated user.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the currently authenticated user.", - "description": "Refresh the specified API key for the currently authenticated user.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/totp/backup/disable": { - "post": { - "operationId": "user_totp_backup_disable_backup_codes", - "description": "", - "responses": { - "204": { - "description": "TOTP Backup Codes disabled." - }, - "400": { - "description": "TOTP is not enabled for the user or backup codes are not enabled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/totp/backup/enable": { - "post": { - "operationId": "user_totp_backup_enable_backup_codes", - "description": "", - "responses": { - "201": { - "description": "TOTP Backups Codes created." - }, - "400": { - "description": "TOTP is not enabled for the user or backup codes are already enabled.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/totp/confirm": { - "post": { - "operationId": "user_totp_confirm_totp", - "description": "", - "requestBody": { - "$ref": "#/components/requestBodies/TOTPRequest" - }, - "responses": { - "204": { - "description": "TOTP Device Confirmed Successfully." - }, - "400": { - "description": "There's no TOTP Device pending for confirmation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "TOTP token is missing or invalid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/totp/disable": { - "post": { - "operationId": "user_totp_disable_totp", - "description": "", - "requestBody": { - "$ref": "#/components/requestBodies/TOTPRequest" - }, - "responses": { - "204": { - "description": "TOTP Device Disabled Successfully." - }, - "400": { - "description": "There is no TOTP device to disable.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "TOTP token is missing or invalid.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/totp/enable": { - "post": { - "operationId": "user_totp_enable_totp", - "description": "", - "requestBody": { - "$ref": "#/components/requestBodies/TOTPRequest" - }, - "responses": { - "201": { - "description": "TOTP Device Created Successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TOTP" - } - } - } - }, - "400": { - "description": "TOTP is already enabled for the user.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/totp/settings": { - "get": { - "operationId": "user_totp_totp_settings", - "description": "", - "responses": { - "200": { - "description": "TOTP Settings returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TOTPSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "user_totp_totp_settings_partial_update", - "description": "", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TOTPSettingsRequestPatch" - } - } - } + ] }, - "responses": { - "200": { - "description": "TOTP Settings Updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TOTPSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Request validation failure", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated", "IsPrivilegeEscalated"], - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/user/two-factor": { - "post": { - "operationId": "user_two_factor", - "summary": "Exchange a two_factor_token and totp_token for a JWT.", - "description": "Exchange a two_factor_token and totp_token for a JWT.", - "requestBody": { - "$ref": "#/components/requestBodies/InternalUserTwoFactorRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserTwoFactor" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["user"], - "security": [], - "x-hidden": true, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": "empty" - }, - "parameters": [] - }, - "/users/profile/{slug}": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["users"], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": ["IsAuthenticated"] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["vulnerabilities"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["vulnerabilities"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/scim/v2/ResourceTypes": { + "get": { + "operationId": "scim_v2_ResourceTypes_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ResourceTypes_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ResourceTypes/{id}": { + "get": { + "operationId": "scim_v2_ResourceTypes_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ResourceTypes_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ResourceTypes_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ResourceTypes_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["vulnerabilities"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/scim/v2/ServiceProviderConfig": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ServiceProviderConfig_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ServiceProviderConfig/{id}": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ServiceProviderConfig_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ServiceProviderConfig_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ServiceProviderConfig_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/scim/v2/Users": { + "get": { + "operationId": "scim_v2_Users_list", + "description": "", + "parameters": [ + { + "name": "count", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The initial index from which to return the results.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Users_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Users/{identifier}": { + "get": { + "operationId": "scim_v2_Users_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Users_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Users_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Users_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" + } + } + ] }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["vulnerabilities"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/status/check/basic/": { + "get": { + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", + "responses": { + "200": { + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "status" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", + "responses": { + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [] + }, + "/storage-regions/{slug}/": { + "get": { + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/usage/{owner}/{requested_metric}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "requested_metric", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/user/additional-onboarding-actions/": { + "parameters": [] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["webhooks"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } + "/user/default-org/": { + "parameters": [] + }, + "/user/emails/": { + "parameters": [] + }, + "/user/emails/{email}/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" + "/user/emails/{email}/resend-confirmation/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["webhooks"], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["webhooks"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } + "/user/invites/": { + "parameters": [] }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" + "/user/invites/{invite_id}/accept/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["webhooks"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": ["webhooks"], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + ] }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "/user/invites/{invite_id}/reject/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "InternalUserTwoFactorRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InternalUserTwoFactorRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } - }, - "SwiftUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequest" - } - } - } - }, - "NpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequest" - } - } - } - }, - "SwiftPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUploadRequest" - } - } - } - }, - "HexUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequest" - } - } - } - }, - "RubyPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUploadRequest" - } - } - } - }, - "CargoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUploadRequest" - } - } - } - }, - "RubyUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequest" - } - } - } - }, - "RpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequest" - } - } - } - }, - "MavenUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequest" - } - } - } - }, - "OrganizationTeamMembers": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "VagrantPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUploadRequest" - } - } - } - }, - "UserApiCidrRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserApiCidrRequest" - } - } - } - }, - "ConanPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUploadRequest" - } - } - } - }, - "RepositoryTransferOwnerRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferOwnerRequest" - } - } - } - }, - "UserOrganizationInviteRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserOrganizationInviteRequest" - } - } - } - }, - "RawPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUploadRequest" - } - } - } - }, - "HelmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequest" - } - } - } - }, - "TOTPRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TOTPRequest" - } - } - } - }, - "NugetUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequest" - } - } - } - }, - "TerraformPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUploadRequest" - } - } - } - }, - "PackageFileUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUploadRequest" - } - } - } - }, - "PackageDenyPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequest" - } - } - } - }, - "ProviderSettingsRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequest" - } - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" - } - } - } - }, - "AlpinePackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUploadRequest" - } - } - } - }, - "CocoapodsPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" - } - } - } - }, - "ComposerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUploadRequest" - } - } - } - }, - "CondaPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUploadRequest" - } - } - } - }, - "CranPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUploadRequest" - } - } - } - }, - "DartPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUploadRequest" - } - } - } - }, - "DebPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUploadRequest" - } - } - } - }, - "DockerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUploadRequest" - } - } - } - }, - "HelmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUploadRequest" - } - } - } - }, - "HexPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUploadRequest" - } - } - } - }, - "LuarocksPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUploadRequest" - } - } - } - }, - "MavenPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUploadRequest" - } - } - } - }, - "NpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUploadRequest" - } - } - } - }, - "NugetPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUploadRequest" - } - } - } - }, - "P2PackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUploadRequest" - } - } - } - }, - "PythonPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUploadRequest" - } - } - } - }, - "RpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUploadRequest" - } - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" - } - } - } - }, - "ComposerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequest" - } - } - } - }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } + "/user/logins/": { + "parameters": [] + }, + "/user/logout/": { + "parameters": [] + }, + "/user/logout/other-sessions/": { + "parameters": [] + }, + "/user/password/": { + "parameters": [] + }, + "/user/permissions/check/": { + "parameters": [] + }, + "/user/profile/": { + "parameters": [] + }, + "/user/refresh-token/": { + "parameters": [] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", + "responses": { + "200": { + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/user/sessions/": { + "parameters": [] + }, + "/user/slug/": { + "parameters": [] + }, + "/user/soft-delete/": { + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Retrieved/created user API token/key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "403": { + "description": "Locked out.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Failed to authenticate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "security": [ + { + "basic": [] + } + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/user/token/restrictions/": { + "parameters": [] + }, + "/user/token/restrictions/{token}/": { + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/tokens/": { + "get": { + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", + "responses": { + "201": { + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "User has already created an API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [] + }, + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", + "responses": { + "200": { + "description": "Successfully refreshed the API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "The specified API key cannot be found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/totp/backup/disable/": { + "parameters": [] + }, + "/user/totp/backup/enable/": { + "parameters": [] + }, + "/user/totp/confirm/": { + "parameters": [] + }, + "/user/totp/disable/": { + "parameters": [] + }, + "/user/totp/enable/": { + "parameters": [] + }, + "/user/totp/settings/": { + "parameters": [] + }, + "/user/two-factor/": { + "parameters": [] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", + "responses": { + "200": { + "description": "Retrieved details for the specified user (or current user, if none was specified)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfile" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "users" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated" + ] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/": { + "get": { + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/": { + "get": { + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/": { + "get": { + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of webhooks", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", + "responses": { + "204": { + "description": "Deleted the specified webhook successfully." + }, + "400": { + "description": "The webhook cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] } - } }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": ["detail"], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - } - } - }, - "GeoIpLocation": { - "required": ["city", "continent", "country", "postal_code"], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "PlanPrice": { - "description": "List of prices for the plan", - "required": ["amount", "billing_interval", "currency"], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Plan Amount", - "type": "string", - "format": "decimal" - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing", - "type": "string", - "minLength": 1 - } - } - }, - "Plan": { - "required": ["identifier", "is_enterprise", "prices"], - "type": "object", - "properties": { - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_enterprise": { - "title": "Is enterprise", - "description": "Is this an enterprise plan", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "prices": { - "description": "List of prices for the plan", - "type": "array", - "items": { - "$ref": "#/components/schemas/PlanPrice" - } - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - } - } - }, - "Payment": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "When was the payment created and attempted", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "failure_code": { - "title": "Failure code", - "description": "Failure Code for the payment", - "type": "string", - "minLength": 1 - }, - "failure_message": { - "title": "Failure message", - "description": "Failure message for the payment", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Payment Status", - "type": "string", - "minLength": 1 - } - } - }, - "AccountStatus": { - "required": ["payments"], - "type": "object", - "properties": { - "billing_period_end_date": { - "title": "Billing period end date", - "description": "When does the current billing period end", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "status": { - "title": "Status", - "description": "Current Status of account", - "type": "string", - "minLength": 1 - } - } - }, - "InvoiceItem": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the line", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Invoice": { - "type": "object", - "properties": { - "amount_due": { - "title": "Amount due", - "description": "Amount due to be paid", - "type": "integer", - "readOnly": true - }, - "amount_paid": { - "title": "Amount paid", - "description": "Amount paid", - "type": "integer", - "readOnly": true - }, - "billing_reason": { - "title": "Billing reason", - "description": "Reason for the invoice to be created", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "billing_reason_text": { - "title": "Billing reason text", - "type": "string", - "readOnly": true - }, - "created": { - "title": "Created", - "description": "When was the invoice created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "currency": { - "title": "Currency", - "description": "The currency of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoice_id": { - "title": "Invoice id", - "description": "Invoice ID", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoiceitems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvoiceItem" - }, - "readOnly": true - }, - "number": { - "title": "Number", - "description": "Invoice number", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Status of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InvoicePDF": { - "type": "object", - "properties": { - "invoice_pdf": { - "title": "Invoice pdf", - "description": "Link to the invoice in PDF", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "CardPaymentMethod": { - "type": "object", - "properties": { - "brand": { - "title": "Brand", - "description": "Card Brand (e.g. Visa)", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "exp_month": { - "title": "Exp month", - "description": "Expiration Month", - "type": "integer", - "readOnly": true - }, - "exp_year": { - "title": "Exp year", - "description": "Expiration Year", - "type": "integer", - "readOnly": true - }, - "last4": { - "title": "Last4", - "description": "Last 4 digits of card", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "PaymentMethod": { - "required": ["card"], - "type": "object", - "properties": { - "card": { - "$ref": "#/components/schemas/CardPaymentMethod" - }, - "created": { - "title": "Created", - "description": "When was the payment method created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "is_default": { - "title": "Is default", - "description": "Is this the default payment method", - "type": "boolean", - "readOnly": true - }, - "type": { - "title": "Type", - "description": "Payment Method Type", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "BillingPeriod": { - "type": "object", - "properties": { - "is_current": { - "title": "Is current", - "description": "Is this the current Billing Period", - "type": "boolean", - "readOnly": true - }, - "period_end_at": { - "title": "Period End At", - "description": "The datetime usage is recorded to.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "period_start_at": { - "title": "Period Start At", - "description": "The datetime usage is recorded from.", - "type": "string", - "format": "date-time" - }, - "trial": { - "title": "Trial", - "description": "Usage period occurred during a trial.", - "type": "boolean" - } - } - }, - "PortalUrl": { - "required": ["url"], - "type": "object", - "properties": { - "url": { - "title": "Url", - "description": "Billing Portal URL to Redirect User to", - "type": "string", - "format": "uri", - "minLength": 1 - } - } - }, - "OnDemandUsageProduct": { - "description": "Products in the On-Demand Usage Subscription", - "required": ["currency", "identifier", "price_per_unit", "unit"], - "type": "object", - "properties": { - "currency": { - "title": "Currency", - "description": "Currency used for invoicing product", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Identifier for this product", - "type": "string", - "minLength": 1 - }, - "price_per_unit": { - "title": "Price per unit", - "description": "Price per unit", - "type": "string", - "format": "decimal" - }, - "unit": { - "title": "Unit", - "description": "Unit for this product", - "type": "string", - "minLength": 1 - } - } - }, - "OnDemandUsageSubcription": { - "description": "Details of On-Demand Usage Subscription", - "required": ["billing_interval", "products"], - "type": "object", - "properties": { - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "products": { - "description": "Products in the On-Demand Usage Subscription", - "type": "array", - "items": { - "$ref": "#/components/schemas/OnDemandUsageProduct" - } - } - } - }, - "Subscription": { - "required": ["identifier"], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Subscription Amount", - "type": "string", - "format": "decimal" - }, - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "can_charge": { - "title": "Can charge", - "description": "Does the customer have payment method configured", - "type": "boolean" - }, - "cancel_at_period_end": { - "title": "Cancel at period end", - "description": "Subscription will be cancelled when billing period ends", - "type": "boolean" - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing subscription", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_delinquent": { - "title": "Is delinquent", - "description": "Does this subscription have outstanding invoices", - "type": "boolean" - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "on_demand_usage": { - "$ref": "#/components/schemas/OnDemandUsageSubcription" - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Current Status of subscription", - "type": "string", - "minLength": 1 - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - }, - "trial_end_date": { - "title": "Trial end date", - "description": "Trial End Date", - "type": "string", - "format": "date-time" - } - } - }, - "TrialDays": { - "required": ["identifier", "is_trialing", "remaining_trial_days", "trial_days"], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "remaining_trial_days": { - "title": "Remaining trial days", - "description": "Remaining Unused Trial Days", - "type": "integer" - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - } - } - }, - "DistributionVersion": { - "description": "A list of the versions for this distribution", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The textual name for this version.", - "type": "string", - "maxLength": 64 - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this version", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "DistributionFull": { - "required": ["name"], - "type": "object", - "properties": { - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "versions": { - "description": "A list of the versions for this distribution", - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "readOnly": true - } - } - }, - "Eula": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "nullable": true - }, - "number": { - "title": "Number", - "description": "A sequential identifier that increments by one for each new commit in a repository.", - "type": "integer", - "nullable": true - } - }, - "nullable": true - }, - "RepositoryToken": { - "required": ["name"], - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTokenRequest": { - "required": ["name"], - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSyncRequest": { - "required": ["source"], - "type": "object", - "properties": { - "source": { - "title": "Source", - "description": "The source repository slug (in the same owner namespace).", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSync": { - "type": "object", - "properties": { - "tokens": { - "description": "The entitlements that have been synchronised.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - }, - "readOnly": true - } - } - }, - "RepositoryTokenRequestPatch": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenAction": { - "type": "object", - "properties": {} - }, - "RepositoryTokenRefreshRequest": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenRefresh": { - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageFileUploadRequest": { - "required": ["filename"], - "type": "object", - "properties": { - "filename": { - "title": "Filename", - "description": "Filename for the package file upload.", - "type": "string", - "minLength": 1 - }, - "md5_checksum": { - "title": "Md5 checksum", - "description": "MD5 checksum for a POST-based package file upload.", - "type": "string", - "maxLength": 32, - "minLength": 32 - }, - "method": { - "title": "Method", - "description": "The method to use for package file upload.", - "type": "string", - "enum": ["put_parts", "put", "post", "presigned", "unsigned_put"], - "default": "post" - }, - "sha256_checksum": { - "title": "Sha256 checksum", - "description": "SHA256 checksum for a PUT-based package file upload.", - "type": "string", - "maxLength": 64, - "minLength": 64 - } - } - }, - "PackageFileUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use when creating packages", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_fields": { - "title": "Upload fields", - "description": "The dictionary of fields that must be sent with POST uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_headers": { - "title": "Upload headers", - "description": "The dictionary of headers that must be sent with uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step POST or PUT upload", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step POST or PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "PackageFilePartsUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use uploading parts.", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step PUT upload.", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "Distribution": { - "description": "The distributions supported by this package format", - "required": ["name"], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - } - }, - "nullable": true - }, - "FormatSupportUpstream": { - "description": "The upstream support for the package format", - "required": ["auth_modes", "caching", "indexing", "proxying"], - "type": "object", - "properties": { - "auth_modes": { - "description": "The authentication modes supported by the upstream format", - "type": "array", - "items": { - "type": "string", - "enum": ["Username and Password", "Token"], - "default": "Username and Password" - } - }, - "caching": { - "title": "Caching", - "description": "If true the upstream format supports caching", - "type": "boolean" - }, - "indexing": { - "title": "Indexing", - "description": "If true the upstream format supports indexing", - "type": "boolean" - }, - "indexing_behavior": { - "title": "Indexing behavior", - "description": "The behavior of the upstream when indexing", - "type": "string", - "enum": ["Unsupported", "Ahead-of-time (static) indexing", "Just-in-time (dynamic) indexing"], - "default": "Unsupported" - }, - "proxying": { - "title": "Proxying", - "description": "If true the upstream format supports proxying", - "type": "boolean" - }, - "signature_verification": { - "title": "Signature verification", - "description": "The signature verification supported by the upstream format", - "type": "string", - "enum": ["Unsupported", "Repository Metadata", "Packages", "Repository Metadata and Packages"], - "default": "Unsupported" - } - } - }, - "FormatSupport": { - "description": "A set of what the package format supports", - "required": ["dependencies", "distributions", "file_lists", "metadata", "upstreams", "versioning"], - "type": "object", - "properties": { - "dependencies": { - "title": "Dependencies", - "description": "If true the package format supports dependencies", - "type": "boolean" - }, - "distributions": { - "title": "Distributions", - "description": "If true the package format supports distributions", - "type": "boolean" - }, - "file_lists": { - "title": "File lists", - "description": "If true the package format supports file lists", - "type": "boolean" - }, - "metadata": { - "title": "Metadata", - "description": "If true the package format supports metadata", - "type": "boolean" - }, - "upstreams": { - "$ref": "#/components/schemas/FormatSupportUpstream" - }, - "versioning": { - "title": "Versioning", - "description": "If true the package format supports versioning", - "type": "boolean" - } - } - }, - "Format": { - "required": ["description", "extensions", "name", "premium", "slug", "supports"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the package format", - "type": "string", - "minLength": 1 - }, - "distributions": { - "description": "The distributions supported by this package format", - "type": "array", - "items": { - "$ref": "#/components/schemas/Distribution" - }, - "nullable": true - }, - "extensions": { - "description": "A non-exhaustive list of extensions supported", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "name": { - "title": "Name", - "description": "Name for the package format", - "type": "string", - "minLength": 1 - }, - "premium": { - "title": "Premium", - "description": "If true the package format is a premium-only feature", - "type": "boolean" - }, - "premium_plan_id": { - "title": "Premium plan id", - "description": "The minimum plan id required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "premium_plan_name": { - "title": "Premium plan name", - "description": "The minimum plan name required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug": { - "title": "Slug", - "description": "Slug for the package format", - "type": "string", - "minLength": 1 - }, - "supports": { - "$ref": "#/components/schemas/FormatSupport" - } - } - }, - "InternalUserConfirmRequest": { - "required": ["key"], - "type": "object", - "properties": { - "key": { - "title": "Key", - "type": "string", - "maxLength": 64, - "minLength": 1 - } - } - }, - "InternalUserConfirm": { - "required": ["key"], - "type": "object", - "properties": { - "key": { - "title": "Key", - "type": "string", - "maxLength": 64, - "minLength": 1 - } - } - }, - "PrivilegeEscalation": { - "required": ["type"], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for verification.", - "type": "string", - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "description": "TOTP code for verification.", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "description": "The type of verification used.", - "type": "string", - "enum": ["totp", "password"] - } - } - }, - "InternalUserLoginRequest": { - "required": ["email", "password"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "Email address for the user to authenticate.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for the user to authenticate.", - "type": "string", - "minLength": 1 - }, - "remote_addr": { - "title": "Remote addr", - "description": "The IP address of the client requesting the user login.", - "type": "string", - "minLength": 1 - }, - "user_agent": { - "title": "User agent", - "description": "The user agent of the client requesting the user login.", - "type": "string", - "default": "", - "minLength": 1 - } - } - }, - "InternalUserLogin": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "two_factor_token": { - "title": "Two factor token", - "description": "The JWT to use for 2FA.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserRequestPasswordResetRequest": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserRequestPasswordReset": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserResetPasswordRequest": { - "required": ["key", "password"], - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Password reset token.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Enter a new password.", - "type": "string", - "minLength": 1 - } - } - }, - "UserResetPassword": { - "type": "object", - "properties": {} - }, - "InternalUserSignupRequest": { - "required": ["email", "first_name", "last_name", "password"], - "type": "object", - "properties": { - "accept_terms": { - "title": "Accept terms", - "description": "If true, the user accepts the terms and conditions.", - "type": "boolean", - "default": false - }, - "company_name": { - "title": "Company name", - "description": "Company of new user.", - "type": "string", - "nullable": true - }, - "crm_properties": { - "title": "Crm properties", - "description": "A set of crm properties to be associated with this user.", - "type": "object" - }, - "email": { - "title": "Email", - "description": "Email address for the new user account.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "first_name": { - "title": "First name", - "description": "First name for the new user account.", - "type": "string", - "minLength": 1 - }, - "job_title": { - "title": "Job title", - "description": "Job Title of new user.", - "type": "string", - "nullable": true - }, - "last_name": { - "title": "Last name", - "description": "Last name for the new user account.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for the new user account (can be null for no password).", - "type": "string", - "minLength": 1, - "nullable": true - }, - "remote_addr": { - "title": "Remote addr", - "description": "The IP address of the client requesting the signup.", - "type": "string", - "minLength": 1 - }, - "subscribe_emails": { - "title": "Subscribe emails", - "description": "If true, the user subscribes to mail shots.", - "type": "boolean", - "default": false - }, - "user_agent": { - "title": "User agent", - "description": "The user agent of the client requesting the signup.", - "type": "string", - "default": "", - "minLength": 1 - } - } - }, - "InternalUserSignup": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The generated identifier for the new account", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "needs_confirmation": { - "title": "Needs confirmation", - "description": "If true, the email address / account needs confirmed.", - "type": "boolean", - "readOnly": true - }, - "redirect_url": { - "title": "Redirect url", - "description": "The URL to redirect the client to post-success.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "username": { - "title": "Username", - "description": "The generated username for the new account", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InternalUserTwoFactorRequest": { - "required": ["totp_token", "two_factor_token"], - "type": "object", - "properties": { - "totp_token": { - "title": "Totp token", - "description": "The TOTP token to use for 2FA validation.", - "type": "string", - "minLength": 1 - }, - "two_factor_token": { - "title": "Two factor token", - "description": "The JWT to use for 2FA validation.", - "type": "string", - "minLength": 1 - } - } - }, - "InternalUserTwoFactor": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InternalUserZendeskTokenRequest": { - "required": ["access_token"], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT that identifies the user.", - "type": "string", - "minLength": 1 - } - } - }, - "InternalUserZendeskToken": { - "type": "object", - "properties": { - "token": { - "title": "Token", - "description": "The JWT to use for Zendesk authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "License": { - "type": "object", - "properties": { - "full_name": { - "title": "Full name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the license.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "spdx_identifier": { - "title": "Spdx identifier", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "CommonBandwidthMetricsValue": { - "description": "Average bandwidth usage in the specified period, e.g. a day", - "required": ["display", "value"], - "type": "object", - "properties": { - "display": { - "title": "Display", - "description": "Bandwidth usage value", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "units": { - "title": "Units", - "description": "Unit of measurement e.g. bytes", - "type": "string", - "default": "bytes", - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "Human readable version of display value", - "type": "integer" - } - } - }, - "CommonBandwidthMetrics": { - "required": ["average", "highest", "lowest", "total"], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - } - } - }, - "CommonDownloadsMetricsValue": { - "required": ["value"], - "type": "object", - "properties": { - "value": { - "title": "Value", - "type": "integer" - } - } - }, - "CommonDownloadsMetrics": { - "required": ["average", "highest", "lowest", "total"], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - } - } - }, - "CommonMetrics": { - "required": ["bandwidth", "downloads"], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "Number of packages with at least 1 download", - "type": "integer", - "default": 0 - }, - "bandwidth": { - "$ref": "#/components/schemas/CommonBandwidthMetrics" - }, - "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": ["tokens"], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": ["packages"], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "OidcRequest": { - "required": ["oidc_token", "service_slug"], - "type": "object", - "properties": { - "oidc_token": { - "title": "Oidc token", - "description": "Serialized OIDC token.", - "type": "string", - "minLength": 1 - }, - "service_slug": { - "title": "Service slug", - "description": "Slug for the service account.", - "type": "string", - "minLength": 1 - } - } - }, - "Oidc": { - "type": "object", - "properties": {} - }, - "Organization": { - "required": ["name"], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationRequest": { - "required": ["name"], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationUserTokenPolicy": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - } - } - }, - "OrganizationUserTokenPolicyRequest": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationUserTokenPolicyRequestPatch": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfig": { - "required": ["color_accent", "color_background", "color_text"], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequest": { - "required": ["color_accent", "color_background", "color_text"], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequestPatch": { - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } + "servers": [ + { + "url": "https://api.cloudsmith.io" } - }, - "OrganizationCustomDomainNestedRepo": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - } - } - }, - "OrganizationCustomDomains": { - "required": ["repository"], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 99 - ], - "readOnly": true, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "dns_alias_value": { - "title": "Dns alias value", - "description": "The CNAME value to use to publish this domain publicly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_name": { - "title": "Dns cert name", - "description": "The CNAME name to create to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_value": { - "title": "Dns cert value", - "description": "The CNAME value to use to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [0, 1, 2, 3], - "readOnly": true, - "default": 0 - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationDefaultObjectPrivileges": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - } - } - }, - "OrganizationDefaultObjectPrivilegesRequest": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - } - } - }, - "PackageDenyPolicy": { - "required": ["package_query_string"], - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": ["Block downloads"], - "readOnly": true, - "default": "Block downloads" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], - "readOnly": true, - "default": "In Progress" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PackageDenyPolicyRequest": { - "required": ["package_query_string"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "PackageDenyPolicyRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationGlobalPrivileges": { - "required": ["label", "privilege", "selected"], - "type": "object", - "properties": { - "label": { - "title": "Label", - "type": "string", - "minLength": 1 - }, - "privilege": { - "title": "Privilege", - "type": "string", - "minLength": 1 - }, - "selected": { - "title": "Selected", - "type": "boolean" - } - } - }, - "OrganizationTeamInvite": { - "required": ["team"], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user in the team.", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationInvite": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationInviteRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationInviteUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - } - } - }, - "OrganizationInviteUpdate": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - } - } - }, - "OrganizationInviteExtend": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm of the invite to be extended.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageVulnerability": { - "required": ["identifier"], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "NestedLicensePolicy": { - "required": ["spdx_identifiers"], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageLicensePolicyViolationLog": { - "required": ["package", "policy", "reasons"], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "OrganizationPackageLicensePolicy": { - "required": ["name", "spdx_identifiers"], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageLicensePolicyRequest": { - "required": ["name", "spdx_identifiers"], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackageLicensePolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageLicensePolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageLicensePolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationMembership": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "is_active": { - "title": "Is active", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": ["Unknown", "Password", "Social", "SAML"], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Public", "Private"], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipRequestPatch": { - "type": "object", - "properties": {} - }, - "OrganizationMembershipRoleUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Owner" - } - } - }, - "OrganizationMembershipRoleUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": ["Unknown", "Password", "Social", "SAML"], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Public", "Private"], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdateRequestPatch": { - "type": "object", - "properties": { - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Public", "Private"], - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": ["Unknown", "Password", "Social", "SAML"], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Public", "Private"], - "default": "Public" - } - } - }, - "ProviderSettings": { - "required": ["claims", "enabled", "name", "provider_url", "service_accounts"], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": ["claims", "enabled", "name", "provider_url", "service_accounts"], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackagePolicyViolationsLicense": { - "required": ["package", "policy", "reasons"], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": ["Low", "Medium", "High", "Critical"], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NestedVulnerabilityScanResults": { - "required": ["identifier", "scan_id"], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": ["Unknown", "Low", "Medium", "High", "Critical"], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackagePolicyViolationsVulnerability": { - "required": ["package", "policy", "reasons", "vulnerability_scan_results"], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationSAMLAuth": { - "required": ["saml_auth_enabled", "saml_auth_enforced"], - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationSAMLAuthRequestPatch": { - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGroupSync": { - "required": ["idp_key", "idp_value", "team"], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncRequest": { - "required": ["idp_key", "idp_value", "organization", "team"], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "organization": { - "title": "Organization", - "type": "string" - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncStatus": { - "type": "object", - "properties": { - "saml_group_sync_status": { - "title": "Saml group sync status", - "type": "boolean", - "readOnly": true - } - } - }, - "OrganizationSCIM": { - "required": ["scim_enabled"], - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - }, - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationSCIMRequestPatch": { - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - } - } - }, - "OrganizationSCIMToken": { - "type": "object", - "properties": { - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "ServiceTeams": { - "required": ["slug"], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The team role associated with the service", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Manager" - }, - "slug": { - "title": "Slug", - "description": "The teams associated with the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "Service": { - "required": ["name"], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "key": { - "title": "Key", - "description": "The API key of the service", - "type": "string", - "readOnly": true - }, - "key_expires_at": { - "title": "Key expires at", - "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "slug": { - "title": "Slug", - "description": "The slug of the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequest": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "OrganizationGeneralSettings": { - "required": ["email", "name"], - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": ["Visible", "Hidden"], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGeneralSettingsRequestPatch": { - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": ["Visible", "Hidden"], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationRenameSlugRequest": { - "required": ["slug"], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationRenameSlug": { - "required": ["slug"], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "OrganizationTeam": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Visible", "Hidden"], - "default": "Visible" - } - } - }, - "OrganizationTeamRequest": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Visible", "Hidden"], - "default": "Visible" - } - } - }, - "OrganizationTeamRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": ["Visible", "Hidden"], - "default": "Visible" - } - } - }, - "OrganizationTeamMembership": { - "description": "The team members", - "required": ["role", "user"], - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"] - }, - "user": { - "title": "User", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamMembers": { - "required": ["members"], - "type": "object", - "properties": { - "members": { - "description": "The team members", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMembership" + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } + } + } + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } + } + } + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } + } + } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" + } + } + } + }, + "SwiftUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequest" + } + } + } + }, + "NpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequest" + } + } + } + }, + "SwiftPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUploadRequest" + } + } + } + }, + "HexUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequest" + } + } + } + }, + "RubyPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUploadRequest" + } + } + } + }, + "CargoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUploadRequest" + } + } + } + }, + "RubyUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequest" + } + } + } + }, + "RpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequest" + } + } + } + }, + "MavenUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequest" + } + } + } + }, + "OrganizationTeamMembers": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "VagrantPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUploadRequest" + } + } + } + }, + "GoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequest" + } + } + } + }, + "ConanPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUploadRequest" + } + } + } + }, + "RawPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUploadRequest" + } + } + } + }, + "HelmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequest" + } + } + } + }, + "NugetUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequest" + } + } + } + }, + "TerraformPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUploadRequest" + } + } + } + }, + "PackageFileUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUploadRequest" + } + } + } + }, + "PackageDenyPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequest" + } + } + } + }, + "ProviderSettingsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequest" + } + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" + } + } + } + }, + "AlpinePackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUploadRequest" + } + } + } + }, + "CocoapodsPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" + } + } + } + }, + "ComposerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUploadRequest" + } + } + } + }, + "CondaPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUploadRequest" + } + } + } + }, + "CranPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUploadRequest" + } + } + } + }, + "DartPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUploadRequest" + } + } + } + }, + "DebPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUploadRequest" + } + } + } + }, + "DockerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUploadRequest" + } + } + } + }, + "HelmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUploadRequest" + } + } + } + }, + "HexPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUploadRequest" + } + } + } + }, + "LuarocksPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUploadRequest" + } + } + } + }, + "MavenPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUploadRequest" + } + } + } + }, + "NpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUploadRequest" + } + } + } + }, + "NugetPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUploadRequest" + } + } + } + }, + "P2PackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUploadRequest" + } + } + } + }, + "PythonPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUploadRequest" + } + } + } + }, + "RpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUploadRequest" + } + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" + } + } + } + }, + "ComposerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequest" + } + } + } + }, + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } + } + } + }, + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } + } + } + }, + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } + } + } } - } - } - }, - "OrganizationEditTeamMemberRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Manager" - } - } - }, - "OrganizationEditTeamMember": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"], - "default": "Manager" - } - } - }, - "OrganizationTeamMember": { - "required": ["role"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": ["Manager", "Member"] - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationUsage": { - "type": "object", - "properties": { - "bandwidth_overage_limit": { - "title": "Package Delivery On-Demand Limit (GBs)", - "description": "The on-demand limit for package delivery usage (in GBs).", - "type": "integer", - "nullable": true - }, - "storage_overage_limit": { - "title": "Artifact Data On-Demand Limit (GBs)", - "description": "The on-demand limit for artifact data usage (in GBs).", - "type": "integer", - "nullable": true - } - } - }, - "OrganizationUsageUpdateRequestPatch": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "OrganizationUsageUpdate": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyViolationLog": { - "required": ["package", "policy", "reasons", "vulnerability_scan_results"], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" + }, + "basic": { + "type": "http", + "scheme": "basic" } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationPackageVulnerabilityPolicy": { - "required": ["name"], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": ["Low", "Medium", "High", "Critical"], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "required": ["name"], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": ["Low", "Medium", "High", "Critical"], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageVulnerabilityPolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": ["Low", "Medium", "High", "Critical"], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "DockerLayerReference": { - "type": "object", - "properties": { - "command": { - "title": "Command", - "description": "The V1 command for managing the layer.", - "type": "string", - "readOnly": true - }, - "digest": { - "title": "Digest", - "description": "The digest of the layer.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_empty": { - "title": "Is empty", - "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", - "type": "boolean", - "readOnly": true - }, - "layer_type": { - "title": "Layer type", - "description": "The type of layer this is relative to image.", - "type": "string", - "enum": ["Base Layer", "Intermediate Layer", "Final Layer"], - "readOnly": true, - "default": "Base Layer" - }, - "mount_type": { - "title": "Mount type", - "description": "The Mount Type for the layer.", - "type": "string", - "enum": ["Local", "Remote"], - "readOnly": true, - "default": "Local" - }, - "processed": { - "title": "Processed", - "description": "Has the layer been processed.", - "type": "boolean", - "readOnly": true - }, - "size": { - "title": "Size", - "description": "The size of the layer (in bytes).", - "type": "integer", - "readOnly": true - } - } - }, - "DockerPackageAdditionalDetails": { - "type": "object", - "properties": { - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - }, - "package_type": { - "title": "Package type", - "description": "The type of the docker package i.e. a manifest or manifest list.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Architecture": { - "required": ["name"], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "PackageFile": { - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true, - "nullable": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_primary": { - "title": "Is primary", - "type": "boolean", - "readOnly": true - }, - "is_synchronised": { - "title": "Is synchronised", - "type": "boolean", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the file.", - "type": "integer", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "tag": { - "title": "Tag", - "description": "Freeform descriptor that describes what the file is.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "Tags": { - "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", - "type": "object", - "properties": {} - }, - "Package": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageGroup": { - "required": ["count", "last_push", "num_downloads", "size"], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "type": "integer" - }, - "count": { - "title": "Count", - "type": "integer", - "nullable": true - }, - "last_push": { - "title": "Last push", - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "integer", - "nullable": true - }, - "size": { - "title": "Size", - "type": "integer", - "nullable": true - } - } - }, - "AlpinePackageUploadRequest": { - "required": ["distribution", "package_file"], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "AlpinePackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CargoPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CargoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CocoapodsPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CocoapodsPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ComposerPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ComposerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ConanPackageUploadRequest": { - "required": ["info_file", "manifest_file", "metadata_file", "package_file"], - "type": "object", - "properties": { - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "info_file": { - "title": "Info file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "manifest_file": { - "title": "Manifest file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "metadata_file": { - "title": "Metadata file", - "description": "The conan file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ConanPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CondaPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CondaPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CranPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "architecture": { - "title": "Architecture", - "description": "Binary package uploads for macOS should specify the architecture they were built for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CranPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DartPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DartPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DebPackageUploadRequest": { - "required": ["distribution", "package_file"], - "type": "object", - "properties": { - "changes_file": { - "title": "Changes file", - "description": "The changes archive containing the changes made to the source and debian packaging files", - "type": "string", - "minLength": 1, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", - "type": "string", - "pattern": "^[-_.\\w]+$", - "default": "main", - "maxLength": 64, - "minLength": 1 - }, - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sources_file": { - "title": "Sources file", - "description": "The sources archive containing the source code for the binary", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DebPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DockerPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DockerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "GoPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "GoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HelmPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provenance_file": { - "title": "Provenance file", - "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HelmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HexPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HexPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "LuarocksPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "LuarocksPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "MavenPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "ivy_file": { - "title": "Ivy file", - "description": "The ivy file is an XML file describing the dependencies of the project.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "javadoc_file": { - "title": "Javadoc file", - "description": "Adds bundled Java documentation to the Maven package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "pom_file": { - "title": "Pom file", - "description": "The POM file is an XML file containing the Maven coordinates.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "sources_file": { - "title": "Sources file", - "description": "Adds bundled Java source code to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "tests_file": { - "title": "Tests file", - "description": "Adds bundled Java tests to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "MavenPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NpmPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "npm_dist_tag": { - "title": "Npm dist tag", - "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", - "type": "string", - "default": "latest", - "maxLength": 255, - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NugetPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "symbols_file": { - "title": "Symbols file", - "description": "Uploads a symbols file as a separate package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NugetPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "P2PackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "P2PackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PythonPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "PythonPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RawPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "content_type": { - "title": "Content/Media Type", - "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "RawPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RpmPackageUploadRequest": { - "required": ["distribution", "package_file"], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RubyPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RubyPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "SwiftPackageUploadRequest": { - "required": ["name", "package_file", "scope", "version"], - "type": "object", - "properties": { - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "SwiftPackageUpload": { - "required": ["name", "scope", "version"], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "TerraformPackageUploadRequest": { - "required": ["package_file"], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "TerraformPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VagrantPackageUploadRequest": { - "required": ["name", "package_file", "provider", "version"], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "VagrantPackageUpload": { - "required": ["name", "provider", "version"], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageCopyRequest": { - "required": ["destination"], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - } - } - }, - "PackageCopy": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be copied to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageDependency": { - "type": "object", - "properties": { - "dep_type": { - "title": "Dep type", - "type": "string", - "enum": [ - "Depends", - "Pre-Depends", - "Recommends", - "Suggests", - "Enhances", - "Replaces", - "Breaks", - "Built-Using", - "Build-Depends", - "Build-Depends-Indep", - "Build-Conflicts", - "Build-Conflicts-Indep", - "Conflicts", - "Provides", - "Obsoletes", - "Requires", - "Runtime", - "Development", - "Compile", - "Provided", - "Test", - "System", - "Import", - "Excluded", - "Build-Requires", - "Python-Requires" - ], - "readOnly": true, - "default": "Depends" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "maxLength": 255, - "minLength": 1 - }, - "operator": { - "title": "Operator", - "type": "string", - "enum": ["=", "!=", "<", "<<", "<=", ">", ">>", ">=", "~=", "~>", "matches"], - "readOnly": true, - "default": "=", - "nullable": true - }, - "version": { - "title": "Version", - "type": "string", - "readOnly": true, - "maxLength": 128, - "minLength": 1, - "nullable": true - } - } - }, - "PackageDependencies": { - "required": ["dependencies"], - "type": "object", - "properties": { - "dependencies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDependency" - } - } - } - }, - "PackageMoveRequest": { - "required": ["destination"], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - } - } - }, - "PackageMove": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be moved to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageQuarantineRequest": { - "type": "object", - "properties": { - "release": { - "title": "Release", - "description": "If true, the package is released from quarantine.", - "type": "boolean" - }, - "restore": { - "title": "Restore", - "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", - "type": "boolean" - } - } - }, - "PackageQuarantine": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageResync": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageStatus": { - "type": "object", - "properties": { - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - } - } - }, - "PackageTagRequest": { - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": ["Add", "Clear", "Replace", "Remove"], - "default": "Add", - "nullable": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "tags": { - "description": "A list of tags to apply the action to. Not required for clears.", - "type": "array", - "items": { - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "default": [], - "nullable": true - } - } - }, - "PackageTag": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [1, 2, 3, 9], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [1, 2, 3, 4, 5, 6, 7], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "Usage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageUsage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "HistoryFieldset": { - "required": ["downloaded", "storage_used", "uploaded"], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/Usage" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsage" - }, - "uploaded": { - "$ref": "#/components/schemas/Usage" - } - } - }, - "UsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageUsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "HistoryFieldsetRaw": { - "required": ["downloaded", "storage_used", "uploaded"], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/UsageRaw" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsageRaw" - }, - "uploaded": { - "$ref": "#/components/schemas/UsageRaw" - } - } - }, - "History": { - "required": ["display", "end", "plan", "raw", "start"], - "type": "object", - "properties": { - "days": { - "title": "Days", - "type": "integer", - "default": 0 - }, - "display": { - "$ref": "#/components/schemas/HistoryFieldset" - }, - "end": { - "title": "End", - "type": "string", - "format": "date-time" - }, - "plan": { - "title": "Plan", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "raw": { - "$ref": "#/components/schemas/HistoryFieldsetRaw" - }, - "start": { - "title": "Start", - "type": "string", - "format": "date-time" - } - } - }, - "QuotaHistory": { - "required": ["history"], - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/components/schemas/History" - } - } - } - }, - "AllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageAllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "UsageLimits": { - "required": ["bandwidth", "storage"], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimit" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimit" - } - } - }, - "AllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageAllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "UsageLimitsRaw": { - "required": ["bandwidth", "storage"], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimitRaw" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimitRaw" - } - } - }, - "UsageFieldset": { - "required": ["display", "raw"], - "type": "object", - "properties": { - "display": { - "$ref": "#/components/schemas/UsageLimits" - }, - "raw": { - "$ref": "#/components/schemas/UsageLimitsRaw" - } - } - }, - "Quota": { - "required": ["usage"], - "type": "object", - "properties": { - "usage": { - "$ref": "#/components/schemas/UsageFieldset" - } - } - }, - "RateCheck": { - "type": "object", - "properties": { - "interval": { - "title": "Interval", - "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", - "type": "number", - "readOnly": true - }, - "limit": { - "title": "Limit", - "description": "The maximum number of requests that you are permitted to send per hour", - "type": "integer", - "readOnly": true - }, - "remaining": { - "title": "Remaining", - "description": "The number of requests that are remaining in the current rate limit window", - "type": "integer", - "readOnly": true - }, - "reset": { - "title": "Reset", - "description": "The UTC epoch timestamp at which the current rate limit window will reset", - "type": "integer", - "readOnly": true - }, - "reset_iso_8601": { - "title": "Reset iso 8601", - "description": "The ISO 8601 datetime at which the current rate limit window will reset", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "throttled": { - "title": "Throttled", - "description": "If true, throttling is currently being enforced.", - "type": "boolean", - "readOnly": true - } - } - }, - "ResourcesRateCheck": { - "type": "object", - "properties": { - "resources": { - "title": "Resources", - "description": "Rate limit values per resource", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RateCheck" - }, - "readOnly": true - } - } - }, - "RepositoryEcdsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryGpgKey": { - "required": ["comment"], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "comment": { - "title": "Comment", - "type": "string", - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by GPG for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Repository": { - "required": ["name"], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": ["Standard", "Distribution", "Upstream"], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [1, 2, 3], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": ["Public", "Private", "Open-Source"], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "readOnly": true, - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - } - } - }, - "RepositoryCreateRequest": { - "required": ["name"], - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": ["Standard", "Distribution", "Upstream"], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": ["Public", "Private", "Open-Source"], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - } - } - }, - "RepositoryCreate": { - "required": ["name"], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": ["Standard", "Distribution", "Upstream"], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [1, 2, 3], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": ["Public", "Private", "Open-Source"], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - } - } - }, - "RepositoryRequestPatch": { - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": ["Standard", "Distribution", "Upstream"], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": ["Admin", "Write", "Read", "None"], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": ["Public", "Private", "Open-Source"], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": ["Admin", "Write"], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": ["Admin", "Write", "Read"], - "default": "Read" - } - } - }, - "RepositoryEcdsaKeyCreate": { - "required": ["ecdsa_private_key"], - "type": "object", - "properties": { - "ecdsa_passphrase": { - "title": "Ecdsa passphrase", - "description": "The ECDSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "ecdsa_private_key": { - "title": "Ecdsa private key", - "description": "The ECDSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpCidr": { - "required": ["allow", "deny"], - "type": "object", - "properties": { - "allow": { - "description": "The allowed CIDRs for this repository", - "type": "array", - "items": { - "description": "The allowed CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied CIDRs for this repository", - "type": "array", - "items": { - "description": "The denied CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpCountryCode": { - "required": ["allow", "deny"], - "type": "object", - "properties": { - "allow": { - "description": "The allowed country codes for this repository", - "type": "array", - "items": { - "description": "The allowed country codes for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied country codes for this repository", - "type": "array", - "items": { - "description": "The denied country codes for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpRules": { - "required": ["cidr", "country_code"], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequest": { - "required": ["cidr", "country_code"], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "type": "object", - "properties": {} - }, - "RespositoryGeoIpEnableDisable": { - "type": "object", - "properties": {} - }, - "RepositoryGeoIpStatus": { - "type": "object", - "properties": { - "geoip_enabled": { - "title": "Geo/IP Restriction Enabled?", - "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", - "type": "boolean", - "readOnly": true - } - } - }, - "RepositoryGeoIpTestAddress": { - "required": ["addresses"], - "type": "object", - "properties": { - "addresses": { - "description": "The IP addresses to test against this repository", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "RepositoryGeoIpTestAddressResponseDict": { - "required": ["allowed", "country_code", "ip_address", "reason"], - "type": "object", - "properties": { - "allowed": { - "title": "Allowed", - "description": "The result of the IP test", - "type": "boolean" - }, - "country_code": { - "title": "Country code", - "description": "The country code of the tested IP address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "ip_address": { - "title": "Ip address", - "description": "The IP address that was tested", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "The reason for the result", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpTestAddressResponse": { - "required": ["addresses"], - "type": "object", - "properties": { - "addresses": { - "description": "The IP address test results ordered by allowed", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" - } - } - } - }, - "RepositoryGpgKeyCreate": { - "required": ["gpg_private_key"], - "type": "object", - "properties": { - "gpg_passphrase": { - "title": "Gpg passphrase", - "description": "The GPG passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "gpg_private_key": { - "title": "Gpg private key", - "description": "The GPG private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeDict": { - "required": ["privilege"], - "type": "object", - "properties": { - "privilege": { - "title": "Privilege", - "description": "The level of privilege that the user or team should be granted to the specified repository.", - "type": "string", - "enum": ["Admin", "Write", "Read"] - }, - "service": { - "title": "Service", - "description": "The service identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "user": { - "title": "User", - "description": "The user identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeInput": { - "required": ["privileges"], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequest": { - "required": ["privileges"], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequestPatch": { - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryRsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by RSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by RSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryRsaKeyCreate": { - "required": ["rsa_private_key"], - "type": "object", - "properties": { - "rsa_passphrase": { - "title": "Rsa passphrase", - "description": "The RSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "rsa_private_key": { - "title": "Rsa private key", - "description": "The RSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "ComposerUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstream": { - "required": ["distro_versions", "name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequest": { - "required": ["distro_versions", "name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password", "Token"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password", "Token"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password", "Token"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstream": { - "required": ["distro_version", "name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequest": { - "required": ["distro_version", "name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstream": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequest": { - "required": ["name", "upstream_url"], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": ["None", "Username and Password"], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": ["Proxy Only", "Cache and Proxy"], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509Certificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "EulaCreate": { - "required": ["content"], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "integer", - "readOnly": true, - "nullable": true - } - } - }, - "EulaCreateRequest": { - "required": ["content"], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdateRequestPatch": { - "required": ["content"], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdate": { - "required": ["content"], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "integer", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTransferOwnerRequest": { - "required": ["destination_org"], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTransferOwner": { - "required": ["destination_org"], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "0.0.0", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": ["label", "slug"], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "MetricsRequest": { - "type": "object", - "properties": { - "backend_type": { - "title": "Backend type", - "type": "string", - "enum": [ - "DEB", - "RPM", - "RUBY", - "PYTHON", - "MAVEN", - "BOWER", - "DOCKER", - "RAW", - "CHOCOLATEY", - "NPM", - "NUGET", - "VAGRANT", - "COMPOSER", - "ALPINE", - "HELM", - "CONAN", - "CARGO", - "LUAROCKS", - "CRAN", - "GO", - "DART", - "COCOAPODS", - "TERRAFORM", - "P2", - "CONDA", - "HEX", - "SWIFT", - "DEFAULT" - ] - }, - "end_time": { - "title": "End time", - "type": "string", - "format": "date" - }, - "interval": { - "title": "Interval", - "type": "string", - "enum": ["day", "week", "month"], - "default": "day" - }, - "repository_slugs": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "repository_type": { - "title": "Repository type", - "type": "string", - "enum": ["PUBLIC", "PRIVATE", "OPEN_SOURCE"] - }, - "start_time": { - "title": "Start time", - "type": "string", - "format": "date" - }, - "user_type": { - "title": "User type", - "type": "string", - "enum": ["USER", "SERVICE"] - } - } - }, - "AdditionalOnboardingActions": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [401, 402, 501, 601, 602, 603] - }, - "completed": { - "title": "Completed", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "type": "string", - "readOnly": true - }, - "kind": { - "title": "Kind", - "type": "string", - "readOnly": true - }, - "label": { - "title": "Label", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "verb": { - "title": "Verb", - "type": "string", - "readOnly": true - } - } - }, - "AdditionalOnboardingActionsRequestPatch": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [401, 402, 501, 601, 602, 603] - }, - "completed": { - "title": "Completed", - "type": "boolean" - } - } - }, - "UserDefaultOrg": { - "required": ["org_slug"], - "type": "object", - "properties": { - "org_name": { - "title": "Org name", - "description": "The descriptive name for the user's default organization.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "org_slug_perm": { - "title": "Org slug perm", - "description": "The slug_perm of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserDefaultOrgRequestPatch": { - "type": "object", - "properties": { - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "EmailAddress": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddressRequest": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddress": { - "required": ["email"], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "UpdatePrimaryEmail": { - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean", - "readOnly": true - } - } - }, - "EmailAddressResendConfirmation": { - "type": "object", - "properties": {} - }, - "UserOrganizationInvite": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "UserOrganizationInviteRequest": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": ["Owner", "Manager", "Member", "Collaborator"], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "Location": { - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "readOnly": true - }, - "country": { - "title": "Country", - "type": "string", - "readOnly": true - } - } - }, - "UserLoginHistory": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "method": { - "title": "Method", - "type": "string", - "readOnly": true - }, - "method_context": { - "title": "Method context", - "type": "string", - "readOnly": true, - "nullable": true - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserLogoutOtherSessions": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserPasswordRequest": { - "required": ["confirm_new_password", "current_password", "new_password"], - "type": "object", - "properties": { - "confirm_new_password": { - "title": "Confirm new password", - "description": "Confirming the new password for the current user.", - "type": "string", - "minLength": 1 - }, - "current_password": { - "title": "Current password", - "description": "The current user's password.", - "type": "string", - "minLength": 1 - }, - "new_password": { - "title": "New password", - "description": "The new password for the current user.", - "type": "string", - "minLength": 1 - } - } - }, - "UserPassword": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Permission": { - "description": "A list of permissions to check if permissible.", - "required": ["name"], - "type": "object", - "properties": { - "args": { - "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "context": { - "title": "Context", - "description": "Any additional context for why a permission check failed.", - "type": "string", - "readOnly": true, - "maxLength": 512, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The qualified name of the permission; e.g. package.upload_packages", - "type": "string", - "maxLength": 256, - "minLength": 1 - }, - "permissible": { - "title": "Permissible", - "description": "If permissible is true, then the user has the specified permission.", - "type": "boolean", - "readOnly": true, - "default": false - } - } - }, - "Permissions": { - "required": ["permissions"], - "type": "object", - "properties": { - "permissions": { - "description": "A list of permissions to check if permissible.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "User": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "onboarding_actions": { - "title": "Onboarding actions", - "type": "string", - "readOnly": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": ["Public", "Private"], - "default": "Private" - } - } - }, - "UserRequestPatch": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": ["Public", "Private"], - "default": "Private" - } - } - }, - "UserRefreshWebTokenRequest": { - "required": ["refresh_token"], - "type": "object", - "properties": { - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserRefreshWebToken": { - "required": ["refresh_token"], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserBrief": { - "type": "object", - "properties": { - "authenticated": { - "title": "Authenticated", - "description": "If true then you're logged in as a user.", - "type": "boolean", - "readOnly": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSession": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSlugRequestPatch": { - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "UserSlug": { - "required": ["slug"], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "SoftDeleteUser": { - "type": "object", - "properties": {} - }, - "UserAuthTokenRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "Email address to authenticate with", - "type": "string", - "format": "email", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password to authenticate with", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthToken": { - "type": "object", - "properties": { - "token": { - "title": "Token", - "description": "API token for the authenticated user", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserApiCidr": { - "required": ["cidr"], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "An auto-generated id that uniquely identifies the object.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1, - "nullable": true - } - } - }, - "UserApiCidrRequest": { - "required": ["cidr"], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserApiCidrRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthenticationToken": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "The time at which the API key was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm for token.", - "type": "string", - "readOnly": true - } - } - }, - "TOTPRequest": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [6, 8] - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - }, - "token": { - "title": "Token", - "description": "Token for TOTP Device confirmation", - "type": "string", - "minLength": 1 - } - } - }, - "TOTP": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [6, 8] - }, - "qr_code_encoded_image": { - "title": "Qr code encoded image", - "description": "Base64 Encoded QR Image", - "type": "string", - "readOnly": true - }, - "secret_key": { - "title": "Secret key", - "description": "TOTP Secret Key", - "type": "string", - "readOnly": true - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - } - } - }, - "TOTPSettings": { - "required": ["enforce_saml_2fa"], - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - }, - "is_2fa_backup_codes_enabled": { - "title": "Is 2fa backup codes enabled", - "description": "Is 2FA Backup Codes enabled for the authenticated user", - "type": "boolean", - "readOnly": true - }, - "is_2fa_enabled": { - "title": "Is 2fa enabled", - "description": "Is 2FA enabled for the authenticated user", - "type": "boolean", - "readOnly": true - } - } - }, - "TOTPSettingsRequestPatch": { - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - } - } - }, - "UserProfile": { - "required": ["first_name", "last_name"], - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time" - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VulnerabilityScanResultsList": { - "required": ["identifier", "package", "scan_id"], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": ["Unknown", "Low", "Medium", "High", "Critical"], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - } - } - }, - "VulnerabilityScanVersion": { - "required": ["major", "minor", "patch"], - "type": "object", - "properties": { - "major": { - "title": "Major", - "type": "integer" - }, - "minor": { - "title": "Minor", - "type": "integer" - }, - "operator": { - "title": "Operator", - "type": "string", - "default": "", - "maxLength": 32, - "minLength": 1 - }, - "patch": { - "title": "Patch", - "type": "integer" - }, - "raw_version": { - "title": "Raw version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - }, - "version": { - "title": "Version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - } - } - }, - "Vulnerability": { - "required": [ - "affected_version", - "description", - "fixed_version", - "package_name", - "references", - "severity_source", - "title", - "vulnerability_id" - ], - "type": "object", - "properties": { - "affected_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 1028, - "minLength": 1 - }, - "fixed_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "package_name": { - "title": "Package name", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "references": { - "type": "array", - "items": { - "type": "string", - "maxLength": 2048, - "minLength": 1 - } - }, - "severity": { - "title": "Severity", - "type": "string", - "enum": ["Unknown", "Low", "Medium", "High", "Critical"], - "default": "Unknown" - }, - "severity_source": { - "title": "Severity source", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "title": { - "title": "Title", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "vulnerability_id": { - "title": "Vulnerability id", - "type": "string", - "maxLength": 13, - "minLength": 1 - } - } - }, - "VulnerabilityScan": { - "required": ["results", "target", "type"], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Vulnerability" - } - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "type": "string", - "minLength": 1 - } - } - }, - "VulnerabilityScanResults": { - "required": ["identifier", "package", "scan_id", "scans"], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": ["Unknown", "Low", "Medium", "High", "Critical"], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "scans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScan" + }, + "schemas": { + "ErrorDetail": { + "required": [ + "detail" + ], + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "An extended message for the response.", + "type": "string", + "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "GeoIpLocation": { + "required": [ + "city", + "continent", + "country", + "postal_code" + ], + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "minLength": 1, + "nullable": true + }, + "continent": { + "title": "Continent", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "readOnly": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "NamespaceAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "target_kind": { + "title": "Target kind", + "type": "string", + "minLength": 1 + }, + "target_slug_perm": { + "title": "Target slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "RepositoryAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "PackageVersionBadge": { + "type": "object", + "properties": {} + }, + "PlanPrice": { + "description": "List of prices for the plan", + "required": [ + "amount", + "billing_interval", + "currency" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Plan Amount", + "type": "string", + "format": "decimal" + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing", + "type": "string", + "minLength": 1 + } + } + }, + "Plan": { + "required": [ + "identifier", + "is_enterprise", + "prices" + ], + "type": "object", + "properties": { + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_enterprise": { + "title": "Is enterprise", + "description": "Is this an enterprise plan", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "prices": { + "description": "List of prices for the plan", + "type": "array", + "items": { + "$ref": "#/components/schemas/PlanPrice" + } + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + } + } + }, + "Payment": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "When was the payment created and attempted", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "failure_code": { + "title": "Failure code", + "description": "Failure Code for the payment", + "type": "string", + "minLength": 1 + }, + "failure_message": { + "title": "Failure message", + "description": "Failure message for the payment", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Payment Status", + "type": "string", + "minLength": 1 + } + } + }, + "AccountStatus": { + "required": [ + "payments" + ], + "type": "object", + "properties": { + "billing_period_end_date": { + "title": "Billing period end date", + "description": "When does the current billing period end", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment" + } + }, + "status": { + "title": "Status", + "description": "Current Status of account", + "type": "string", + "minLength": 1 + } + } + }, + "InvoiceItem": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the line", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Invoice": { + "type": "object", + "properties": { + "amount_due": { + "title": "Amount due", + "description": "Amount due to be paid", + "type": "integer", + "readOnly": true + }, + "amount_paid": { + "title": "Amount paid", + "description": "Amount paid", + "type": "integer", + "readOnly": true + }, + "billing_reason": { + "title": "Billing reason", + "description": "Reason for the invoice to be created", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "billing_reason_text": { + "title": "Billing reason text", + "type": "string", + "readOnly": true + }, + "created": { + "title": "Created", + "description": "When was the invoice created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "currency": { + "title": "Currency", + "description": "The currency of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoice_id": { + "title": "Invoice id", + "description": "Invoice ID", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoiceitems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceItem" + }, + "readOnly": true + }, + "number": { + "title": "Number", + "description": "Invoice number", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Status of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "InvoicePDF": { + "type": "object", + "properties": { + "invoice_pdf": { + "title": "Invoice pdf", + "description": "Link to the invoice in PDF", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "CardPaymentMethod": { + "type": "object", + "properties": { + "brand": { + "title": "Brand", + "description": "Card Brand (e.g. Visa)", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "exp_month": { + "title": "Exp month", + "description": "Expiration Month", + "type": "integer", + "readOnly": true + }, + "exp_year": { + "title": "Exp year", + "description": "Expiration Year", + "type": "integer", + "readOnly": true + }, + "last4": { + "title": "Last4", + "description": "Last 4 digits of card", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "PaymentMethod": { + "required": [ + "card" + ], + "type": "object", + "properties": { + "card": { + "$ref": "#/components/schemas/CardPaymentMethod" + }, + "created": { + "title": "Created", + "description": "When was the payment method created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "is_default": { + "title": "Is default", + "description": "Is this the default payment method", + "type": "boolean", + "readOnly": true + }, + "type": { + "title": "Type", + "description": "Payment Method Type", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "BillingPeriod": { + "type": "object", + "properties": { + "is_current": { + "title": "Is current", + "description": "Is this the current Billing Period", + "type": "boolean", + "readOnly": true + }, + "period_end_at": { + "title": "Period End At", + "description": "The datetime usage is recorded to.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "period_start_at": { + "title": "Period Start At", + "description": "The datetime usage is recorded from.", + "type": "string", + "format": "date-time" + }, + "trial": { + "title": "Trial", + "description": "Usage period occurred during a trial.", + "type": "boolean" + } + } + }, + "PortalUrl": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "url": { + "title": "Url", + "description": "Billing Portal URL to Redirect User to", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "OnDemandUsageProduct": { + "description": "Products in the On-Demand Usage Subscription", + "required": [ + "currency", + "identifier", + "price_per_unit", + "unit" + ], + "type": "object", + "properties": { + "currency": { + "title": "Currency", + "description": "Currency used for invoicing product", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Identifier for this product", + "type": "string", + "minLength": 1 + }, + "price_per_unit": { + "title": "Price per unit", + "description": "Price per unit", + "type": "string", + "format": "decimal" + }, + "unit": { + "title": "Unit", + "description": "Unit for this product", + "type": "string", + "minLength": 1 + } + } + }, + "OnDemandUsageSubcription": { + "description": "Details of On-Demand Usage Subscription", + "required": [ + "billing_interval", + "products" + ], + "type": "object", + "properties": { + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "products": { + "description": "Products in the On-Demand Usage Subscription", + "type": "array", + "items": { + "$ref": "#/components/schemas/OnDemandUsageProduct" + } + } + } + }, + "Subscription": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Subscription Amount", + "type": "string", + "format": "decimal" + }, + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "can_charge": { + "title": "Can charge", + "description": "Does the customer have payment method configured", + "type": "boolean" + }, + "cancel_at_period_end": { + "title": "Cancel at period end", + "description": "Subscription will be cancelled when billing period ends", + "type": "boolean" + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing subscription", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_delinquent": { + "title": "Is delinquent", + "description": "Does this subscription have outstanding invoices", + "type": "boolean" + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "on_demand_usage": { + "$ref": "#/components/schemas/OnDemandUsageSubcription" + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Current Status of subscription", + "type": "string", + "minLength": 1 + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + }, + "trial_end_date": { + "title": "Trial end date", + "description": "Trial End Date", + "type": "string", + "format": "date-time" + } + } + }, + "TrialDays": { + "required": [ + "identifier", + "is_trialing", + "remaining_trial_days", + "trial_days" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "remaining_trial_days": { + "title": "Remaining trial days", + "description": "Remaining Unused Trial Days", + "type": "integer" + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + } + } + }, + "OrganizationCustomDomainNestedRepo": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "backend_kind_str": { + "title": "Backend kind str", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "domain_type_str": { + "title": "Domain type str", + "type": "string", + "readOnly": true + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + } + } + }, + "PublicBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "PublicBroadcastsRepository": { + "required": [ + "gpg_keys", + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string", + "maxLength": 1000 + }, + "gpg_keys": { + "type": "array", + "items": { + "type": "integer" + }, + "uniqueItems": true + }, + "is_open_source": { + "title": "Is open source", + "type": "string", + "readOnly": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "open_source_license_name": { + "title": "Open source license name", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_license_url": { + "title": "Open source license url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Total Packages", + "description": "The total number of packages in this repository.", + "type": "integer" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 50 + } + } + }, + "DistributionVersion": { + "description": "A list of the versions for this distribution", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The textual name for this version.", + "type": "string", + "maxLength": 64 + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this version", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "DistributionFull": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "versions": { + "description": "A list of the versions for this distribution", + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "readOnly": true + } + } + }, + "Eula": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "number": { + "title": "Number", + "description": "A sequential identifier that increments by one for each new commit in a repository.", + "type": "integer", + "nullable": true + } + }, + "nullable": true + }, + "RepositoryToken": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryTokenRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSyncRequest": { + "required": [ + "source" + ], + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "The source repository slug (in the same owner namespace).", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSync": { + "type": "object", + "properties": { + "tokens": { + "description": "The entitlements that have been synchronised.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + }, + "readOnly": true + } + } + }, + "RepositoryTokenRequestPatch": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenAction": { + "type": "object", + "properties": {} + }, + "RepositoryTokenRefreshRequest": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenRefresh": { + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageFileUploadRequest": { + "required": [ + "filename" + ], + "type": "object", + "properties": { + "filename": { + "title": "Filename", + "description": "Filename for the package file upload.", + "type": "string", + "minLength": 1 + }, + "md5_checksum": { + "title": "Md5 checksum", + "description": "MD5 checksum for a POST-based package file upload.", + "type": "string", + "maxLength": 32, + "minLength": 32 + }, + "method": { + "title": "Method", + "description": "The method to use for package file upload.", + "type": "string", + "enum": [ + "put_parts", + "put", + "post", + "presigned", + "unsigned_put" + ], + "default": "post" + }, + "sha256_checksum": { + "title": "Sha256 checksum", + "description": "SHA256 checksum for a PUT-based package file upload.", + "type": "string", + "maxLength": 64, + "minLength": 64 + } + } + }, + "PackageFileUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use when creating packages", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_fields": { + "title": "Upload fields", + "description": "The dictionary of fields that must be sent with POST uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_headers": { + "title": "Upload headers", + "description": "The dictionary of headers that must be sent with uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step POST or PUT upload", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step POST or PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "PackageFilePartsUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use uploading parts.", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step PUT upload.", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "Distribution": { + "description": "The distributions supported by this package format", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + } + }, + "nullable": true + }, + "FormatSupportUpstream": { + "description": "The upstream support for the package format", + "required": [ + "auth_modes", + "caching", + "indexing", + "proxying" + ], + "type": "object", + "properties": { + "auth_modes": { + "description": "The authentication modes supported by the upstream format", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Username and Password", + "Token", + "Certificate and Key" + ], + "default": "Username and Password" + } + }, + "caching": { + "title": "Caching", + "description": "If true the upstream format supports caching", + "type": "boolean" + }, + "indexing": { + "title": "Indexing", + "description": "If true the upstream format supports indexing", + "type": "boolean" + }, + "indexing_behavior": { + "title": "Indexing behavior", + "description": "The behavior of the upstream when indexing", + "type": "string", + "enum": [ + "Unsupported", + "Ahead-of-time (static) indexing", + "Just-in-time (dynamic) indexing" + ], + "default": "Unsupported" + }, + "proxying": { + "title": "Proxying", + "description": "If true the upstream format supports proxying", + "type": "boolean" + }, + "signature_verification": { + "title": "Signature verification", + "description": "The signature verification supported by the upstream format", + "type": "string", + "enum": [ + "Unsupported", + "Repository Metadata", + "Packages", + "Repository Metadata and Packages" + ], + "default": "Unsupported" + } + } + }, + "FormatSupport": { + "description": "A set of what the package format supports", + "required": [ + "dependencies", + "distributions", + "file_lists", + "metadata", + "upstreams", + "versioning" + ], + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "If true the package format supports dependencies", + "type": "boolean" + }, + "distributions": { + "title": "Distributions", + "description": "If true the package format supports distributions", + "type": "boolean" + }, + "file_lists": { + "title": "File lists", + "description": "If true the package format supports file lists", + "type": "boolean" + }, + "metadata": { + "title": "Metadata", + "description": "If true the package format supports metadata", + "type": "boolean" + }, + "upstreams": { + "$ref": "#/components/schemas/FormatSupportUpstream" + }, + "versioning": { + "title": "Versioning", + "description": "If true the package format supports versioning", + "type": "boolean" + } + } + }, + "Format": { + "required": [ + "description", + "extensions", + "name", + "premium", + "slug", + "supports" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the package format", + "type": "string", + "minLength": 1 + }, + "distributions": { + "description": "The distributions supported by this package format", + "type": "array", + "items": { + "$ref": "#/components/schemas/Distribution" + }, + "nullable": true + }, + "extensions": { + "description": "A non-exhaustive list of extensions supported", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "name": { + "title": "Name", + "description": "Name for the package format", + "type": "string", + "minLength": 1 + }, + "premium": { + "title": "Premium", + "description": "If true the package format is a premium-only feature", + "type": "boolean" + }, + "premium_plan_id": { + "title": "Premium plan id", + "description": "The minimum plan id required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "premium_plan_name": { + "title": "Premium plan name", + "description": "The minimum plan name required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug": { + "title": "Slug", + "description": "Slug for the package format", + "type": "string", + "minLength": 1 + }, + "supports": { + "$ref": "#/components/schemas/FormatSupport" + } + } + }, + "PrivilegeEscalation": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password for verification.", + "type": "string", + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "description": "TOTP code for verification.", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "description": "The type of verification used.", + "type": "string", + "enum": [ + "totp", + "password" + ] + } + } + }, + "UserRequestPasswordResetRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserRequestPasswordReset": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserResetPasswordRequest": { + "required": [ + "key", + "password" + ], + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Password reset token.", + "type": "string", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Enter a new password.", + "type": "string", + "minLength": 1 + } + } + }, + "UserResetPassword": { + "type": "object", + "properties": {} + }, + "DeviceVerificationRequest": { + "required": [ + "device_id" + ], + "type": "object", + "properties": { + "device_id": { + "title": "Device id", + "description": "The device ID to verify.", + "type": "string", + "minLength": 1 + } + } + }, + "DeviceVerification": { + "type": "object", + "properties": {} + }, + "License": { + "type": "object", + "properties": { + "full_name": { + "title": "Full name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the license.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "spdx_identifier": { + "title": "Spdx identifier", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "CommonBandwidthMetricsValue": { + "description": "Average bandwidth usage in the specified period, e.g. a day", + "required": [ + "display", + "value" + ], + "type": "object", + "properties": { + "display": { + "title": "Display", + "description": "Bandwidth usage value", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "units": { + "title": "Units", + "description": "Unit of measurement e.g. bytes", + "type": "string", + "default": "bytes", + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "Human readable version of display value", + "type": "integer" + } + } + }, + "CommonBandwidthMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + } + } + }, + "CommonDownloadsMetricsValue": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "title": "Value", + "type": "integer" + } + } + }, + "CommonDownloadsMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + } + } + }, + "CommonMetrics": { + "required": [ + "bandwidth", + "downloads" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "Number of packages with at least 1 download", + "type": "integer", + "default": 0 + }, + "bandwidth": { + "$ref": "#/components/schemas/CommonBandwidthMetrics" + }, + "downloads": { + "$ref": "#/components/schemas/CommonDownloadsMetrics" + }, + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", + "type": "integer", + "default": 0 + }, + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 + } + } + }, + "EntitlementUsageMetrics": { + "required": [ + "tokens" + ], + "type": "object", + "properties": { + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "PackageUsageMetrics": { + "required": [ + "packages" + ], + "type": "object", + "properties": { + "packages": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "type_name": { + "title": "Type name", + "type": "string", + "readOnly": true + } + } + }, + "OidcRequest": { + "required": [ + "oidc_token", + "service_slug" + ], + "type": "object", + "properties": { + "oidc_token": { + "title": "Oidc token", + "description": "Serialized OIDC token.", + "type": "string", + "minLength": 1 + }, + "service_slug": { + "title": "Service slug", + "description": "Slug for the service account.", + "type": "string", + "minLength": 1 + } + } + }, + "Oidc": { + "type": "object", + "properties": {} + }, + "Organization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "country": { + "title": "Country", + "type": "string", + "readOnly": true, + "maxLength": 32, + "minLength": 1, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationUserTokenPolicy": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + } + } + }, + "OrganizationUserTokenPolicyRequest": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationUserTokenPolicyRequestPatch": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequest": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequestPatch": { + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "dns_alias_value": { + "title": "Dns alias value", + "description": "The CNAME value to use to publish this domain publicly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_name": { + "title": "Dns cert name", + "description": "The CNAME name to create to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_value": { + "title": "Dns cert value", + "description": "The CNAME value to use to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationDefaultObjectPrivileges": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "OrganizationDefaultObjectPrivilegesRequest": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "PackageDenyPolicy": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Block downloads" + ], + "readOnly": true, + "default": "Block downloads" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "In Progress" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PackageDenyPolicyRequest": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "PackageDenyPolicyRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationFeatureFlags": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The human/computer readable name.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationGlobalPrivileges": { + "required": [ + "label", + "privilege", + "selected" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "type": "string", + "minLength": 1 + }, + "privilege": { + "title": "Privilege", + "type": "string", + "minLength": 1 + }, + "selected": { + "title": "Selected", + "type": "boolean" + } + } + }, + "OrganizationTeamInvite": { + "required": [ + "team" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user in the team.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationInvite": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationInviteRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationInviteUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteUpdate": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteExtend": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm of the invite to be extended.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageVulnerability": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "NestedLicensePolicy": { + "required": [ + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageLicensePolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "OrganizationPackageLicensePolicy": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageLicensePolicyRequest": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackageLicensePolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageLicensePolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageLicensePolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationMembership": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "is_active": { + "title": "Is active", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipRequestPatch": { + "type": "object", + "properties": {} + }, + "OrganizationMembershipRoleUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + } + } + }, + "OrganizationMembershipRoleUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdateRequestPatch": { + "type": "object", + "properties": { + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "ProviderSettings": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + }, + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "ProviderSettingsRequest": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "ProviderSettingsRequestPatch": { + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackagePolicyViolationsLicense": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "NestedVulnerabilityPolicy": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NestedVulnerabilityScanResults": { + "required": [ + "identifier", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackagePolicyViolationsVulnerability": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationProductFeatures": { + "type": "object", + "properties": { + "plan": { + "title": "Plan", + "description": "Plan Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationSAMLAuth": { + "required": [ + "saml_auth_enabled", + "saml_auth_enforced" + ], + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationSAMLAuthRequestPatch": { + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGroupSync": { + "required": [ + "idp_key", + "idp_value", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncRequest": { + "required": [ + "idp_key", + "idp_value", + "organization", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "organization": { + "title": "Organization", + "type": "string" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncStatus": { + "type": "object", + "properties": { + "saml_group_sync_status": { + "title": "Saml group sync status", + "type": "boolean", + "readOnly": true + } + } + }, + "OrganizationSCIM": { + "required": [ + "scim_enabled" + ], + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + }, + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationSCIMRequestPatch": { + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + } + } + }, + "OrganizationSCIMToken": { + "type": "object", + "properties": { + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "ServiceTeams": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The team role associated with the service", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + }, + "slug": { + "title": "Slug", + "description": "The teams associated with the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "Service": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "key": { + "title": "Key", + "description": "The API key of the service", + "type": "string", + "readOnly": true + }, + "key_expires_at": { + "title": "Key expires at", + "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug": { + "title": "Slug", + "description": "The slug of the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "OrganizationGeneralSettings": { + "required": [ + "email", + "name" + ], + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGeneralSettingsRequestPatch": { + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationRenameSlugRequest": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationRenameSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "OrganizationTeam": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamMembership": { + "description": "The team members", + "required": [ + "role", + "user" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamMembers": { + "required": [ + "members" + ], + "type": "object", + "properties": { + "members": { + "description": "The team members", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamMembership" + } + } + } + }, + "OrganizationEditTeamMemberRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationEditTeamMember": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationTeamMember": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationUsage": { + "type": "object", + "properties": { + "bandwidth_overage_limit": { + "title": "Package Delivery On-Demand Limit (GBs)", + "description": "The on-demand limit for package delivery usage (in GBs).", + "type": "integer", + "nullable": true + }, + "storage_overage_limit": { + "title": "Artifact Data On-Demand Limit (GBs)", + "description": "The on-demand limit for artifact data usage (in GBs).", + "type": "integer", + "nullable": true + } + } + }, + "OrganizationUsageUpdateRequestPatch": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "OrganizationUsageUpdate": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationPackageVulnerabilityPolicy": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageVulnerabilityPolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "DockerLayerReference": { + "type": "object", + "properties": { + "command": { + "title": "Command", + "description": "The V1 command for managing the layer.", + "type": "string", + "readOnly": true + }, + "digest": { + "title": "Digest", + "description": "The digest of the layer.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_empty": { + "title": "Is empty", + "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", + "type": "boolean", + "readOnly": true + }, + "layer_type": { + "title": "Layer type", + "description": "The type of layer this is relative to image.", + "type": "string", + "enum": [ + "Base Layer", + "Intermediate Layer", + "Final Layer" + ], + "readOnly": true, + "default": "Base Layer" + }, + "mount_type": { + "title": "Mount type", + "description": "The Mount Type for the layer.", + "type": "string", + "enum": [ + "Local", + "Remote" + ], + "readOnly": true, + "default": "Local" + }, + "processed": { + "title": "Processed", + "description": "Has the layer been processed.", + "type": "boolean", + "readOnly": true + }, + "size": { + "title": "Size", + "description": "The size of the layer (in bytes).", + "type": "integer", + "readOnly": true + } + } + }, + "DockerCosign": { + "description": "The list of docker cosign attestations", + "required": [ + "created_at" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "When this cosign artifact was created", + "type": "string", + "format": "date-time" + }, + "digest": { + "title": "Digest", + "description": "The cosign artifact digest", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "The package identifier of this signature.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + } + } + }, + "DockerManifest": { + "description": "The list of manifests associated with this Docker package", + "type": "object", + "properties": { + "digest": { + "title": "Digest", + "description": "The digest for the manifest.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "is_primary": { + "title": "Is primary", + "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", + "type": "boolean", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest Type", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "manifest_type_display": { + "title": "Manifest type display", + "type": "string", + "readOnly": true + } + } + }, + "DockerPackageAdditionalDetails": { + "type": "object", + "properties": { + "attestations": { + "$ref": "#/components/schemas/DockerCosign" + }, + "config_digest": { + "title": "Config digest", + "description": "The digest of the Docker image config", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + }, + "manifests": { + "$ref": "#/components/schemas/DockerManifest" + }, + "package_type": { + "title": "Package type", + "description": "The type of the docker package i.e. a manifest or manifest list.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "sboms": { + "$ref": "#/components/schemas/DockerCosign" + }, + "signatures": { + "$ref": "#/components/schemas/DockerCosign" + } + } + }, + "MavenPackageAdditionalDetails": { + "type": "object", + "properties": { + "extended_metadata": { + "title": "Extended metadata", + "type": "string", + "readOnly": true + } + } + }, + "Architecture": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "PackageFile": { + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true, + "nullable": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_primary": { + "title": "Is primary", + "type": "boolean", + "readOnly": true + }, + "is_synchronised": { + "title": "Is synchronised", + "type": "boolean", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the file.", + "type": "integer", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "tag": { + "title": "Tag", + "description": "Freeform descriptor that describes what the file is.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "Tags": { + "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", + "type": "object", + "properties": {} + }, + "Package": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageGroup": { + "required": [ + "count", + "last_push", + "num_downloads", + "size" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "type": "integer" + }, + "count": { + "title": "Count", + "type": "integer", + "nullable": true + }, + "last_push": { + "title": "Last push", + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "integer", + "nullable": true + }, + "size": { + "title": "Size", + "type": "integer", + "nullable": true + } + } + }, + "AlpinePackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "AlpinePackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CargoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CargoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CocoapodsPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CocoapodsPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ComposerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ComposerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ConanPackageUploadRequest": { + "required": [ + "info_file", + "manifest_file", + "metadata_file", + "package_file" + ], + "type": "object", + "properties": { + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "info_file": { + "title": "Info file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "manifest_file": { + "title": "Manifest file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "metadata_file": { + "title": "Metadata file", + "description": "The conan file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ConanPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CondaPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CondaPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CranPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "architecture": { + "title": "Architecture", + "description": "Binary package uploads for macOS should specify the architecture they were built for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CranPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DartPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DartPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DebPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "changes_file": { + "title": "Changes file", + "description": "The changes archive containing the changes made to the source and debian packaging files", + "type": "string", + "minLength": 1, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", + "type": "string", + "pattern": "^[-_.\\w]+$", + "default": "main", + "maxLength": 64, + "minLength": 1 + }, + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sources_file": { + "title": "Sources file", + "description": "The sources archive containing the source code for the binary", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DebPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DockerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DockerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "GoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "GoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HelmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provenance_file": { + "title": "Provenance file", + "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HelmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HexPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HexPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "LuarocksPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "LuarocksPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "MavenPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "extra_files": { + "description": "Extra files to include in the package. This can be a single file or multiple files.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "ivy_file": { + "title": "Ivy file", + "description": "The ivy file is an XML file describing the dependencies of the project.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "javadoc_file": { + "title": "Javadoc file", + "description": "Adds bundled Java documentation to the Maven package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "pom_file": { + "title": "Pom file", + "description": "The POM file is an XML file containing the Maven coordinates.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "sources_file": { + "title": "Sources file", + "description": "Adds bundled Java source code to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "tests_file": { + "title": "Tests file", + "description": "Adds bundled Java tests to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "MavenPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NpmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "npm_dist_tag": { + "title": "Npm dist tag", + "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", + "type": "string", + "default": "latest", + "maxLength": 255, + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NugetPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "symbols_file": { + "title": "Symbols file", + "description": "Uploads a symbols file as a separate package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NugetPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "P2PackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "P2PackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PythonPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "PythonPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RawPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "content_type": { + "title": "Content/Media Type", + "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "RawPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RpmPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RubyPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RubyPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "SwiftPackageUploadRequest": { + "required": [ + "name", + "package_file", + "scope", + "version" + ], + "type": "object", + "properties": { + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "SwiftPackageUpload": { + "required": [ + "name", + "scope", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "TerraformPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "TerraformPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VagrantPackageUploadRequest": { + "required": [ + "name", + "package_file", + "provider", + "version" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "VagrantPackageUpload": { + "required": [ + "name", + "provider", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageCopyRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + } + } + }, + "PackageCopy": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be copied to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageDependency": { + "type": "object", + "properties": { + "dep_type": { + "title": "Dep type", + "type": "string", + "enum": [ + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Enhances", + "Replaces", + "Breaks", + "Built-Using", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Conflicts", + "Provides", + "Obsoletes", + "Requires", + "Runtime", + "Development", + "Compile", + "Provided", + "Test", + "System", + "Import", + "Excluded", + "Build-Requires", + "Python-Requires" + ], + "readOnly": true, + "default": "Depends" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "maxLength": 255, + "minLength": 1 + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "=", + "!=", + "<", + "<<", + "<=", + ">", + ">>", + ">=", + "~=", + "~>", + "matches" + ], + "readOnly": true, + "default": "=", + "nullable": true + }, + "version": { + "title": "Version", + "type": "string", + "readOnly": true, + "maxLength": 128, + "minLength": 1, + "nullable": true + } + } + }, + "PackageDependencies": { + "required": [ + "dependencies" + ], + "type": "object", + "properties": { + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDependency" + } + } + } + }, + "PackageMoveRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + } + } + }, + "PackageMove": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be moved to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageQuarantineRequest": { + "type": "object", + "properties": { + "release": { + "title": "Release", + "description": "If true, the package is released from quarantine.", + "type": "boolean" + }, + "restore": { + "title": "Restore", + "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", + "type": "boolean" + } + } + }, + "PackageQuarantine": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageResync": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageStatus": { + "type": "object", + "properties": { + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + } + } + }, + "PackageTagRequest": { + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Add", + "Clear", + "Replace", + "Remove" + ], + "default": "Add", + "nullable": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "tags": { + "description": "A list of tags to apply the action to. Not required for clears.", + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "default": [], + "nullable": true + } + } + }, + "PackageTag": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "Usage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageUsage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "HistoryFieldset": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/Usage" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsage" + }, + "uploaded": { + "$ref": "#/components/schemas/Usage" + } + } + }, + "UsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageUsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "HistoryFieldsetRaw": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/UsageRaw" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsageRaw" + }, + "uploaded": { + "$ref": "#/components/schemas/UsageRaw" + } + } + }, + "History": { + "required": [ + "display", + "end", + "plan", + "raw", + "start" + ], + "type": "object", + "properties": { + "days": { + "title": "Days", + "type": "integer", + "default": 0 + }, + "display": { + "$ref": "#/components/schemas/HistoryFieldset" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time" + }, + "plan": { + "title": "Plan", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "raw": { + "$ref": "#/components/schemas/HistoryFieldsetRaw" + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + } + } + }, + "QuotaHistory": { + "required": [ + "history" + ], + "type": "object", + "properties": { + "history": { + "type": "array", + "items": { + "$ref": "#/components/schemas/History" + } + } + } + }, + "AllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageAllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "UsageLimits": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimit" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimit" + } + } + }, + "AllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageAllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "UsageLimitsRaw": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimitRaw" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimitRaw" + } + } + }, + "UsageFieldset": { + "required": [ + "display", + "raw" + ], + "type": "object", + "properties": { + "display": { + "$ref": "#/components/schemas/UsageLimits" + }, + "raw": { + "$ref": "#/components/schemas/UsageLimitsRaw" + } + } + }, + "Quota": { + "required": [ + "usage" + ], + "type": "object", + "properties": { + "usage": { + "$ref": "#/components/schemas/UsageFieldset" + } + } + }, + "RateCheck": { + "type": "object", + "properties": { + "interval": { + "title": "Interval", + "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", + "type": "number", + "readOnly": true + }, + "limit": { + "title": "Limit", + "description": "The maximum number of requests that you are permitted to send per hour", + "type": "integer", + "readOnly": true + }, + "remaining": { + "title": "Remaining", + "description": "The number of requests that are remaining in the current rate limit window", + "type": "integer", + "readOnly": true + }, + "reset": { + "title": "Reset", + "description": "The UTC epoch timestamp at which the current rate limit window will reset", + "type": "integer", + "readOnly": true + }, + "reset_iso_8601": { + "title": "Reset iso 8601", + "description": "The ISO 8601 datetime at which the current rate limit window will reset", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "throttled": { + "title": "Throttled", + "description": "If true, throttling is currently being enforced.", + "type": "boolean", + "readOnly": true + } + } + }, + "ResourcesRateCheck": { + "type": "object", + "properties": { + "resources": { + "title": "Resources", + "description": "Rate limit values per resource", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RateCheck" + }, + "readOnly": true + } + } + }, + "RepositoryEcdsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryGpgKey": { + "required": [ + "comment" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by GPG for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Repository": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "readOnly": true, + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreate": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryRequestPatch": { + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryEcdsaKeyCreate": { + "required": [ + "ecdsa_private_key" + ], + "type": "object", + "properties": { + "ecdsa_passphrase": { + "title": "Ecdsa passphrase", + "description": "The ECDSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "ecdsa_private_key": { + "title": "Ecdsa private key", + "description": "The ECDSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpCidr": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed CIDRs for this repository", + "type": "array", + "items": { + "description": "The allowed CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied CIDRs for this repository", + "type": "array", + "items": { + "description": "The denied CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpCountryCode": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed country codes for this repository", + "type": "array", + "items": { + "description": "The allowed country codes for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied country codes for this repository", + "type": "array", + "items": { + "description": "The denied country codes for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpRules": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequest": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "type": "object", + "properties": {} + }, + "RespositoryGeoIpEnableDisable": { + "type": "object", + "properties": {} + }, + "RepositoryGeoIpStatus": { + "type": "object", + "properties": { + "geoip_enabled": { + "title": "Geo/IP Restriction Enabled?", + "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", + "type": "boolean", + "readOnly": true + } + } + }, + "RepositoryGeoIpTestAddress": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP addresses to test against this repository", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "RepositoryGeoIpTestAddressResponseDict": { + "required": [ + "allowed", + "country_code", + "ip_address", + "reason" + ], + "type": "object", + "properties": { + "allowed": { + "title": "Allowed", + "description": "The result of the IP test", + "type": "boolean" + }, + "country_code": { + "title": "Country code", + "description": "The country code of the tested IP address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "ip_address": { + "title": "Ip address", + "description": "The IP address that was tested", + "type": "string", + "minLength": 1 + }, + "reason": { + "title": "Reason", + "description": "The reason for the result", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpTestAddressResponse": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP address test results ordered by allowed", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" + } + } + } + }, + "RepositoryGpgKeyCreate": { + "required": [ + "gpg_private_key" + ], + "type": "object", + "properties": { + "gpg_passphrase": { + "title": "Gpg passphrase", + "description": "The GPG passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "gpg_private_key": { + "title": "Gpg private key", + "description": "The GPG private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeDict": { + "required": [ + "privilege" + ], + "type": "object", + "properties": { + "privilege": { + "title": "Privilege", + "description": "The level of privilege that the user or team should be granted to the specified repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ] + }, + "service": { + "title": "Service", + "description": "The service identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "user": { + "title": "User", + "description": "The user identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeInput": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequest": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequestPatch": { + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryRsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by RSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by RSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryRsaKeyCreate": { + "required": [ + "rsa_private_key" + ], + "type": "object", + "properties": { + "rsa_passphrase": { + "title": "Rsa passphrase", + "description": "The RSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "rsa_private_key": { + "title": "Rsa private key", + "description": "The RSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "CargoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstream": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequest": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstream": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequest": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RepositoryX509EcdsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "EulaCreate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "EulaCreateRequest": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdateRequestPatch": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "RepositoryTransferOwnerRequest": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTransferOwner": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryRetentionRules": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", + "type": "string", + "readOnly": true, + "default": "0.0.0", + "minLength": 1 + } + } + }, + "StorageRegion": { + "required": [ + "label", + "slug" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "description": "Name of the storage region", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "Slug for the storage region", + "type": "string", + "minLength": 1 + } + } + }, + "MetricsRequest": { + "type": "object", + "properties": { + "backend_type": { + "title": "Backend type", + "type": "string", + "enum": [ + "DEB", + "RPM", + "RUBY", + "PYTHON", + "MAVEN", + "BOWER", + "DOCKER", + "RAW", + "CHOCOLATEY", + "NPM", + "NUGET", + "VAGRANT", + "COMPOSER", + "ALPINE", + "HELM", + "CONAN", + "CARGO", + "LUAROCKS", + "CRAN", + "GO", + "DART", + "COCOAPODS", + "TERRAFORM", + "P2", + "CONDA", + "HEX", + "SWIFT", + "DEFAULT" + ] + }, + "end_time": { + "title": "End time", + "type": "string", + "format": "date" + }, + "interval": { + "title": "Interval", + "type": "string", + "enum": [ + "day", + "week", + "month" + ], + "default": "day" + }, + "repository_slugs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "repository_type": { + "title": "Repository type", + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE", + "OPEN_SOURCE" + ] + }, + "start_time": { + "title": "Start time", + "type": "string", + "format": "date" + }, + "user_type": { + "title": "User type", + "type": "string", + "enum": [ + "USER", + "SERVICE" + ] + } + } + }, + "AdditionalOnboardingActions": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "type": "string", + "readOnly": true + }, + "kind": { + "title": "Kind", + "type": "string", + "readOnly": true + }, + "label": { + "title": "Label", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "verb": { + "title": "Verb", + "type": "string", + "readOnly": true + } + } + }, + "AdditionalOnboardingActionsRequestPatch": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + } + } + }, + "UserDefaultOrg": { + "required": [ + "org_slug" + ], + "type": "object", + "properties": { + "org_name": { + "title": "Org name", + "description": "The descriptive name for the user's default organization.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "org_slug_perm": { + "title": "Org slug perm", + "description": "The slug_perm of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserDefaultOrgRequestPatch": { + "type": "object", + "properties": { + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "EmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddressRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "UpdatePrimaryEmail": { + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean", + "readOnly": true + } + } + }, + "EmailAddressResendConfirmation": { + "type": "object", + "properties": {} + }, + "UserOrganizationInvite": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "UserOrganizationInviteRequest": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "Location": { + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "readOnly": true + }, + "country": { + "title": "Country", + "type": "string", + "readOnly": true + } + } + }, + "UserLoginHistory": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "method": { + "title": "Method", + "type": "string", + "readOnly": true + }, + "method_context": { + "title": "Method context", + "type": "string", + "readOnly": true, + "nullable": true + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserLogoutOtherSessions": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserPasswordRequest": { + "required": [ + "confirm_new_password", + "current_password", + "new_password" + ], + "type": "object", + "properties": { + "confirm_new_password": { + "title": "Confirm new password", + "description": "Confirming the new password for the current user.", + "type": "string", + "minLength": 1 + }, + "current_password": { + "title": "Current password", + "description": "The current user's password.", + "type": "string", + "minLength": 1 + }, + "new_password": { + "title": "New password", + "description": "The new password for the current user.", + "type": "string", + "minLength": 1 + } + } + }, + "UserPassword": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Permission": { + "description": "A list of permissions to check if permissible.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "args": { + "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "context": { + "title": "Context", + "description": "Any additional context for why a permission check failed.", + "type": "string", + "readOnly": true, + "maxLength": 512, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The qualified name of the permission; e.g. package.upload_packages", + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "permissible": { + "title": "Permissible", + "description": "If permissible is true, then the user has the specified permission.", + "type": "boolean", + "readOnly": true, + "default": false + } + } + }, + "Permissions": { + "required": [ + "permissions" + ], + "type": "object", + "properties": { + "permissions": { + "description": "A list of permissions to check if permissible.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Permission" + } + } + } + }, + "User": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "onboarding_actions": { + "title": "Onboarding actions", + "type": "string", + "readOnly": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRequestPatch": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRefreshWebTokenRequest": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserRefreshWebToken": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserBrief": { + "type": "object", + "properties": { + "authenticated": { + "title": "Authenticated", + "description": "If true then you're logged in as a user.", + "type": "boolean", + "readOnly": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSession": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSlugRequestPatch": { + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "UserSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "SoftDeleteUser": { + "type": "object", + "properties": {} + }, + "UserAuthTokenRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "Email address to authenticate with", + "type": "string", + "format": "email", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password to authenticate with", + "type": "string", + "minLength": 1 + }, + "totp_token": { + "title": "Two-factor code", + "description": "Two-factor authentication code", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthToken": { + "type": "object", + "properties": { + "token": { + "title": "Token", + "description": "API token for the authenticated user", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "two_factor_required": { + "title": "Two factor required", + "description": "Flag indicating whether a 2FA code is required to complete authentication", + "type": "boolean", + "readOnly": true + }, + "two_factor_token": { + "title": "Two factor token", + "description": "Token to use when providing 2FA code", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserApiCidr": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "An auto-generated id that uniquely identifies the object.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1, + "nullable": true + } + } + }, + "UserApiCidrRequest": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserApiCidrRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthenticationToken": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "The time at which the API key was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm for token.", + "type": "string", + "readOnly": true + } + } + }, + "TOTPRequest": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + }, + "token": { + "title": "Token", + "description": "Token for TOTP Device confirmation", + "type": "string", + "minLength": 1 + } + } + }, + "TOTP": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "qr_code_encoded_image": { + "title": "Qr code encoded image", + "description": "Base64 Encoded QR Image", + "type": "string", + "readOnly": true + }, + "secret_key": { + "title": "Secret key", + "description": "TOTP Secret Key", + "type": "string", + "readOnly": true + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + } + } + }, + "TOTPSettings": { + "required": [ + "enforce_saml_2fa" + ], + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + }, + "is_2fa_backup_codes_enabled": { + "title": "Is 2fa backup codes enabled", + "description": "Is 2FA Backup Codes enabled for the authenticated user", + "type": "boolean", + "readOnly": true + }, + "is_2fa_enabled": { + "title": "Is 2fa enabled", + "description": "Is 2FA enabled for the authenticated user", + "type": "boolean", + "readOnly": true + } + } + }, + "TOTPSettingsRequestPatch": { + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + } + } + }, + "UserProfile": { + "required": [ + "first_name", + "last_name" + ], + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time" + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VulnerabilityScanResultsList": { + "required": [ + "identifier", + "package", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + } + } + }, + "VulnerabilityScanVersion": { + "required": [ + "major", + "minor", + "patch" + ], + "type": "object", + "properties": { + "major": { + "title": "Major", + "type": "integer" + }, + "minor": { + "title": "Minor", + "type": "integer" + }, + "operator": { + "title": "Operator", + "type": "string", + "default": "", + "maxLength": 32, + "minLength": 1 + }, + "patch": { + "title": "Patch", + "type": "integer" + }, + "raw_version": { + "title": "Raw version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + }, + "version": { + "title": "Version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + } + } + }, + "Vulnerability": { + "required": [ + "affected_version", + "description", + "fixed_version", + "package_name", + "references", + "severity_source", + "title", + "vulnerability_id" + ], + "type": "object", + "properties": { + "affected_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 1028, + "minLength": 1 + }, + "fixed_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "package_name": { + "title": "Package name", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "references": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "severity_source": { + "title": "Severity source", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "vulnerability_id": { + "title": "Vulnerability id", + "type": "string", + "maxLength": 13, + "minLength": 1 + } + } + }, + "VulnerabilityScan": { + "required": [ + "results", + "target", + "type" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Vulnerability" + } + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "minLength": 1 + } + } + }, + "VulnerabilityScanResults": { + "required": [ + "identifier", + "package", + "scan_id", + "scans" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScan" + } + } + } + }, + "WebhookTemplate": { + "required": [ + "event" + ], + "type": "object", + "properties": { + "event": { + "title": "Event", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "template": { + "title": "Template", + "type": "string", + "maxLength": 4096, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryWebhook": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "disable_reason_str": { + "title": "Disable reason str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "is_last_response_bad": { + "title": "Is last response bad", + "type": "boolean", + "readOnly": true + }, + "last_response_status": { + "title": "Last response status", + "type": "integer", + "readOnly": true + }, + "last_response_status_str": { + "title": "Last response status str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "num_sent": { + "title": "Num sent", + "type": "integer", + "readOnly": true + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_format_str": { + "title": "Request body format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_body_template_format_str": { + "title": "Request body template format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequest": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequestPatch": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } } - } - } - }, - "WebhookTemplate": { - "required": ["event"], - "type": "object", - "properties": { - "event": { - "title": "Event", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "template": { - "title": "Template", - "type": "string", - "maxLength": 4096, - "nullable": true - } - }, - "nullable": true - }, - "RepositoryWebhook": { - "required": ["events", "target_url", "templates"], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "integer", - "enum": [0, 1, 2, 3, 4, 5, 6], - "readOnly": true - }, - "disable_reason_str": { - "title": "Disable reason str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "is_last_response_bad": { - "title": "Is last response bad", - "type": "boolean", - "readOnly": true - }, - "last_response_status": { - "title": "Last response status", - "type": "integer", - "readOnly": true - }, - "last_response_status_str": { - "title": "Last response status str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "num_sent": { - "title": "Num sent", - "type": "integer", - "readOnly": true - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [0, 1, 2, 3] - }, - "request_body_format_str": { - "title": "Request body format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [0, 1, 2] - }, - "request_body_template_format_str": { - "title": "Request body template format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequest": { - "required": ["events", "target_url", "templates"], - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [0, 1, 2, 3] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [0, 1, 2] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequestPatch": { - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [0, 1, 2, 3] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [0, 1, 2] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } } - } } - } } diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index d2e39ae0..27fd7ffd 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -5,15 +5,22 @@ import { isHttpMethod, createSlug, parseMenuSegments, apiOperationPath, createTi import { MenuItem } from '../menu/types'; /** - * Parses the swagger schema with the Swagger Parser library to resolve refs + * Parses a specific version of the swagger schema with the Swagger Parser library to resolve refs. + * @param version - The API version to parse ('v2' or 'v3'). */ -export const parseSchema = async (): Promise => { - const schema = (await SwaggerParser.dereference( - `src/content/schemas/api-schema-v3.json`, - )) as OpenAPIV3.Document; +export const parseSchema = async (version: 'v2' | 'v3'): Promise => { + // Defensive check to ensure 'version' is provided. + if (!version) { + throw new Error("The 'parseSchema' function was called without a 'version' parameter. Please specify 'v2' or 'v3'."); + } + + // Assumes you have 'api-schema-v2.json' and 'api-schema-v3.json' in `src/content/schemas/` + const schemaPath = `src/content/schemas/api-schema-${version}.json`; + + const schema = (await SwaggerParser.dereference(schemaPath)) as OpenAPIV3.Document; if (!schema) { - throw new Error('Failed to parse API schema'); + throw new Error(`Failed to parse API schema for ${version}`); } return schema; @@ -22,8 +29,10 @@ export const parseSchema = async (): Promise => { /** * Transforms the schema into a flat array of our custom ApiOperation type. * This makes it a bit easier to work with when generating the content pages. + * @param schema - The OpenAPI document. + * @param version - The API version ('v2' or 'v3') to tag each operation with. */ -export const toOperations = (schema: OpenAPIV3.Document): ApiOperation[] => { +export const toOperations = (schema: OpenAPIV3.Document, version: 'v2' | 'v3'): ApiOperation[] => { const operations: ApiOperation[] = []; for (const path in schema.paths) { @@ -40,6 +49,7 @@ export const toOperations = (schema: OpenAPIV3.Document): ApiOperation[] => { menuSegments, slug, title: createTitle(menuSegments), + version, // Tag the operation with its version }); } } @@ -50,7 +60,7 @@ export const toOperations = (schema: OpenAPIV3.Document): ApiOperation[] => { /** * Transforms a flat array of our custom ApiOperation type into our MenuItem type. - * Used for generating the menus. + * Used for generating the menus. It now uses the version from each operation to create the correct path. */ export const toMenuItems = (operations: ApiOperation[]): MenuItem[] => { const items: MenuItem[] = []; @@ -68,11 +78,12 @@ export const toMenuItems = (operations: ApiOperation[]): MenuItem[] => { if (!existing) { existing = { title }; if (isLast) { - existing.path = apiOperationPath(operation.slug); + existing.path = apiOperationPath(operation.slug, operation.version); // Pass version to generate path existing.method = operation.method; } else { if (!existing.path) { - existing.path = apiOperationPath(operation.slug); + // Also set path for parent menu items to make them clickable + existing.path = apiOperationPath(operation.slug, operation.version); // Pass version } existing.children = []; } diff --git a/src/lib/swagger/types.ts b/src/lib/swagger/types.ts index 515ca783..c4cfd383 100644 --- a/src/lib/swagger/types.ts +++ b/src/lib/swagger/types.ts @@ -13,6 +13,7 @@ export interface ApiOperation { menuSegments: string[]; slug: string; title: string; + version: 'v2' | 'v3'; // Each operation is now tagged with a version. // From OpenAPIV3.OperationObject tags?: string[]; diff --git a/src/lib/swagger/util.ts b/src/lib/swagger/util.ts index 2e7db9b9..0e78e88d 100644 --- a/src/lib/swagger/util.ts +++ b/src/lib/swagger/util.ts @@ -44,8 +44,9 @@ export const createTitle = (menuSegments: string[]): string => { }; /** - * Turns an operation slug into a fully qualified local path to use in links + * Turns an operation slug into a fully qualified local path to use in links. + * Now includes the version. */ -export const apiOperationPath = (slug: string): string => { - return `/api/${slug}`; +export const apiOperationPath = (slug: string, version: 'v2' | 'v3'): string => { + return `/api/${version}/${slug}`; }; From f66084458af38395386993e687f67829c40263e0 Mon Sep 17 00:00:00 2001 From: "Pablo J. Lopez Zaldivar" Date: Tue, 1 Jul 2025 09:43:06 +0200 Subject: [PATCH 007/127] Datadog pull interval Context to understand the change: https://cloudsmith-io.slack.com/archives/C053LP018K1/p1750872938999169 --- src/content/integrations/integrating-with-datadog.mdx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/content/integrations/integrating-with-datadog.mdx b/src/content/integrations/integrating-with-datadog.mdx index 4749c845..f19faf4e 100644 --- a/src/content/integrations/integrating-with-datadog.mdx +++ b/src/content/integrations/integrating-with-datadog.mdx @@ -114,7 +114,8 @@ Once installed, configure your integration similar to core integrations. There a | :----------------- | :----------------------------------------------------------------------------------------- | | `url` | The Cloudsmith API URL (https://api.cloudsmith.io/v1) | | `cloudsmith_api_key` | Your Cloudsmith API key | -| `organization` | The Cloudsmith [Workspace](/getting-started/workspaces) (Organization) that you are monitoring | +| `organization` | The Cloudsmith [Workspace](/getting-started/workspaces) (Organization) that you are monitoring | +| `min_collection_interval` | Collection interval of the check. **We recommend to set it's value to 60**. | Follow these steps to configure your Cloudsmith Datadog Integration: @@ -158,4 +159,4 @@ Once completed, you can created a custom Dashboard or just use the default dashb The Datadog Cloudsmith Integration is a simple and effective visualization tool for monitoring your token, artifact data, package delivery, audit logs, and vulnerability scanning. Manage and forecast your monthly usage. If you identify a limit that's approaching a threshold, then you can quickly and easily adjust your [limits](/getting-started/workspaces#usage-limits) at any time within the Cloudsmith UI. -If you already use Datadog to monitor your tools and services, this tool is for you. \ No newline at end of file +If you already use Datadog to monitor your tools and services, this tool is for you. From 812ad1651167165800b727466c6b7140baca7f76 Mon Sep 17 00:00:00 2001 From: "Pablo J. Lopez Zaldivar" Date: Tue, 1 Jul 2025 14:38:09 +0200 Subject: [PATCH 008/127] Update integrating-with-datadog.mdx --- src/content/integrations/integrating-with-datadog.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/integrations/integrating-with-datadog.mdx b/src/content/integrations/integrating-with-datadog.mdx index f19faf4e..c7ab8a3f 100644 --- a/src/content/integrations/integrating-with-datadog.mdx +++ b/src/content/integrations/integrating-with-datadog.mdx @@ -115,7 +115,7 @@ Once installed, configure your integration similar to core integrations. There a | `url` | The Cloudsmith API URL (https://api.cloudsmith.io/v1) | | `cloudsmith_api_key` | Your Cloudsmith API key | | `organization` | The Cloudsmith [Workspace](/getting-started/workspaces) (Organization) that you are monitoring | -| `min_collection_interval` | Collection interval of the check. **We recommend to set it's value to 60**. | +| `min_collection_interval` | Collection interval of the check. **We recommend to set it's value to 180**. | Follow these steps to configure your Cloudsmith Datadog Integration: From eae15239ad0e3c95937ba350dace27dac103cda4 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 1 Jul 2025 22:09:43 +0200 Subject: [PATCH 009/127] reorg --- .env | 2 +- package-lock.json | 18721 ----- pnpm-lock.yaml | 5178 +- public/api-schema-v2.json | 59811 ++++++++++++++++ public/api-schema-v3.json | 59811 ++++++++++++++++ src/content/access-control/index.mdx | 3 - .../accounts-and-teams/about-privileges.mdx | 83 + .../accounts-and-teams/access-controls.mdx | 41 - src/content/accounts-and-teams/index.mdx | 15 +- .../accounts-and-teams/permissions.mdx | 56 - src/content/administration/index.mdx | 49 + src/content/api/index.mdx | 23 +- src/content/artifact-management/index.mdx | 81 +- .../artifact-management/package-groups.mdx | 3 +- .../search-filter-sort-packages.mdx | 8 +- ...83389c218249a8916848a7099f769b781-scim.png | Bin ...c86740061f1f0e6d19803f12-auth-settings.png | Bin ...177c8f5d61e6a80a06946e649e5c0eba1-saml.png | Bin ...95bdaa9d34b5e665e5c0bf-saml-group-sync.png | Bin ...74ca97099f6a04-annotated-openidconnect.png | Bin ...ad0678ac3466414dde82-provider-settings.png | Bin .../openid-connect/e0b23d4-Group_2554.png | Bin ..._demo_examples-repo_settingsiPad_Pro_5.png | Bin ..._demo_examples-repo_settingsiPad_Pro_4.png | Bin ...1eeac422518b5790d964051833a-scim-steps.png | Bin ...f5f1a637beea546546b4bd9d409-scim-steps.png | Bin ...092fc23f79beb23dfc7c4cc2550-scim-steps.png | Bin .../images/scim-with-okta/93fc9ed-To_app.png | Bin .../scim-with-okta/a4625db-Provisioning.png | Bin ...0261-Screenshot_2022-11-15_at_10.00.08.png | Bin ...c5c5808155d2150217305b559db-scim-steps.png | Bin ...e2f5075cf2cefb78c8310bc9fa3-scim-steps.png | Bin .../dcf4d99-Group_2551.png | Bin ...5d82-Screenshot_2023-04-04_at_13.38.39.png | Bin ...acd5-Screenshot_2023-03-28_at_16.37.32.png | Bin .../19dfed2-cloudsmith-azure-ad-5.png | Bin ...c2ec-Screenshot_2023-04-04_at_13.24.50.png | Bin ...c28f-Screenshot_2023-04-04_at_13.36.48.png | Bin ...29bf-Screenshot_2023-03-28_at_16.42.10.png | Bin ...app.cloudsmith.com_demo_logsiPad_Pro_3.png | Bin .../482a011-cloudsmith-azure-ad-6.png | Bin ...4353-Screenshot_2023-03-28_at_16.56.27.png | Bin ...5811-Screenshot_2023-03-28_at_16.44.01.png | Bin .../5aabb6f-cloudsmith-azure-ad-8.png | Bin .../66f29c5-cloudsmith-azure-ad-7.png | Bin .../6a260ed-cloudsmith-azure-ad-11.png | Bin .../6a5ba58-cloudsmith-azure-ad-9.png | Bin ...cf72-Screenshot_2023-03-28_at_16.36.00.png | Bin .../76a302f-cloudsmith-azure-ad-4.png | Bin ...aac5-Screenshot_2023-04-04_at_13.36.03.png | Bin ...2851-Screenshot_2023-03-28_at_16.34.31.png | Bin ...07ab-Screenshot_2023-04-04_at_13.42.02.png | Bin .../8bac474-cloudsmith-azure-ad-3.png | Bin ...9a0d-Screenshot_2023-04-04_at_13.43.25.png | Bin ...app.cloudsmith.com_demo_logsiPad_Pro_2.png | Bin ...f573-Screenshot_2023-04-04_at_13.31.53.png | Bin .../c5faa5f-cloudsmith-azure-ad-2.png | Bin .../d168a64-cloudsmith-azure-ad-10.png | Bin ...57a3-Screenshot_2023-03-28_at_16.39.27.png | Bin .../eed4fe7-cloudsmith-azure-ad-1.png | Bin .../fc07a79-cloudsmith-azure-ad-12.png | Bin .../0a5217f-google_saml_10.png | Bin .../203582c-google_saml_5.png | Bin .../3ba9431-google_saml_4.png | Bin .../4cd854e-google_saml_1.png | Bin .../6a3220e-google_saml_3.png | Bin .../728af64-google_saml_8.png | Bin .../cefc6ab-google_saml_2.png | Bin .../eefccf6-google_saml_6.png | Bin .../f9643b3-google_saml_7.png | Bin .../010954d-HngkhoO.png | Bin .../12f15d0-eyaqxsG.png | Bin ...37d-Screen_Shot_2019-07-31_at_09.29.21.png | Bin .../4b4ae82-f5U5xlF.png | Bin .../4bbef67-9T6Ib4y.png | Bin .../4f06940-YNKiBAY.png | Bin .../5705a68-EvV1GHE.png | Bin .../6807aa0-HVGiBNc.png | Bin .../6ac1691-dne84If.png | Bin .../78a10a8-MJw13iE.png | Bin .../7fddf0b-RaB77x7.png | Bin .../8e49768-hAcXDjT.png | Bin .../b5ded7f-gSKo4qI.png | Bin .../c1598b2-pipFfKJ.png | Bin .../c7d5fa2-tCKJUzh.png | Bin ...bec45afd5ab65009b-sso-okta-scim-edited.png | Bin .../04b7376-image.png | Bin .../1430b35-image.png | Bin ...e-app-integration-sttribute-statements.png | Bin ...6395-okta-create-app-integration-step1.png | Bin ...b80b-okta-create-app-integration-step2.png | Bin .../636281f-okta-saml-metadata.png | Bin ...6b61-okta-create-app-integration-modal.png | Bin .../93fc9ed-To_app.png | Bin .../a4625db-Provisioning.png | Bin .../aa6b34a-image.png | Bin ...0261-Screenshot_2022-11-15_at_10.00.08.png | Bin .../c6fa9a9-okta-create-app-integration.png | Bin .../d1568be-image.png | Bin .../d48b24a-okta-assign-people.png | Bin ...e76b-okta-create-app-integration-step3.png | Bin ...f5633b7bb368-sso-with-okta-screenshot4.png | Bin .../0027387-cloudsmith-one-login-4.png | Bin .../08c9329-image.png | Bin ...9b8-Screen_Shot_2019-07-16_at_00.26.21.png | Bin .../24cfb10-1.png | Bin .../32b32f1-cloudsmith-one-login-14.png | Bin .../34b72c5-cloudsmith-one-login-2.png | Bin .../3e15f56-cloudsmith-one-login-6.png | Bin .../43482ad-cloudsmith-one-login-13.png | Bin .../82cb58d-cloudsmith-one-login-1.png | Bin .../86bddab-cloudsmith-one-login-3.png | Bin .../9e74fe9-cloudsmith-one-login-9.png | Bin .../adeced6-cloudsmith-one-login-7.png | Bin .../af16926-11.png | Bin .../fa71597-cloudsmith-one-login-12.png | Bin .../faf1d96-cloudsmith-one-login-11.png | Bin .../037b994-image.png | Bin .../369108b-image.png | Bin .../3ee4f20-image.png | Bin .../46c256b-image.png | Bin .../7b732ce-image.png | Bin .../9d8334a-image.png | Bin .../a994b78-image.png | Bin .../cd3fbde-image.png | Bin .../f51a2c5-image.png | Bin .../groups.png | Bin .../0cbfea8-SAML-Group-Sync-Enable.png | Bin .../3025e50-create-mapping-form.png | Bin .../d13efaf-SAML-Group-Sync-Create.png | Bin .../single-sign-on/f5f6a37-Saml-setup.png | Bin ...fcd0-Screenshot_2024-10-18_at_22.41.19.png | Bin ...4bd4-Screenshot_2024-10-18_at_22.39.03.png | Bin ...53d5-Screenshot_2024-10-18_at_22.37.36.png | Bin src/content/authentication/index.mdx | 50 + .../openid-connect.mdx | 4 +- src/content/authentication/saml.mdx | 8 + .../scim-with-google.mdx | 0 .../scim-with-jumpcloud.mdx | 0 .../scim-with-microsoft-entra-id.mdx | 0 .../scim-with-okta.mdx | 0 .../scim-with-onelogin.mdx | 0 .../scim-with-pingfederate.mdx | 0 .../scim.mdx | 12 +- ...thenticate-with-oidc-in-github-actions.mdx | 0 .../single-sign-on-with-azure-ad.mdx | 4 +- .../single-sign-on-with-google-g-suite.mdx | 2 +- .../single-sign-on-with-jumpcloud.mdx | 4 +- .../single-sign-on-with-okta.mdx | 2 +- .../single-sign-on-with-onelogin.mdx | 4 +- .../single-sign-on-with-pingidentity.mdx | 0 .../single-sign-on.mdx | 12 +- .../two-factor-authentication.mdx | 0 .../cli.mdx | 2 +- .../developer-community.mdx | 0 ...bd06bbac194fb-repo-create-webhook-form.png | Bin ...fca211bbc6d-repo-webhook-package-query.png | Bin ...044ce644648743925-repo-webhook-example.png | Bin ...e09aa15e923f9d4854-repo-create-webhook.png | Bin .../webhooks/e34a6a7-mission_successful.jpg | Bin src/content/developer-tools/index.mdx | 0 .../terraform-provider.mdx | 0 .../webhooks.mdx | 0 src/content/formats/cran-repository.mdx | 2 +- src/content/formats/dart-repository.mdx | 2 +- src/content/formats/debian-repository.mdx | 2 +- src/content/formats/docker-registry.mdx | 2 +- src/content/formats/gradle-repository.mdx | 2 +- src/content/formats/helm-chart-repository.mdx | 4 +- src/content/formats/hex-repository.mdx | 2 +- src/content/formats/index.mdx | 6 - src/content/formats/maven-repository.mdx | 2 +- src/content/formats/npm-registry.mdx | 4 +- src/content/formats/nuget-feed.mdx | 2 +- src/content/formats/python-repository.mdx | 2 +- src/content/formats/redhat-repository.mdx | 2 +- src/content/formats/ruby-repository.mdx | 2 +- src/content/formats/sbt-repository.mdx | 2 +- src/content/formats/swift-registry.mdx | 2 +- .../getting-started/common-use-cases.mdx | 261 + .../getting-started/custom-domains.mdx | 96 - .../dependencies-for-developers.mdx | 54 +- .../deployment-for-operations.mdx | 17 +- .../getting-started/images/developer.svg | 1 + src/content/getting-started/images/device.png | Bin 0 -> 418126 bytes ...ffc25389994f1418b8a9b8134d98-add-email.png | Bin 203864 -> 0 bytes src/content/getting-started/images/signup.png | Bin 0 -> 1927436 bytes ...7ce4a6c44b00960d575d6ac-custom-domains.png | Bin 426275 -> 0 bytes ...aff7816c0f44a06cf311-global-privileges.png | Bin 343758 -> 0 bytes ...c01d3d094f20592229ac-object-privileges.png | Bin 372786 -> 0 bytes ...95711d2215e19346ad077c10e-usage-limits.png | Bin 389982 -> 0 bytes ...a469f363f3ac7d7a07fbe2e7dd41a636-teams.png | Bin 167396 -> 0 bytes ...2fafbd7c0fd2ade07f-settings-workspaces.png | Bin 371267 -> 0 bytes ...eb4bf4f4f3-create-a-new-workspace-form.png | Bin 303826 -> 0 bytes ...e3c9342fd5889a-create-workspace-button.png | Bin 195715 -> 0 bytes ...39b3b86a269487648-create-new-workspace.png | Bin 224433 -> 0 bytes ...deda538c5fd55f77eb0d-workspace-profile.png | Bin 364555 -> 0 bytes ...1401e164727d0faacdb88-billing-settings.png | Bin 389843 -> 0 bytes src/content/getting-started/index.mdx | 75 +- src/content/getting-started/key-concepts.mdx | 4 +- src/content/getting-started/profile.mdx | 17 - .../getting-started/repository-packages.mdx | 35 - src/content/getting-started/sign-in.mdx | 37 + src/content/getting-started/sign-up.mdx | 25 + .../what-is-package-management.mdx | 57 - .../getting-started/workspace-overview.mdx | 172 - src/content/guides/dependency_firewall.mdx | 317 + src/content/homepage.json | 23 +- .../cloudsmithWebhooksExample.png | Bin .../images/slack/9af567f-ready.png | Bin .../integrating-with-azure-devops.mdx | 2 +- .../integrating-with-codefresh.mdx | 6 +- .../integrating-with-dependabot.mdx | 2 +- .../integrating-with-github-actions.mdx | 2 +- .../integrating-with-microsoft-teams.mdx | 1 + .../integrating-with-slack.mdx | 0 .../logs-and-observability/audit-logs.mdx | 2 +- src/content/logs-and-observability/index.mdx | 12 +- .../repo-audit-logs.mdx | 11 - src/content/menu.json | 630 +- .../export-from-jfrog-artifactory.mdx | 2 +- .../export-from-nexus-sonatype.mdx | 2 +- src/content/migrating-to-cloudsmith/index.mdx | 4 +- .../block-until-scan.mdx | 4 +- ...5b28ed338db2db3e5-repo-access-controls.png | Bin src/content/repositories/index.mdx | 16 +- .../repositories/repository-privileges.mdx | 84 + .../upstreams}/failure-scenarios.mdx | 0 .../upstreams/images}/cargo.png | Bin .../upstreams/images}/composer.png | Bin .../upstreams/images}/cran.png | Bin .../upstreams/images}/dart.png | Bin .../upstreams/images}/debian.png | Bin .../upstreams/images}/docker.png | Bin .../upstreams/images}/edit_upstream.png | Bin .../upstreams/images}/go.png | Bin .../upstreams/images}/helm.png | Bin .../upstreams/images}/hex.png | Bin .../upstreams/images}/maven.png | Bin .../upstreams/images}/npm.png | Bin .../upstreams/images}/nuget.png | Bin .../upstreams/images}/python.png | Bin .../upstreams/images}/quick_configure.png | Bin .../upstreams/images}/rpm.png | Bin .../upstreams/images}/ruby.png | Bin .../upstreams/images}/swift.png | Bin .../upstreams/images}/upstream_formats.png | Bin .../upstreams/index.mdx} | 42 +- .../upstreams}/upstream-priorities.mdx | 0 .../broadcasts-custom-domain.mdx | 97 +- .../distribution-for-vendors.mdx | 47 - src/content/software-distribution/index.mdx | 48 +- .../epm/getting-started.mdx | 211 + .../supply-chain-security/epm/index.mdx | 58 + .../supply-chain-security/epm/rego.mdx | 165 + src/content/supply-chain-security/index.mdx | 17 +- src/content/tbc/dependency-firewall.mdx | 2 +- .../upstream-proxying-and-caching/index.mdx | 3 - ...28-Screenshot_2024-11-08_at_3.28.38_PM.png | Bin ...48-Screenshot_2024-11-08_at_3.15.38_PM.png | Bin ...b3-Screenshot_2024-11-08_at_3.16.55_PM.png | Bin ...5a-Screenshot_2024-11-08_at_3.23.22_PM.png | Bin ...83389c218249a8916848a7099f769b781-scim.png | Bin 219732 -> 0 bytes ...c86740061f1f0e6d19803f12-auth-settings.png | Bin 377303 -> 0 bytes ...177c8f5d61e6a80a06946e649e5c0eba1-saml.png | Bin 372850 -> 0 bytes ...95bdaa9d34b5e665e5c0bf-saml-group-sync.png | Bin 411931 -> 0 bytes src/content/workspaces/index.mdx | 167 +- .../joining-a-workspace.mdx | 0 src/content/workspaces/privileges.mdx | 72 + src/content/workspaces/workspace-create.mdx | 23 + src/content/workspaces/workspace-settings.mdx | 92 + 271 files changed, 124548 insertions(+), 22496 deletions(-) delete mode 100644 package-lock.json create mode 100644 public/api-schema-v2.json create mode 100644 public/api-schema-v3.json delete mode 100644 src/content/access-control/index.mdx create mode 100644 src/content/accounts-and-teams/about-privileges.mdx delete mode 100644 src/content/accounts-and-teams/access-controls.mdx delete mode 100644 src/content/accounts-and-teams/permissions.mdx create mode 100644 src/content/administration/index.mdx rename src/content/{getting-started/images/workspaces => authentication/images}/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png (100%) rename src/content/{getting-started/images/workspaces => authentication/images}/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png (100%) rename src/content/{getting-started/images/workspaces => authentication/images}/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png (100%) rename src/content/{getting-started/images/workspaces => authentication/images}/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png (100%) rename src/content/{access-control => authentication}/images/openid-connect/2065557e5fdb762669dd32fa648efab1def4ff7a918e3e728674ca97099f6a04-annotated-openidconnect.png (100%) rename src/content/{access-control => authentication}/images/openid-connect/e031ac566d5d50d46982aebe44f8b30ce6ce4fba647aad0678ac3466414dde82-provider-settings.png (100%) rename src/content/{access-control => authentication}/images/openid-connect/e0b23d4-Group_2554.png (100%) rename src/content/{access-control => authentication}/images/scim-with-google/c2370ff90f8533154dc129aa4094c6c2a609c6c915382adb9d3e645610cfa826-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_5.png (100%) rename src/content/{access-control => authentication}/images/scim-with-google/cf166e95d48f2069f263ad8e318d5257155954738c98136eda1f581b83d01db3-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_4.png (100%) rename src/content/{access-control => authentication}/images/scim-with-jumpcloud/33a9e7ca325096db9b79c309c47d0ee3fd2741eeac422518b5790d964051833a-scim-steps.png (100%) rename src/content/{access-control => authentication}/images/scim-with-microsoft-entra-id/ef96dfb04a805ababf1ccb6d14708e2111d16f5f1a637beea546546b4bd9d409-scim-steps.png (100%) rename src/content/{access-control => authentication}/images/scim-with-okta/039ea4c884315e862a79be98f12717b08e6d8092fc23f79beb23dfc7c4cc2550-scim-steps.png (100%) rename src/content/{access-control => authentication}/images/scim-with-okta/93fc9ed-To_app.png (100%) rename src/content/{access-control => authentication}/images/scim-with-okta/a4625db-Provisioning.png (100%) rename src/content/{access-control => authentication}/images/scim-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png (100%) rename src/content/{access-control => authentication}/images/scim-with-onelogin/821b638351f176305f092a4ab1f6c763359b7c5c5808155d2150217305b559db-scim-steps.png (100%) rename src/content/{access-control => authentication}/images/scim-with-pingfederate/d09aad44bccec4d78046752b2e2c223729431e2f5075cf2cefb78c8310bc9fa3-scim-steps.png (100%) rename src/content/{access-control => authentication}/images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/0235d82-Screenshot_2023-04-04_at_13.38.39.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/043acd5-Screenshot_2023-03-28_at_16.37.32.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/19dfed2-cloudsmith-azure-ad-5.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/1b6c2ec-Screenshot_2023-04-04_at_13.24.50.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/236c28f-Screenshot_2023-04-04_at_13.36.48.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/23729bf-Screenshot_2023-03-28_at_16.42.10.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/423b58384411ad1aedae0d14f42f8901b4b228d5b88b0751d4ce9eae0c745b62-app.cloudsmith.com_demo_logsiPad_Pro_3.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/482a011-cloudsmith-azure-ad-6.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/4934353-Screenshot_2023-03-28_at_16.56.27.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/4995811-Screenshot_2023-03-28_at_16.44.01.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/5aabb6f-cloudsmith-azure-ad-8.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/66f29c5-cloudsmith-azure-ad-7.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/6a260ed-cloudsmith-azure-ad-11.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/6a5ba58-cloudsmith-azure-ad-9.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/6e7cf72-Screenshot_2023-03-28_at_16.36.00.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/76a302f-cloudsmith-azure-ad-4.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/7b4aac5-Screenshot_2023-04-04_at_13.36.03.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/8172851-Screenshot_2023-03-28_at_16.34.31.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/83b07ab-Screenshot_2023-04-04_at_13.42.02.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/8bac474-cloudsmith-azure-ad-3.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/9259a0d-Screenshot_2023-04-04_at_13.43.25.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/97a8b842ef1d4f9591593e89e33727e0dd89279dc81ef9a4ea51dee493ee2df0-app.cloudsmith.com_demo_logsiPad_Pro_2.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/9bcf573-Screenshot_2023-04-04_at_13.31.53.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/c5faa5f-cloudsmith-azure-ad-2.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/d168a64-cloudsmith-azure-ad-10.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/dff57a3-Screenshot_2023-03-28_at_16.39.27.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/eed4fe7-cloudsmith-azure-ad-1.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-azure-ad/fc07a79-cloudsmith-azure-ad-12.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/0a5217f-google_saml_10.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/203582c-google_saml_5.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/3ba9431-google_saml_4.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/4cd854e-google_saml_1.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/6a3220e-google_saml_3.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/728af64-google_saml_8.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/cefc6ab-google_saml_2.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/eefccf6-google_saml_6.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-google-g-suite/f9643b3-google_saml_7.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/010954d-HngkhoO.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/12f15d0-eyaqxsG.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/14d937d-Screen_Shot_2019-07-31_at_09.29.21.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/4b4ae82-f5U5xlF.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/4bbef67-9T6Ib4y.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/4f06940-YNKiBAY.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/5705a68-EvV1GHE.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/6807aa0-HVGiBNc.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/6ac1691-dne84If.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/78a10a8-MJw13iE.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/7fddf0b-RaB77x7.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/8e49768-hAcXDjT.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/b5ded7f-gSKo4qI.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/c1598b2-pipFfKJ.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-jumpcloud/c7d5fa2-tCKJUzh.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/03aa91ea5a1b2107d0582299e5bbc1e9904eea098733f1dbec45afd5ab65009b-sso-okta-scim-edited.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/04b7376-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/1430b35-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/3d740f0-okta-create-app-integration-sttribute-statements.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/48b6395-okta-create-app-integration-step1.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/4e5b80b-okta-create-app-integration-step2.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/636281f-okta-saml-metadata.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/6476b61-okta-create-app-integration-modal.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/93fc9ed-To_app.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/a4625db-Provisioning.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/aa6b34a-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/c6fa9a9-okta-create-app-integration.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/d1568be-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/d48b24a-okta-assign-people.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/e16e76b-okta-create-app-integration-step3.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-okta/f644e56a69fe3fea8d0371a39d146a7ce36412a4fc498f1dfd88f5633b7bb368-sso-with-okta-screenshot4.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/0027387-cloudsmith-one-login-4.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/08c9329-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/21f39b8-Screen_Shot_2019-07-16_at_00.26.21.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/24cfb10-1.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/32b32f1-cloudsmith-one-login-14.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/34b72c5-cloudsmith-one-login-2.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/3e15f56-cloudsmith-one-login-6.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/43482ad-cloudsmith-one-login-13.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/82cb58d-cloudsmith-one-login-1.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/86bddab-cloudsmith-one-login-3.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/9e74fe9-cloudsmith-one-login-9.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/adeced6-cloudsmith-one-login-7.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/af16926-11.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/fa71597-cloudsmith-one-login-12.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-onelogin/faf1d96-cloudsmith-one-login-11.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/037b994-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/369108b-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/3ee4f20-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/46c256b-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/7b732ce-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/9d8334a-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/a994b78-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/cd3fbde-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/f51a2c5-image.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on-with-pingidentity/groups.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on/0cbfea8-SAML-Group-Sync-Enable.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on/3025e50-create-mapping-form.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on/d13efaf-SAML-Group-Sync-Create.png (100%) rename src/content/{access-control => authentication}/images/single-sign-on/f5f6a37-Saml-setup.png (100%) rename src/content/{access-control => authentication}/images/two-factor-authentication/18eba4db98546831e2b0ff8daf7f41b058b27c656b6fc8b417973d037b40fcd0-Screenshot_2024-10-18_at_22.41.19.png (100%) rename src/content/{access-control => authentication}/images/two-factor-authentication/24f0bbc76e7cafb2884c549324b3afc3de9b9ebccb6fec9cef8f4dd3cbe64bd4-Screenshot_2024-10-18_at_22.39.03.png (100%) rename src/content/{access-control => authentication}/images/two-factor-authentication/771f8628256acdf27eb960109eada54ac2515497fe27feb4b512a3be169253d5-Screenshot_2024-10-18_at_22.37.36.png (100%) create mode 100644 src/content/authentication/index.mdx rename src/content/{access-control => authentication}/openid-connect.mdx (99%) create mode 100644 src/content/authentication/saml.mdx rename src/content/{access-control => authentication}/scim-with-google.mdx (100%) rename src/content/{access-control => authentication}/scim-with-jumpcloud.mdx (100%) rename src/content/{access-control => authentication}/scim-with-microsoft-entra-id.mdx (100%) rename src/content/{access-control => authentication}/scim-with-okta.mdx (100%) rename src/content/{access-control => authentication}/scim-with-onelogin.mdx (100%) rename src/content/{access-control => authentication}/scim-with-pingfederate.mdx (100%) rename src/content/{access-control => authentication}/scim.mdx (69%) rename src/content/{access-control => authentication}/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx (100%) rename src/content/{access-control => authentication}/single-sign-on-with-azure-ad.mdx (98%) rename src/content/{access-control => authentication}/single-sign-on-with-google-g-suite.mdx (98%) rename src/content/{access-control => authentication}/single-sign-on-with-jumpcloud.mdx (97%) rename src/content/{access-control => authentication}/single-sign-on-with-okta.mdx (99%) rename src/content/{access-control => authentication}/single-sign-on-with-onelogin.mdx (98%) rename src/content/{access-control => authentication}/single-sign-on-with-pingidentity.mdx (100%) rename src/content/{access-control => authentication}/single-sign-on.mdx (92%) rename src/content/{access-control => authentication}/two-factor-authentication.mdx (100%) rename src/content/{getting-started => developer-tools}/cli.mdx (99%) rename src/content/{ => developer-tools}/developer-community.mdx (100%) rename src/content/{logs-and-observability => developer-tools}/images/webhooks/6adb4ba1d613130b189d51b01a8f4c822c4736ff2b5adfb21e9bd06bbac194fb-repo-create-webhook-form.png (100%) rename src/content/{logs-and-observability => developer-tools}/images/webhooks/7f726346decc16da9b7ca0d8b0002086c1e3b8d8c5ab2f8a8ee69fca211bbc6d-repo-webhook-package-query.png (100%) rename src/content/{logs-and-observability => developer-tools}/images/webhooks/9e4de38851049e47068ce50d0a291af3d6c961bb11a105f044ce644648743925-repo-webhook-example.png (100%) rename src/content/{logs-and-observability => developer-tools}/images/webhooks/a34f5f079f0a7fb662a35f9e5b2a43721183085ad063fce09aa15e923f9d4854-repo-create-webhook.png (100%) rename src/content/{logs-and-observability => developer-tools}/images/webhooks/e34a6a7-mission_successful.jpg (100%) create mode 100644 src/content/developer-tools/index.mdx rename src/content/{getting-started => developer-tools}/terraform-provider.mdx (100%) rename src/content/{logs-and-observability => developer-tools}/webhooks.mdx (100%) create mode 100644 src/content/getting-started/common-use-cases.mdx delete mode 100644 src/content/getting-started/custom-domains.mdx create mode 100644 src/content/getting-started/images/developer.svg create mode 100644 src/content/getting-started/images/device.png delete mode 100644 src/content/getting-started/images/email-management/0131309709c31931626ca531bde71ddbeafcffc25389994f1418b8a9b8134d98-add-email.png create mode 100644 src/content/getting-started/images/signup.png delete mode 100644 src/content/getting-started/images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png delete mode 100644 src/content/getting-started/images/workspaces/13a08bb0b4e09840757898328a717c25a2e978d68a1daff7816c0f44a06cf311-global-privileges.png delete mode 100644 src/content/getting-started/images/workspaces/2437eb9334abde4fdaf268840bff7b39ea4894e795f7c01d3d094f20592229ac-object-privileges.png delete mode 100644 src/content/getting-started/images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png delete mode 100644 src/content/getting-started/images/workspaces/5a7210ce89a4ad40fc961f1500a76a7fa469f363f3ac7d7a07fbe2e7dd41a636-teams.png delete mode 100644 src/content/getting-started/images/workspaces/7ea55d80fcf7a86db156b47aafb9c5e0eff26cabb5bb832fafbd7c0fd2ade07f-settings-workspaces.png delete mode 100644 src/content/getting-started/images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png delete mode 100644 src/content/getting-started/images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png delete mode 100644 src/content/getting-started/images/workspaces/cfdd1f15b797468042b95b6e4616402426e5f08720e503039b3b86a269487648-create-new-workspace.png delete mode 100644 src/content/getting-started/images/workspaces/ebfd1af9bdfbb8a0015e8e885c01164fa68055d41a1ededa538c5fd55f77eb0d-workspace-profile.png delete mode 100644 src/content/getting-started/images/workspaces/f68019bfd870d2451ab22cd5291ee99120e96b7a6931401e164727d0faacdb88-billing-settings.png delete mode 100644 src/content/getting-started/profile.mdx delete mode 100644 src/content/getting-started/repository-packages.mdx create mode 100644 src/content/getting-started/sign-in.mdx create mode 100644 src/content/getting-started/sign-up.mdx delete mode 100644 src/content/getting-started/what-is-package-management.mdx delete mode 100644 src/content/getting-started/workspace-overview.mdx create mode 100644 src/content/guides/dependency_firewall.mdx rename src/content/{logs-and-observability => integrations}/images/microsoft-teams/cloudsmithWebhooksExample.png (100%) rename src/content/{logs-and-observability => integrations}/images/slack/9af567f-ready.png (100%) rename src/content/{logs-and-observability => integrations}/integrating-with-microsoft-teams.mdx (99%) rename src/content/{logs-and-observability => integrations}/integrating-with-slack.mdx (100%) delete mode 100644 src/content/logs-and-observability/repo-audit-logs.mdx rename src/content/{artifact-management => policy-management}/block-until-scan.mdx (93%) rename src/content/{accounts-and-teams => repositories}/images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png (100%) create mode 100644 src/content/repositories/repository-privileges.mdx rename src/content/{upstream-proxying-and-caching => repositories/upstreams}/failure-scenarios.mdx (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/cargo.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/composer.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/cran.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/dart.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/debian.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/docker.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/edit_upstream.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/go.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/helm.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/hex.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/maven.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/npm.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/nuget.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/python.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/quick_configure.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/rpm.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/ruby.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/swift.png (100%) rename src/content/{tbc/images/upstream-proxying-and-caching => repositories/upstreams/images}/upstream_formats.png (100%) rename src/content/{tbc/upstream-proxying-and-caching.mdx => repositories/upstreams/index.mdx} (96%) rename src/content/{upstream-proxying-and-caching => repositories/upstreams}/upstream-priorities.mdx (100%) delete mode 100644 src/content/software-distribution/distribution-for-vendors.mdx create mode 100644 src/content/supply-chain-security/epm/getting-started.mdx create mode 100644 src/content/supply-chain-security/epm/index.mdx create mode 100644 src/content/supply-chain-security/epm/rego.mdx delete mode 100644 src/content/upstream-proxying-and-caching/index.mdx rename src/content/{accounts-and-teams/images/permissions => workspaces/images/privileges}/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png (100%) rename src/content/{accounts-and-teams/images/permissions => workspaces/images/privileges}/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png (100%) rename src/content/{accounts-and-teams/images/permissions => workspaces/images/privileges}/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png (100%) rename src/content/{accounts-and-teams/images/permissions => workspaces/images/privileges}/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png (100%) delete mode 100644 src/content/workspaces/images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png delete mode 100644 src/content/workspaces/images/workspaces/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png delete mode 100644 src/content/workspaces/images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png delete mode 100644 src/content/workspaces/images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png rename src/content/{getting-started => workspaces}/joining-a-workspace.mdx (100%) create mode 100644 src/content/workspaces/privileges.mdx create mode 100644 src/content/workspaces/workspace-create.mdx create mode 100644 src/content/workspaces/workspace-settings.mdx diff --git a/.env b/.env index f5bafb4c..16d79383 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io/v2" +NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io/v1" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2b406ba9..00000000 --- a/package-lock.json +++ /dev/null @@ -1,18721 +0,0 @@ -{ - "name": "cloudsmith-docs", - "version": "0.0.1", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "cloudsmith-docs", - "version": "0.0.1", - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.0", - "@mdx-js/loader": "^3.1.0", - "@mdx-js/react": "^3.1.0", - "@next/mdx": "15.1.6", - "class-variance-authority": "^0.7.1", - "date-fns": "^4.1.0", - "fast-fuzzy": "^1.12.0", - "fast-glob": "^3.3.3", - "motion": "^12.4.2", - "next": "15.2.4", - "react": "19.0.0", - "react-dom": "19.0.0", - "react-hotkeys-hook": "^4.6.1", - "react-player": "^2.16.0", - "remark-frontmatter": "^5.0.0", - "remark-mdx-frontmatter": "^5.0.0" - }, - "devDependencies": { - "@csstools/postcss-global-data": "^3.0.0", - "@lehoczky/postcss-fluid": "^1.0.3", - "@next/env": "15.1.7", - "@radix-ui/react-dialog": "^1.1.5", - "@radix-ui/react-tabs": "^1.1.3", - "@radix-ui/react-visually-hidden": "^1.1.2", - "@shikijs/transformers": "^2.3.2", - "@svgr/webpack": "^8.1.0", - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.1.0", - "@trivago/prettier-plugin-sort-imports": "^5.2.0", - "@types/jest": "^29.5.14", - "@types/mdx": "^2.0.13", - "@types/node": "22.10.10", - "@types/react": "19.0.8", - "@types/react-dom": "19.0.3", - "eslint": "^9.20.0", - "eslint-config-next": "15.1.7", - "eslint-config-prettier": "^10.0.1", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", - "openapi-types": "^12.1.3", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-load-config": "^6.0.1", - "postcss-preset-env": "^10.1.1", - "prettier": "^3.4.2", - "rehype-autolink-headings": "^7.1.0", - "rehype-sanitize": "^6.0.0", - "rehype-slug": "^6.0.0", - "remark-gfm": "^4.0.1", - "shiki": "^2.2.0", - "stylelint": "^16.14.1", - "stylelint-config-css-modules": "^4.4.0", - "stylelint-config-standard": "^37.0.0", - "ts-node": "^10.9.2", - "tsx": "^4.19.2", - "typescript": "5.7.3" - }, - "engines": { - "node": "22.x" - } - }, - "node_modules/@adobe/css-tools": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", - "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", - "license": "MIT", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "license": "MIT" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", - "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.2", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.2" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", - "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", - "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-validator-option": "^7.25.9", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz", - "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.27.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz", - "integrity": "sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "regexpu-core": "^6.2.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", - "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.27.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", - "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.26.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz", - "integrity": "sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", - "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz", - "integrity": "sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", - "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz", - "integrity": "sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz", - "integrity": "sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.27.0", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", - "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.26.8", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.26.5", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.26.3", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.26.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.26.8", - "@babel/plugin-transform-typeof-symbol": "^7.26.7", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.11.0", - "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.40.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz", - "integrity": "sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-typescript": "^7.27.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", - "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", - "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.27.0", - "@babel/parser": "^7.27.0", - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@csstools/cascade-layer-name-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", - "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/css-calc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", - "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", - "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/color-helpers": "^5.0.2", - "@csstools/css-calc": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - } - }, - "node_modules/@csstools/postcss-cascade-layers": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", - "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.8.tgz", - "integrity": "sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-color-mix-function": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.8.tgz", - "integrity": "sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-content-alt-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", - "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.7.tgz", - "integrity": "sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-font-format-keywords": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", - "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gamut-mapping": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.8.tgz", - "integrity": "sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-global-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-global-data/-/postcss-global-data-3.0.0.tgz", - "integrity": "sha512-3dR5+RDhPW1uqPWZUyTBSVn03gGbxzoSyCEpXugy9UMtXeyKjrB84dX3V8eggzooCsX8wcraKehzdouNO+MlsA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.8.tgz", - "integrity": "sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-hwb-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.8.tgz", - "integrity": "sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-ic-unit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", - "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-initial": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", - "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", - "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-light-dark-function": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", - "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-float-and-clear": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", - "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overflow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", - "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-overscroll-behavior": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", - "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-resize": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", - "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", - "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-minmax": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.7.tgz", - "integrity": "sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", - "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-nested-calc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", - "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-normalize-display-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", - "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.8.tgz", - "integrity": "sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", - "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-random-function": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.3.tgz", - "integrity": "sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.8.tgz", - "integrity": "sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-scope-pseudo-class": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", - "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-sign-functions": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.2.tgz", - "integrity": "sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.7.tgz", - "integrity": "sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", - "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/color-helpers": "^5.0.2", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.7.tgz", - "integrity": "sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/postcss-unset-value": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", - "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@csstools/selector-resolve-nested": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", - "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/selector-specificity": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", - "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss-selector-parser": "^7.0.0" - } - }, - "node_modules/@csstools/utilities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", - "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/@emnapi/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", - "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.0.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", - "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", - "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", - "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", - "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", - "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", - "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", - "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", - "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", - "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", - "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", - "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", - "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", - "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", - "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", - "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", - "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", - "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", - "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", - "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", - "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", - "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", - "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", - "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", - "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", - "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", - "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", - "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", - "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", - "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", - "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint/js": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", - "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.12.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", - "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.5" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.2.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", - "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "license": "MIT" - }, - "node_modules/@keyv/serialize": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.3.tgz", - "integrity": "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer": "^6.0.3" - } - }, - "node_modules/@lehoczky/postcss-fluid": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lehoczky/postcss-fluid/-/postcss-fluid-1.0.3.tgz", - "integrity": "sha512-UQhBUGDpMA3wWGTWeVArL+dm2lbBM9LAFUg8U+CAt3gFpCDIdZHjq+mpf3OWos39aZQiYyLrZfRM8ynbPewfUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "postcss": "^8.3.0" - } - }, - "node_modules/@mdx-js/loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-3.1.0.tgz", - "integrity": "sha512-xU/lwKdOyfXtQGqn3VnJjlDrmKXEvMi1mgYxVmukEUtVycIz1nh7oQ40bKTd4cA7rLStqu0740pnhGYxGoqsCg==", - "license": "MIT", - "dependencies": { - "@mdx-js/mdx": "^3.0.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "webpack": ">=5" - }, - "peerDependenciesMeta": { - "webpack": { - "optional": true - } - } - }, - "node_modules/@mdx-js/mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", - "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdx": "^2.0.0", - "collapse-white-space": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "markdown-extensions": "^2.0.0", - "recma-build-jsx": "^1.0.0", - "recma-jsx": "^1.0.0", - "recma-stringify": "^1.0.0", - "rehype-recma": "^1.0.0", - "remark-mdx": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "source-map": "^0.7.0", - "unified": "^11.0.0", - "unist-util-position-from-estree": "^2.0.0", - "unist-util-stringify-position": "^4.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/@mdx-js/react": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", - "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", - "license": "MIT", - "dependencies": { - "@types/mdx": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", - "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.3.1", - "@emnapi/runtime": "^1.3.1", - "@tybys/wasm-util": "^0.9.0" - } - }, - "node_modules/@next/env": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", - "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", - "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "3.3.1" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@next/mdx": { - "version": "15.1.6", - "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-15.1.6.tgz", - "integrity": "sha512-jt9b9ayY8z3F/oQa2YCK7NugxY6ttAiJ8Eu29OTwwW5rcYMjXohIRaqsSrgFWhCFkJA6/EccKO+1ApocCZnn5A==", - "license": "MIT", - "dependencies": { - "source-map": "^0.7.0" - }, - "peerDependencies": { - "@mdx-js/loader": ">=0.15.0", - "@mdx-js/react": ">=0.15.0" - }, - "peerDependenciesMeta": { - "@mdx-js/loader": { - "optional": true - }, - "@mdx-js/react": { - "optional": true - } - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz", - "integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz", - "integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz", - "integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz", - "integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz", - "integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz", - "integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz", - "integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz", - "integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", - "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz", - "integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", - "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", - "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz", - "integrity": "sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.5", - "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.2", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.4", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-slot": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.1.0", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", - "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz", - "integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-escape-keydown": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", - "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz", - "integrity": "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", - "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.4.tgz", - "integrity": "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", - "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz", - "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz", - "integrity": "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-collection": "1.1.2", - "@radix-ui/react-compose-refs": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-use-callback-ref": "1.1.0", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz", - "integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.3.tgz", - "integrity": "sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.1", - "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-direction": "1.1.0", - "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.2", - "@radix-ui/react-primitive": "2.0.2", - "@radix-ui/react-roving-focus": "1.1.2", - "@radix-ui/react-use-controllable-state": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", - "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", - "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", - "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.0" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", - "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz", - "integrity": "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", - "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@shikijs/core": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", - "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4", - "hast-util-to-html": "^9.0.4" - } - }, - "node_modules/@shikijs/engine-javascript": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz", - "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "oniguruma-to-es": "^3.1.0" - } - }, - "node_modules/@shikijs/engine-oniguruma": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz", - "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2" - } - }, - "node_modules/@shikijs/langs": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", - "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/themes": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", - "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/transformers": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz", - "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/types": "2.5.0" - } - }, - "node_modules/@shikijs/types": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz", - "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/@shikijs/vscode-textmate": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", - "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", - "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", - "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", - "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", - "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", - "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", - "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/babel-preset": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", - "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", - "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", - "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", - "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", - "@svgr/babel-plugin-transform-svg-component": "8.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@svgr/core": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", - "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^8.1.3", - "snake-case": "^3.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", - "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.3", - "entities": "^4.4.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@svgr/plugin-jsx": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", - "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@svgr/babel-preset": "8.1.0", - "@svgr/hast-util-to-babel-ast": "8.0.0", - "svg-parser": "^2.0.4" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/plugin-svgo": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", - "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cosmiconfig": "^8.1.3", - "deepmerge": "^4.3.1", - "svgo": "^3.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - }, - "peerDependencies": { - "@svgr/core": "*" - } - }, - "node_modules/@svgr/webpack": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", - "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.21.3", - "@babel/plugin-transform-react-constant-elements": "^7.21.3", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.21.0", - "@svgr/core": "8.1.0", - "@svgr/plugin-jsx": "8.1.0", - "@svgr/plugin-svgo": "8.1.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/gregberge" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@testing-library/dom": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", - "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "5.3.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", - "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@adobe/css-tools": "^4.4.0", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.6.3", - "lodash": "^4.17.21", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", - "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@testing-library/react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.2.0.tgz", - "integrity": "sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.5" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@testing-library/dom": "^10.0.0", - "@types/react": "^18.0.0 || ^19.0.0", - "@types/react-dom": "^18.0.0 || ^19.0.0", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-5.2.2.tgz", - "integrity": "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@babel/generator": "^7.26.5", - "@babel/parser": "^7.26.7", - "@babel/traverse": "^7.26.7", - "@babel/types": "^7.26.7", - "javascript-natural-sort": "^0.7.1", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">18.12" - }, - "peerDependencies": { - "@vue/compiler-sfc": "3.x", - "prettier": "2.x - 3.x", - "prettier-plugin-svelte": "3.x", - "svelte": "4.x || 5.x" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - }, - "prettier-plugin-svelte": { - "optional": true - }, - "svelte": { - "optional": true - } - } - }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/aria-query": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", - "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", - "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "license": "MIT", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "license": "MIT" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "license": "MIT", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@types/jest/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@types/jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "license": "MIT", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", - "license": "MIT" - }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.10.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", - "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/react": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", - "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.0.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", - "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "17.0.33", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", - "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.28.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz", - "integrity": "sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.2.tgz", - "integrity": "sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.2.tgz", - "integrity": "sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.2.tgz", - "integrity": "sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.2.tgz", - "integrity": "sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.2.tgz", - "integrity": "sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.2.tgz", - "integrity": "sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.2.tgz", - "integrity": "sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.2.tgz", - "integrity": "sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.2.tgz", - "integrity": "sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.2.tgz", - "integrity": "sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.2.tgz", - "integrity": "sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.7" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.2.tgz", - "integrity": "sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.2.tgz", - "integrity": "sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz", - "integrity": "sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "deprecated": "Use your platform's native atob() and btoa() methods instead", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", - "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/aria-hidden": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", - "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", - "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/autoprefixer": { - "version": "10.4.21", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", - "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4", - "caniuse-lite": "^1.0.30001702", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.1.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", - "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.4", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", - "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.3", - "core-js-compat": "^3.40.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", - "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.4" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/cacheable": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.9.tgz", - "integrity": "sha512-FicwAUyWnrtnd4QqYAoRlNs44/a1jTL7XDKqm5gJ90wz1DQPlC7U2Rd1Tydpv+E7WAr4sQHuw8Q8M3nZMAyecQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "hookified": "^1.7.1", - "keyv": "^5.3.1" - } - }, - "node_modules/cacheable/node_modules/keyv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.2.tgz", - "integrity": "sha512-Lji2XRxqqa5Wg+CHLVfFKBImfJZ4pCSccu9eVWK6w4c2SDFLd8JAn1zqTuSFnsxb7ope6rMsnIHfp+eBbRBRZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@keyv/serialize": "^1.0.3" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "license": "MIT" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001707", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", - "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", - "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collapse-white-space": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", - "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/core-js-compat": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", - "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.24.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-blank-pseudo": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", - "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-functions-list": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", - "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12 || >=16" - } - }, - "node_modules/css-has-pseudo": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", - "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-prefers-color-scheme": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", - "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssdb": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.4.tgz", - "integrity": "sha512-3KSCVkjZJe/QxicVXnbyYSY26WsFc1YoMY7jep1ZKWMEVc7jEm6V2Xq2r+MX8WKQIuB7ofGbnr5iVI+aZpoSzg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - }, - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - } - ], - "license": "MIT-0" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true, - "license": "MIT" - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "license": "MIT" - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", - "dev": true, - "license": "MIT" - }, - "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", - "license": "MIT", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "deprecated": "Use your platform's native DOMException instead", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", - "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.126", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.126.tgz", - "integrity": "sha512-AtH1uLcTC72LA4vfYcEJJkrMk/MY/X0ub8Hv7QGAePW2JkeUFHEL/QfS4J77R6M87Sss8O0OcqReSaN1bpyA+Q==", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex-xs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", - "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", - "dev": true, - "license": "MIT" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/esast-util-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", - "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esast-util-from-js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", - "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "acorn": "^8.0.0", - "esast-util-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esbuild": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", - "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.1", - "@esbuild/android-arm": "0.25.1", - "@esbuild/android-arm64": "0.25.1", - "@esbuild/android-x64": "0.25.1", - "@esbuild/darwin-arm64": "0.25.1", - "@esbuild/darwin-x64": "0.25.1", - "@esbuild/freebsd-arm64": "0.25.1", - "@esbuild/freebsd-x64": "0.25.1", - "@esbuild/linux-arm": "0.25.1", - "@esbuild/linux-arm64": "0.25.1", - "@esbuild/linux-ia32": "0.25.1", - "@esbuild/linux-loong64": "0.25.1", - "@esbuild/linux-mips64el": "0.25.1", - "@esbuild/linux-ppc64": "0.25.1", - "@esbuild/linux-riscv64": "0.25.1", - "@esbuild/linux-s390x": "0.25.1", - "@esbuild/linux-x64": "0.25.1", - "@esbuild/netbsd-arm64": "0.25.1", - "@esbuild/netbsd-x64": "0.25.1", - "@esbuild/openbsd-arm64": "0.25.1", - "@esbuild/openbsd-x64": "0.25.1", - "@esbuild/sunos-x64": "0.25.1", - "@esbuild/win32-arm64": "0.25.1", - "@esbuild/win32-ia32": "0.25.1", - "@esbuild/win32-x64": "0.25.1" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint": { - "version": "9.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", - "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.2", - "@eslint/config-helpers": "^0.2.0", - "@eslint/core": "^0.12.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.23.0", - "@eslint/plugin-kit": "^0.2.7", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-next": { - "version": "15.1.7", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", - "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@next/eslint-plugin-next": "15.1.7", - "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.0", - "eslint-plugin-react-hooks": "^5.0.0" - }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", - "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.0.tgz", - "integrity": "sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.12", - "unrs-resolver": "^1.3.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", - "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-attach-comments": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", - "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-build-jsx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", - "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-walker": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-scope": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", - "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-to-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", - "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "astring": "^1.8.0", - "source-map": "^0.7.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-util-value-to-estree": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", - "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/estree-util-visit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", - "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-fuzzy": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/fast-fuzzy/-/fast-fuzzy-1.12.0.tgz", - "integrity": "sha512-sXxGgHS+ubYpsdLnvOvJ9w5GYYZrtL9mkosG3nfuD446ahvoWEsSKBP7ieGmWIKVLnaxRDgUJkZMdxRgA2Ni+Q==", - "license": "ISC", - "dependencies": { - "graphemesplit": "^2.4.1" - } - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", - "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", - "license": "MIT", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/framer-motion": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.6.2.tgz", - "integrity": "sha512-7LgPRlPs5aG8UxeZiMCMZz8firC53+2+9TnWV22tuSi38D3IFRxHRUqOREKckAkt6ztX+Dn6weLcatQilJTMcg==", - "license": "MIT", - "dependencies": { - "motion-dom": "^12.6.1", - "motion-utils": "^12.5.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/github-slugger": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", - "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", - "dev": true, - "license": "ISC" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", - "dev": true, - "license": "MIT" - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/graphemesplit": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/graphemesplit/-/graphemesplit-2.6.0.tgz", - "integrity": "sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==", - "license": "MIT", - "dependencies": { - "js-base64": "^3.6.0", - "unicode-trie": "^2.0.0" - } - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-heading-rank": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", - "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-sanitize": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", - "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "unist-util-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-estree": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", - "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-attach-comments": "^3.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-html": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", - "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^3.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", - "zwitch": "^2.0.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", - "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^7.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-js": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-string": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", - "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hookified": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.1.tgz", - "integrity": "sha512-GrO2l93P8xCWBSTBX9l2BxI78VU/MAAYag+pG8curS3aBGy0++ZlxrQ7PdUOUVMbn5BwkGb6+eRrnf43ipnFEA==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true, - "license": "MIT" - }, - "node_modules/html-tags": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", - "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "license": "ISC" - }, - "node_modules/inline-style-parser": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", - "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", - "license": "MIT" - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "license": "MIT", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.7.1" - } - }, - "node_modules/is-bun-module/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-environment-jsdom": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", - "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0", - "jsdom": "^20.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-base64": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", - "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", - "license": "BSD-3-Clause" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/known-css-properties": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", - "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", - "dev": true, - "license": "MIT" - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", - "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==", - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lz-string": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", - "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", - "dev": true, - "license": "MIT", - "bin": { - "lz-string": "bin/bin.js" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/markdown-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", - "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-table": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", - "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/mathml-tag-names": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", - "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", - "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", - "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", - "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "escape-string-regexp": "^5.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", - "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", - "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", - "license": "MIT", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", - "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", - "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "license": "MIT", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", - "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "license": "MIT" - }, - "node_modules/meow": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", - "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", - "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", - "license": "MIT", - "dependencies": { - "fault": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "dev": true, - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", - "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", - "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "micromark-factory-mdx-expression": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdx-md": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", - "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", - "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", - "license": "MIT", - "dependencies": { - "acorn": "^8.0.0", - "acorn-jsx": "^5.0.0", - "micromark-extension-mdx-expression": "^3.0.0", - "micromark-extension-mdx-jsx": "^3.0.0", - "micromark-extension-mdx-md": "^2.0.0", - "micromark-extension-mdxjs-esm": "^3.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-mdxjs-esm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", - "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", - "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", - "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", - "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-events-to-acorn": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-position-from-estree": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", - "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", - "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", - "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", - "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", - "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", - "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", - "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", - "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", - "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", - "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", - "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "estree-util-visit": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "vfile-message": "^4.0.0" - } - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", - "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", - "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", - "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", - "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", - "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", - "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/motion": { - "version": "12.6.2", - "resolved": "https://registry.npmjs.org/motion/-/motion-12.6.2.tgz", - "integrity": "sha512-8OBjjuC59WuWHKmPzVWT5M0t5kDxtkfMfHF1M7Iey6F/nvd0AI15YlPnpGlcagW/eOfkdWDO90U/K5LF/k55Yw==", - "license": "MIT", - "dependencies": { - "framer-motion": "^12.6.2", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/motion-dom": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.6.1.tgz", - "integrity": "sha512-8XVsriTUEVOepoIDgE/LDGdg7qaKXWdt+wQA/8z0p8YzJDLYL8gbimZ3YkCLlj7bB2i/4UBD/g+VO7y9ZY0zHQ==", - "license": "MIT", - "dependencies": { - "motion-utils": "^12.5.0" - } - }, - "node_modules/motion-utils": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz", - "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/next": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz", - "integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==", - "license": "MIT", - "dependencies": { - "@next/env": "15.2.4", - "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.15", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "15.2.4", - "@next/swc-darwin-x64": "15.2.4", - "@next/swc-linux-arm64-gnu": "15.2.4", - "@next/swc-linux-arm64-musl": "15.2.4", - "@next/swc-linux-x64-gnu": "15.2.4", - "@next/swc-linux-x64-musl": "15.2.4", - "@next/swc-win32-arm64-msvc": "15.2.4", - "@next/swc-win32-x64-msvc": "15.2.4", - "sharp": "^0.33.5" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next/node_modules/@next/env": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz", - "integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==", - "license": "MIT" - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.19", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.19.tgz", - "integrity": "sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/oniguruma-to-es": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", - "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex-xs": "^1.0.0", - "regex": "^6.0.1", - "regex-recursion": "^6.0.2" - } - }, - "node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "license": "MIT" - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", - "license": "MIT" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", - "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", - "license": "MIT" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.8", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-attribute-case-insensitive": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", - "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-clamp": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", - "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=7.6.0" - }, - "peerDependencies": { - "postcss": "^8.4.6" - } - }, - "node_modules/postcss-color-functional-notation": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.8.tgz", - "integrity": "sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-hex-alpha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", - "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-color-rebeccapurple": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", - "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-media": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", - "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", - "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-selectors": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", - "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/cascade-layer-name-parser": "^2.0.4", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-dir-pseudo-class": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", - "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-double-position-gradients": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", - "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.4" - } - }, - "node_modules/postcss-focus-visible": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", - "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-focus-within": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", - "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-gap-properties": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", - "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-image-set-function": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", - "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/utilities": "^2.0.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-lab-function": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.8.tgz", - "integrity": "sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/utilities": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-load-config": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", - "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "lilconfig": "^3.1.1" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "jiti": ">=1.21.0", - "postcss": ">=8.0.9", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - }, - "postcss": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/postcss-logical": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", - "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-media-query-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/postcss-nesting": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", - "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/selector-resolve-nested": "^3.0.0", - "@csstools/selector-specificity": "^5.0.0", - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-opacity-percentage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", - "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", - "dev": true, - "funding": [ - { - "type": "kofi", - "url": "https://ko-fi.com/mrcgrtz" - }, - { - "type": "liberapay", - "url": "https://liberapay.com/mrcgrtz" - } - ], - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-overflow-shorthand": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", - "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8" - } - }, - "node_modules/postcss-place": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", - "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-preset-env": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.5.tgz", - "integrity": "sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "@csstools/postcss-cascade-layers": "^5.0.1", - "@csstools/postcss-color-function": "^4.0.8", - "@csstools/postcss-color-mix-function": "^3.0.8", - "@csstools/postcss-content-alt-text": "^2.0.4", - "@csstools/postcss-exponential-functions": "^2.0.7", - "@csstools/postcss-font-format-keywords": "^4.0.0", - "@csstools/postcss-gamut-mapping": "^2.0.8", - "@csstools/postcss-gradients-interpolation-method": "^5.0.8", - "@csstools/postcss-hwb-function": "^4.0.8", - "@csstools/postcss-ic-unit": "^4.0.0", - "@csstools/postcss-initial": "^2.0.1", - "@csstools/postcss-is-pseudo-class": "^5.0.1", - "@csstools/postcss-light-dark-function": "^2.0.7", - "@csstools/postcss-logical-float-and-clear": "^3.0.0", - "@csstools/postcss-logical-overflow": "^2.0.0", - "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", - "@csstools/postcss-logical-resize": "^3.0.0", - "@csstools/postcss-logical-viewport-units": "^3.0.3", - "@csstools/postcss-media-minmax": "^2.0.7", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", - "@csstools/postcss-nested-calc": "^4.0.0", - "@csstools/postcss-normalize-display-values": "^4.0.0", - "@csstools/postcss-oklab-function": "^4.0.8", - "@csstools/postcss-progressive-custom-properties": "^4.0.0", - "@csstools/postcss-random-function": "^1.0.3", - "@csstools/postcss-relative-color-syntax": "^3.0.8", - "@csstools/postcss-scope-pseudo-class": "^4.0.1", - "@csstools/postcss-sign-functions": "^1.1.2", - "@csstools/postcss-stepped-value-functions": "^4.0.7", - "@csstools/postcss-text-decoration-shorthand": "^4.0.2", - "@csstools/postcss-trigonometric-functions": "^4.0.7", - "@csstools/postcss-unset-value": "^4.0.0", - "autoprefixer": "^10.4.19", - "browserslist": "^4.24.4", - "css-blank-pseudo": "^7.0.1", - "css-has-pseudo": "^7.0.2", - "css-prefers-color-scheme": "^10.0.0", - "cssdb": "^8.2.3", - "postcss-attribute-case-insensitive": "^7.0.1", - "postcss-clamp": "^4.1.0", - "postcss-color-functional-notation": "^7.0.8", - "postcss-color-hex-alpha": "^10.0.0", - "postcss-color-rebeccapurple": "^10.0.0", - "postcss-custom-media": "^11.0.5", - "postcss-custom-properties": "^14.0.4", - "postcss-custom-selectors": "^8.0.4", - "postcss-dir-pseudo-class": "^9.0.1", - "postcss-double-position-gradients": "^6.0.0", - "postcss-focus-visible": "^10.0.1", - "postcss-focus-within": "^9.0.1", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^6.0.0", - "postcss-image-set-function": "^7.0.0", - "postcss-lab-function": "^7.0.8", - "postcss-logical": "^8.1.0", - "postcss-nesting": "^13.0.1", - "postcss-opacity-percentage": "^3.0.0", - "postcss-overflow-shorthand": "^6.0.0", - "postcss-page-break": "^3.0.4", - "postcss-place": "^10.0.0", - "postcss-pseudo-class-any-link": "^10.0.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^8.0.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-pseudo-class-any-link": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", - "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "postcss": "^8.0.3" - } - }, - "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", - "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", - "dev": true, - "license": "MIT" - }, - "node_modules/postcss-safe-parser": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", - "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" - } - }, - "node_modules/postcss-selector-not": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", - "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT", - "dependencies": { - "postcss-selector-parser": "^7.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-selector-parser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", - "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", - "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/property-information": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", - "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/psl": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", - "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "funding": { - "url": "https://github.com/sponsors/lupomontero" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", - "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.0.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", - "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.25.0" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", - "license": "MIT" - }, - "node_modules/react-hotkeys-hook": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.6.1.tgz", - "integrity": "sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.8.1", - "react-dom": ">=16.8.1" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT" - }, - "node_modules/react-player": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.16.0.tgz", - "integrity": "sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==", - "license": "MIT", - "dependencies": { - "deepmerge": "^4.0.0", - "load-script": "^1.0.0", - "memoize-one": "^5.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.0.1" - }, - "peerDependencies": { - "react": ">=16.6.0" - } - }, - "node_modules/react-remove-scroll": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", - "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/recma-build-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", - "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-jsx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", - "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", - "license": "MIT", - "dependencies": { - "acorn-jsx": "^5.0.0", - "estree-util-to-js": "^2.0.0", - "recma-parse": "^1.0.0", - "recma-stringify": "^1.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", - "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "esast-util-from-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/recma-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", - "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-util-to-js": "^2.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "dev": true, - "license": "MIT", - "dependencies": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", - "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-recursion": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", - "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "regex-utilities": "^2.3.0" - } - }, - "node_modules/regex-utilities": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", - "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpu-core": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", - "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.2.0", - "regjsgen": "^0.8.0", - "regjsparser": "^0.12.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", - "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~3.0.2" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/rehype-autolink-headings": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-7.1.0.tgz", - "integrity": "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-recma": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", - "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "hast-util-to-estree": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-sanitize": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz", - "integrity": "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-sanitize": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-slug": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", - "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "github-slugger": "^2.0.0", - "hast-util-heading-rank": "^3.0.0", - "hast-util-to-string": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-frontmatter": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", - "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-frontmatter": "^2.0.0", - "micromark-extension-frontmatter": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", - "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", - "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", - "license": "MIT", - "dependencies": { - "mdast-util-mdx": "^3.0.0", - "micromark-extension-mdxjs": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-mdx-frontmatter": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/remark-mdx-frontmatter/-/remark-mdx-frontmatter-5.1.0.tgz", - "integrity": "sha512-F2l+FydK/QVwYMC4niMYl4Kh83TIfoR4qV9ekh/riWRakTTyjcLLyKTBo9fVgEtOmTEfIrqWwiYIm42+I5PMfQ==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "estree-util-value-to-estree": "^3.0.0", - "toml": "^3.0.0", - "unified": "^11.0.0", - "unist-util-mdx-define": "^1.0.0", - "yaml": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", - "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", - "license": "MIT", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", - "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sharp": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" - } - }, - "node_modules/sharp/node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", - "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "2.5.0", - "@shikijs/engine-javascript": "2.5.0", - "@shikijs/engine-oniguruma": "2.5.0", - "@shikijs/langs": "2.5.0", - "@shikijs/themes": "2.5.0", - "@shikijs/types": "2.5.0", - "@shikijs/vscode-textmate": "^10.0.2", - "@types/hast": "^3.0.4" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT", - "optional": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, - "license": "MIT", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stable-hash": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", - "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "license": "MIT", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-js": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", - "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", - "license": "MIT", - "dependencies": { - "style-to-object": "1.0.8" - } - }, - "node_modules/style-to-object": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", - "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", - "license": "MIT", - "dependencies": { - "inline-style-parser": "0.2.4" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "license": "MIT", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/stylelint": { - "version": "16.17.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.17.0.tgz", - "integrity": "sha512-I9OwVIWRMqVm2Br5iTbrfSqGRPWQUlvm6oXO1xZuYYu0Gpduy67N8wXOZv15p6E/JdlZiAtQaIoLKZEWk5hrjw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "dependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "@csstools/media-query-list-parser": "^4.0.2", - "@csstools/selector-specificity": "^5.0.0", - "@dual-bundle/import-meta-resolve": "^4.1.0", - "balanced-match": "^2.0.0", - "colord": "^2.9.3", - "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.3", - "css-tree": "^3.1.0", - "debug": "^4.3.7", - "fast-glob": "^3.3.3", - "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.0.7", - "global-modules": "^2.0.0", - "globby": "^11.1.0", - "globjoin": "^0.1.4", - "html-tags": "^3.3.1", - "ignore": "^7.0.3", - "imurmurhash": "^0.1.4", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.35.0", - "mathml-tag-names": "^2.1.3", - "meow": "^13.2.0", - "micromatch": "^4.0.8", - "normalize-path": "^3.0.0", - "picocolors": "^1.1.1", - "postcss": "^8.5.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-safe-parser": "^7.0.1", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0", - "resolve-from": "^5.0.0", - "string-width": "^4.2.3", - "supports-hyperlinks": "^3.2.0", - "svg-tags": "^1.0.0", - "table": "^6.9.0", - "write-file-atomic": "^5.0.1" - }, - "bin": { - "stylelint": "bin/stylelint.mjs" - }, - "engines": { - "node": ">=18.12.0" - } - }, - "node_modules/stylelint-config-css-modules": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/stylelint-config-css-modules/-/stylelint-config-css-modules-4.4.0.tgz", - "integrity": "sha512-J93MtxPjRzs/TjwbJ5y9SQy4iIqULXwL1CF1yx2tQCJfS/VZUcDAmoGOwqlLbhHXSQtZO5XQiA75NVWUR3KDCQ==", - "dev": true, - "license": "Unlicense", - "optionalDependencies": { - "stylelint-scss": "^6.0.0" - }, - "peerDependencies": { - "stylelint": "^14.5.1 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/stylelint-config-recommended": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-15.0.0.tgz", - "integrity": "sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.13.0" - } - }, - "node_modules/stylelint-config-standard": { - "version": "37.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-37.0.0.tgz", - "integrity": "sha512-+6eBlbSTrOn/il2RlV0zYGQwRTkr+WtzuVSs1reaWGObxnxLpbcspCUYajVQHonVfxVw2U+h42azGhrBvcg8OA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/stylelint" - }, - { - "type": "github", - "url": "https://github.com/sponsors/stylelint" - } - ], - "license": "MIT", - "dependencies": { - "stylelint-config-recommended": "^15.0.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.13.0" - } - }, - "node_modules/stylelint-scss": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.11.1.tgz", - "integrity": "sha512-e4rYo0UY+BIMtGeGanghrvHTjcryxgZbyFxUedp8dLFqC4P70aawNdYjRrQxbnKhu3BNr4+lt5e/53tcKXiwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "css-tree": "^3.0.1", - "is-plain-object": "^5.0.0", - "known-css-properties": "^0.35.0", - "mdn-data": "^2.15.0", - "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.6", - "postcss-selector-parser": "^7.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "stylelint": "^16.0.2" - } - }, - "node_modules/stylelint-scss/node_modules/mdn-data": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.18.0.tgz", - "integrity": "sha512-gtCy1yim/vpHF/tq3B4Z43x3zKWpYeb4IM3d/Mf4oMYcNuoXOYEaqtoFlLHw9zd7+WNN3jNh6/WXyUrD3OIiwQ==", - "dev": true, - "license": "CC0-1.0", - "optional": true - }, - "node_modules/stylelint/node_modules/balanced-match": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", - "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stylelint/node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "10.0.7", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.7.tgz", - "integrity": "sha512-txsf5fu3anp2ff3+gOJJzRImtrtm/oa9tYLN0iTuINZ++EyVR/nRrg2fKYwvG/pXDofcrvvb0scEbX3NyW/COw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^6.1.7" - } - }, - "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.7.tgz", - "integrity": "sha512-qwZ4xf1v1m7Rc9XiORly31YaChvKt6oNVHuqqZcoED/7O+ToyNVGobKsIAopY9ODcWpEDKEBAbrSOCBHtNQvew==", - "dev": true, - "license": "MIT", - "dependencies": { - "cacheable": "^1.8.9", - "flatted": "^3.3.3", - "hookified": "^1.7.1" - } - }, - "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", - "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/stylelint/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/stylelint/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", - "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=14.18" - }, - "funding": { - "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/svg-tags": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", - "dev": true - }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, - "node_modules/svgo/node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, - "node_modules/svgo/node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/table": { - "version": "6.9.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", - "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tiny-inflate": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", - "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "license": "MIT" - }, - "node_modules/tinyglobby": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", - "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", - "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "license": "MIT" - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tsx": { - "version": "4.19.3", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", - "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "~0.25.0", - "get-tsconfig": "^4.7.5" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, - "license": "MIT" - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-trie": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", - "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", - "license": "MIT", - "dependencies": { - "pako": "^0.2.5", - "tiny-inflate": "^1.0.0" - } - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-mdx-define": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-mdx-define/-/unist-util-mdx-define-1.1.1.tgz", - "integrity": "sha512-wW3Uq+92zHTCoJRVWBWr4KHMpkOIHMVZ5kyU/HVV4l1UMl6j2Vs6P+uj8tFMUk9QoA3wR/7wOVD23Cx77dXXoA==", - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "estree-util-scope": "^1.0.0", - "estree-walker": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/remcohaszing" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position-from-estree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", - "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unrs-resolver": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz", - "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/JounQin" - }, - "optionalDependencies": { - "@unrs/resolver-binding-darwin-arm64": "1.3.2", - "@unrs/resolver-binding-darwin-x64": "1.3.2", - "@unrs/resolver-binding-freebsd-x64": "1.3.2", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.2", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.2", - "@unrs/resolver-binding-linux-arm64-gnu": "1.3.2", - "@unrs/resolver-binding-linux-arm64-musl": "1.3.2", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.2", - "@unrs/resolver-binding-linux-s390x-gnu": "1.3.2", - "@unrs/resolver-binding-linux-x64-gnu": "1.3.2", - "@unrs/resolver-binding-linux-x64-musl": "1.3.2", - "@unrs/resolver-binding-wasm32-wasi": "1.3.2", - "@unrs/resolver-binding-win32-arm64-msvc": "1.3.2", - "@unrs/resolver-binding-win32-ia32-msvc": "1.3.2", - "@unrs/resolver-binding-win32-x64-msvc": "1.3.2" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", - "dev": true, - "license": "ISC", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "license": "MIT", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", - "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", - "license": "ISC", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af8a426c..4b8d8652 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@apidevtools/swagger-parser': specifier: ^10.1.0 - version: 10.1.0(openapi-types@12.1.3) + version: 10.1.1(openapi-types@12.1.3) '@mdx-js/loader': specifier: ^3.1.0 - version: 3.1.0(acorn@8.14.0) + version: 3.1.0(acorn@8.15.0) '@mdx-js/react': specifier: ^3.1.0 version: 3.1.0(@types/react@19.0.8)(react@19.0.0) '@next/mdx': specifier: 15.1.6 - version: 15.1.6(@mdx-js/loader@3.1.0(acorn@8.14.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0)) + version: 15.1.6(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -34,10 +34,10 @@ importers: version: 3.3.3 motion: specifier: ^12.4.2 - version: 12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: 15.2.4 - version: 15.2.4(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.2.4(@babel/core@7.27.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: 19.0.0 version: 19.0.0 @@ -46,7 +46,7 @@ importers: version: 19.0.0(react@19.0.0) react-hotkeys-hook: specifier: ^4.6.1 - version: 4.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 4.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-player: specifier: ^2.16.0 version: 2.16.0(react@19.0.0) @@ -55,29 +55,29 @@ importers: version: 5.0.0 remark-mdx-frontmatter: specifier: ^5.0.0 - version: 5.0.0 + version: 5.2.0 devDependencies: '@csstools/postcss-global-data': specifier: ^3.0.0 - version: 3.0.0(postcss@8.5.2) + version: 3.0.0(postcss@8.5.6) '@lehoczky/postcss-fluid': specifier: ^1.0.3 - version: 1.0.3(postcss@8.5.2) + version: 1.0.3(postcss@8.5.6) '@next/env': specifier: 15.1.7 version: 15.1.7 '@radix-ui/react-dialog': specifier: ^1.1.5 - version: 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.14(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-tabs': specifier: ^1.1.3 - version: 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.12(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-visually-hidden': specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.2.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@shikijs/transformers': specifier: ^2.3.2 - version: 2.3.2 + version: 2.5.0 '@svgr/webpack': specifier: ^8.1.0 version: 8.1.0(typescript@5.7.3) @@ -89,10 +89,10 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.1.0 - version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.0 - version: 5.2.0(prettier@3.4.2) + version: 5.2.2(prettier@3.6.1) '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -110,13 +110,13 @@ importers: version: 19.0.3(@types/react@19.0.8) eslint: specifier: ^9.20.0 - version: 9.20.0 + version: 9.29.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.20.0)(typescript@5.7.3) + version: 15.1.7(eslint@9.29.0)(typescript@5.7.3) eslint-config-prettier: specifier: ^10.0.1 - version: 10.0.1(eslint@9.20.0) + version: 10.1.5(eslint@9.29.0) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.10.10)(ts-node@10.9.2(@types/node@22.10.10)(typescript@5.7.3)) @@ -128,16 +128,16 @@ importers: version: 12.1.3 postcss-flexbugs-fixes: specifier: ^5.0.2 - version: 5.0.2(postcss@8.5.2) + version: 5.0.2(postcss@8.5.6) postcss-load-config: specifier: ^6.0.1 - version: 6.0.1(postcss@8.5.2)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.1(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0) postcss-preset-env: specifier: ^10.1.1 - version: 10.1.1(postcss@8.5.2) + version: 10.2.3(postcss@8.5.6) prettier: specifier: ^3.4.2 - version: 3.4.2 + version: 3.6.1 rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -152,37 +152,38 @@ importers: version: 4.0.1 shiki: specifier: ^2.2.0 - version: 2.2.0 + version: 2.5.0 stylelint: specifier: ^16.14.1 - version: 16.14.1(typescript@5.7.3) + version: 16.21.0(typescript@5.7.3) stylelint-config-css-modules: specifier: ^4.4.0 - version: 4.4.0(stylelint@16.14.1(typescript@5.7.3)) + version: 4.5.0(stylelint@16.21.0(typescript@5.7.3)) stylelint-config-standard: specifier: ^37.0.0 - version: 37.0.0(stylelint@16.14.1(typescript@5.7.3)) + version: 37.0.0(stylelint@16.21.0(typescript@5.7.3)) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@22.10.10)(typescript@5.7.3) tsx: specifier: ^4.19.2 - version: 4.19.2 + version: 4.20.3 typescript: specifier: 5.7.3 version: 5.7.3 packages: - '@adobe/css-tools@4.4.1': - resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + '@adobe/css-tools@4.4.3': + resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apidevtools/json-schema-ref-parser@9.0.6': - resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} + '@apidevtools/json-schema-ref-parser@11.7.2': + resolution: {integrity: sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==} + engines: {node: '>= 16'} '@apidevtools/openapi-schemas@2.1.0': resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} @@ -191,150 +192,141 @@ packages: '@apidevtools/swagger-methods@3.0.2': resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} - '@apidevtools/swagger-parser@10.1.0': - resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==} + '@apidevtools/swagger-parser@10.1.1': + resolution: {integrity: sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==} peerDependencies: openapi-types: '>=7' - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.26.3': - resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.2': - resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + '@babel/core@7.27.4': + resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.3': - resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + '@babel/generator@7.27.5': + resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.25.9': - resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.9': - resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} + '@babel/helper-create-class-features-plugin@7.27.1': + resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.26.3': - resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} + '@babel/helper-create-regexp-features-plugin@7.27.1': + resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.3': - resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + '@babel/helper-define-polyfill-provider@0.6.4': + resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.25.9': - resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + '@babel/helper-member-expression-to-functions@7.27.1': + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.25.9': - resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.25.9': - resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.25.9': - resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': - resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.25.9': - resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + '@babel/helper-wrap-function@7.27.1': + resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.2': - resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': + resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1': + resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -366,14 +358,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.26.0': - resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -388,8 +380,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.25.9': - resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -436,8 +428,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -448,344 +440,344 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.25.9': - resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} + '@babel/plugin-transform-async-generator-functions@7.27.1': + resolution: {integrity: sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.25.9': - resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + '@babel/plugin-transform-async-to-generator@7.27.1': + resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.25.9': - resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + '@babel/plugin-transform-block-scoping@7.27.5': + resolution: {integrity: sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + '@babel/plugin-transform-class-properties@7.27.1': + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + '@babel/plugin-transform-class-static-block@7.27.1': + resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.25.9': - resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + '@babel/plugin-transform-classes@7.27.1': + resolution: {integrity: sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.25.9': - resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + '@babel/plugin-transform-computed-properties@7.27.1': + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.25.9': - resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + '@babel/plugin-transform-destructuring@7.27.3': + resolution: {integrity: sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + '@babel/plugin-transform-dotall-regex@7.27.1': + resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} + '@babel/plugin-transform-exponentiation-operator@7.27.1': + resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + '@babel/plugin-transform-json-strings@7.27.1': + resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + '@babel/plugin-transform-logical-assignment-operators@7.27.1': + resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.26.3': - resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + '@babel/plugin-transform-modules-systemjs@7.27.1': + resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + '@babel/plugin-transform-numeric-separator@7.27.1': + resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + '@babel/plugin-transform-object-rest-spread@7.27.3': + resolution: {integrity: sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + '@babel/plugin-transform-optional-catch-binding@7.27.1': + resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + '@babel/plugin-transform-optional-chaining@7.27.1': + resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.25.9': - resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + '@babel/plugin-transform-parameters@7.27.1': + resolution: {integrity: sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.9': - resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + '@babel/plugin-transform-private-methods@7.27.1': + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.25.9': - resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + '@babel/plugin-transform-private-property-in-object@7.27.1': + resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.25.9': - resolution: {integrity: sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==} + '@babel/plugin-transform-react-constant-elements@7.27.1': + resolution: {integrity: sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.25.9': - resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} + '@babel/plugin-transform-react-display-name@7.27.1': + resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.25.9': - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} + '@babel/plugin-transform-react-jsx-development@7.27.1': + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.25.9': - resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} + '@babel/plugin-transform-react-jsx@7.27.1': + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.25.9': - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} + '@babel/plugin-transform-react-pure-annotations@7.27.1': + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + '@babel/plugin-transform-regenerator@7.27.5': + resolution: {integrity: sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + '@babel/plugin-transform-regexp-modifiers@7.27.1': + resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.25.9': - resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.25.9': - resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + '@babel/plugin-transform-spread@7.27.1': + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.25.9': - resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.26.3': - resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} + '@babel/plugin-transform-typescript@7.27.1': + resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + '@babel/plugin-transform-unicode-property-regex@7.27.1': + resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.25.9': - resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + '@babel/plugin-transform-unicode-sets-regex@7.27.1': + resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.26.0': - resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} + '@babel/preset-env@7.27.2': + resolution: {integrity: sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -795,36 +787,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.26.3': - resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==} + '@babel/preset-react@7.27.1': + resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.26.0': - resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} + '@babel/preset-typescript@7.27.1': + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.1': - resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} + '@babel/runtime@7.27.6': + resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.3': - resolution: {integrity: sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==} + '@babel/traverse@7.27.4': + resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.0': - resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -834,47 +822,47 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/cascade-layer-name-parser@2.0.4': - resolution: {integrity: sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==} + '@csstools/cascade-layer-name-parser@2.0.5': + resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/color-helpers@5.0.1': - resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.0': - resolution: {integrity: sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==} + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.6': - resolution: {integrity: sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==} + '@csstools/css-color-parser@3.0.10': + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@4.0.2': - resolution: {integrity: sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==} + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 '@csstools/postcss-cascade-layers@5.0.1': resolution: {integrity: sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==} @@ -882,26 +870,32 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.6': - resolution: {integrity: sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==} + '@csstools/postcss-color-function@4.0.10': + resolution: {integrity: sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.6': - resolution: {integrity: sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==} + '@csstools/postcss-color-mix-function@3.0.10': + resolution: {integrity: sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@2.0.4': - resolution: {integrity: sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==} + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0': + resolution: {integrity: sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.5': - resolution: {integrity: sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==} + '@csstools/postcss-content-alt-text@2.0.6': + resolution: {integrity: sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-exponential-functions@2.0.9': + resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -912,8 +906,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.6': - resolution: {integrity: sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==} + '@csstools/postcss-gamut-mapping@2.0.10': + resolution: {integrity: sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -924,38 +918,38 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.6': - resolution: {integrity: sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==} + '@csstools/postcss-gradients-interpolation-method@5.0.10': + resolution: {integrity: sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.6': - resolution: {integrity: sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==} + '@csstools/postcss-hwb-function@4.0.10': + resolution: {integrity: sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@4.0.0': - resolution: {integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==} + '@csstools/postcss-ic-unit@4.0.2': + resolution: {integrity: sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-initial@2.0.0': - resolution: {integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==} + '@csstools/postcss-initial@2.0.1': + resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-is-pseudo-class@5.0.1': - resolution: {integrity: sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==} + '@csstools/postcss-is-pseudo-class@5.0.3': + resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.7': - resolution: {integrity: sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==} + '@csstools/postcss-light-dark-function@2.0.9': + resolution: {integrity: sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -984,20 +978,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@3.0.3': - resolution: {integrity: sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==} + '@csstools/postcss-logical-viewport-units@3.0.4': + resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.5': - resolution: {integrity: sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==} + '@csstools/postcss-media-minmax@2.0.9': + resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4': - resolution: {integrity: sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': + resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1014,26 +1008,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.6': - resolution: {integrity: sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==} + '@csstools/postcss-oklab-function@4.0.10': + resolution: {integrity: sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@4.0.0': - resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==} + '@csstools/postcss-progressive-custom-properties@4.1.0': + resolution: {integrity: sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-random-function@1.0.1': - resolution: {integrity: sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==} + '@csstools/postcss-random-function@2.0.1': + resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.6': - resolution: {integrity: sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==} + '@csstools/postcss-relative-color-syntax@3.0.10': + resolution: {integrity: sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1044,26 +1038,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-sign-functions@1.1.0': - resolution: {integrity: sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==} + '@csstools/postcss-sign-functions@1.1.4': + resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.5': - resolution: {integrity: sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==} + '@csstools/postcss-stepped-value-functions@4.0.9': + resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.1': - resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} + '@csstools/postcss-text-decoration-shorthand@4.0.2': + resolution: {integrity: sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.5': - resolution: {integrity: sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==} + '@csstools/postcss-trigonometric-functions@4.0.9': + resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1074,8 +1068,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/selector-resolve-nested@3.0.0': - resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} + '@csstools/selector-resolve-nested@3.1.0': + resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 @@ -1095,155 +1089,167 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} + '@emnapi/core@1.4.3': + resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/runtime@1.4.3': resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + '@emnapi/wasi-threads@1.0.2': + resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + + '@esbuild/aix-ppc64@0.25.5': + resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + '@esbuild/android-arm64@0.25.5': + resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + '@esbuild/android-arm@0.25.5': + resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + '@esbuild/android-x64@0.25.5': + resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + '@esbuild/darwin-arm64@0.25.5': + resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + '@esbuild/darwin-x64@0.25.5': + resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + '@esbuild/freebsd-arm64@0.25.5': + resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + '@esbuild/freebsd-x64@0.25.5': + resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + '@esbuild/linux-arm64@0.25.5': + resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + '@esbuild/linux-arm@0.25.5': + resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + '@esbuild/linux-ia32@0.25.5': + resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + '@esbuild/linux-loong64@0.25.5': + resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + '@esbuild/linux-mips64el@0.25.5': + resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + '@esbuild/linux-ppc64@0.25.5': + resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + '@esbuild/linux-riscv64@0.25.5': + resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + '@esbuild/linux-s390x@0.25.5': + resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + '@esbuild/linux-x64@0.25.5': + resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + '@esbuild/netbsd-arm64@0.25.5': + resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.5': + resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + '@esbuild/openbsd-arm64@0.25.5': + resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + '@esbuild/openbsd-x64@0.25.5': + resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + '@esbuild/sunos-x64@0.25.5': + resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + '@esbuild/win32-arm64@0.25.5': + resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + '@esbuild/win32-ia32@0.25.5': + resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + '@esbuild/win32-x64@0.25.5': + resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1252,32 +1258,36 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.0': - resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} + '@eslint/config-array@0.20.1': + resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + '@eslint/config-helpers@0.2.3': + resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.11.0': - resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/core@0.15.1': + resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.20.0': - resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/js@9.29.0': + resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.3.3': + resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -1296,8 +1306,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} '@img/sharp-darwin-arm64@0.33.5': @@ -1479,8 +1489,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1503,8 +1513,8 @@ packages: '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@keyv/serialize@1.0.2': - resolution: {integrity: sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==} + '@keyv/serialize@1.0.3': + resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} '@lehoczky/postcss-fluid@1.0.3': resolution: {integrity: sha512-UQhBUGDpMA3wWGTWeVArL+dm2lbBM9LAFUg8U+CAt3gFpCDIdZHjq+mpf3OWos39aZQiYyLrZfRM8ynbPewfUA==} @@ -1529,6 +1539,9 @@ packages: '@types/react': '>=16' react: '>=16' + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@next/env@15.1.7': resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} @@ -1613,11 +1626,11 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@radix-ui/primitive@1.1.1': - resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + '@radix-ui/primitive@1.1.2': + resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/react-collection@1.1.2': - resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1629,8 +1642,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.1': - resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1638,8 +1651,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.1': - resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1647,8 +1660,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.5': - resolution: {integrity: sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==} + '@radix-ui/react-dialog@1.1.14': + resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1660,8 +1673,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-direction@1.1.0': - resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1669,8 +1682,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.4': - resolution: {integrity: sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==} + '@radix-ui/react-dismissable-layer@1.1.10': + resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1682,8 +1695,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.1': - resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + '@radix-ui/react-focus-guards@1.1.2': + resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1691,8 +1704,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.1': - resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1704,8 +1717,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.0': - resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1713,8 +1726,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-portal@1.1.3': - resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1726,8 +1739,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.2': - resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + '@radix-ui/react-presence@1.1.4': + resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1739,8 +1752,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.1': - resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1752,8 +1765,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.2': - resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + '@radix-ui/react-roving-focus@1.1.10': + resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1765,52 +1778,39 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.2': - resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' - '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-slot@1.1.1': - resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} + '@radix-ui/react-tabs@1.1.12': + resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - - '@radix-ui/react-slot@1.1.2': - resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': + '@types/react-dom': optional: true - '@radix-ui/react-tabs@1.1.3': - resolution: {integrity: sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==} + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': '*' - '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-use-callback-ref@1.1.0': - resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1818,8 +1818,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-controllable-state@1.1.0': - resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1827,8 +1827,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-escape-keydown@1.1.0': - resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1836,8 +1836,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.0': - resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1845,8 +1845,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.1.2': - resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1861,44 +1861,32 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.10.5': - resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} - - '@shikijs/core@2.2.0': - resolution: {integrity: sha512-U+vpKdsQDWuX3fPTCkSc8XPX9dCaS+r+qEP1XhnU30yxRFo2OxHJmY2H5rO1q+v0zB5R2vobsxEFt5uPf31CGQ==} - - '@shikijs/core@2.3.2': - resolution: {integrity: sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==} - - '@shikijs/engine-javascript@2.2.0': - resolution: {integrity: sha512-96SpZ4V3UVMtpSPR5QpmU395CNrQiRPszXK62m8gKR2HMA0653ruce7omS5eX6EyAyFSYHvBWtTuspiIsHpu4A==} + '@rushstack/eslint-patch@1.11.0': + resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} - '@shikijs/engine-javascript@2.3.2': - resolution: {integrity: sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==} + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} - '@shikijs/engine-oniguruma@2.2.0': - resolution: {integrity: sha512-wowCKwkvPFFMXFkiKK/a2vs5uTCc0W9+O9Xcu/oqFP6VoDFe14T8u/D+Rl4dCJJSOyeynP9mxNPJ82T5JHTNCw==} + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} - '@shikijs/engine-oniguruma@2.3.2': - resolution: {integrity: sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==} + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} - '@shikijs/langs@2.2.0': - resolution: {integrity: sha512-RSWLH3bnoyG6O1kZ2msh5jOkKKp8eENwyT30n62vUtXfp5cxkF/bpWPpO+p4+GAPhL2foBWR2kOerwkKG0HXlQ==} + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} - '@shikijs/themes@2.2.0': - resolution: {integrity: sha512-8Us9ZF2mV9kuh+4ySJ9MzrUDIpc2RIkRfKBZclkliW1z9a0PlGU2U7fCkItZZHpR5e4/ft5BzuO+GDqombC6Aw==} + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} - '@shikijs/transformers@2.3.2': - resolution: {integrity: sha512-2HDnJumw8A/9GecRpTgvfqSbPjEbJ4DPWq5J++OVP1gNMLvbV0MqFsP4canqRNM1LqB7VmWY45Stipb0ZIJ+0A==} + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} - '@shikijs/types@2.2.0': - resolution: {integrity: sha512-wkZZKs80NtW5Jp/7ONI1j7EdXSatX2BKMS7I01wliDa09gJKHkZyVqlEMRka/mjT5Qk9WgAyitoCKgGgbsP/9g==} + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} - '@shikijs/types@2.3.2': - resolution: {integrity: sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==} - - '@shikijs/vscode-textmate@10.0.1': - resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -2001,8 +1989,8 @@ packages: resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react@16.1.0': - resolution: {integrity: sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==} + '@testing-library/react@16.3.0': + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -2020,14 +2008,14 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@trivago/prettier-plugin-sort-imports@5.2.0': - resolution: {integrity: sha512-yEIJ7xMKYQwyNRjxSdi4Gs37iszikAjxfky+3hu9bn24u8eHLJNDMAoOTyowp8p6EpSl8IQMdkfBx+WnJTttsw==} + '@trivago/prettier-plugin-sort-imports@5.2.2': + resolution: {integrity: sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==} engines: {node: '>18.12'} peerDependencies: '@vue/compiler-sfc': 3.x prettier: 2.x - 3.x prettier-plugin-svelte: 3.x - svelte: 4.x + svelte: 4.x || 5.x peerDependenciesMeta: '@vue/compiler-sfc': optional: true @@ -2052,8 +2040,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@types/acorn@4.0.6': - resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2061,14 +2049,14 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.20.7': + resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2076,8 +2064,8 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -2112,8 +2100,8 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/ms@0.7.34': - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} '@types/node@22.10.10': resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} @@ -2144,55 +2132,162 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.22.0': - resolution: {integrity: sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==} + '@typescript-eslint/eslint-plugin@8.35.0': + resolution: {integrity: sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.35.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.22.0': - resolution: {integrity: sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==} + '@typescript-eslint/parser@8.35.0': + resolution: {integrity: sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/project-service@8.35.0': + resolution: {integrity: sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.35.0': + resolution: {integrity: sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.22.0': - resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==} + '@typescript-eslint/tsconfig-utils@8.35.0': + resolution: {integrity: sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.22.0': - resolution: {integrity: sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==} + '@typescript-eslint/type-utils@8.35.0': + resolution: {integrity: sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.22.0': - resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==} + '@typescript-eslint/types@8.35.0': + resolution: {integrity: sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.22.0': - resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==} + '@typescript-eslint/typescript-estree@8.35.0': + resolution: {integrity: sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.22.0': - resolution: {integrity: sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==} + '@typescript-eslint/utils@8.35.0': + resolution: {integrity: sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.22.0': - resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==} + '@typescript-eslint/visitor-keys@8.35.0': + resolution: {integrity: sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-android-arm-eabi@1.9.2': + resolution: {integrity: sha512-tS+lqTU3N0kkthU+rYp0spAYq15DU8ld9kXkaKg9sbQqJNF+WPMuNHZQGCgdxrUOEO0j22RKMwRVhF1HTl+X8A==} + cpu: [arm] + os: [android] + + '@unrs/resolver-binding-android-arm64@1.9.2': + resolution: {integrity: sha512-MffGiZULa/KmkNjHeuuflLVqfhqLv1vZLm8lWIyeADvlElJ/GLSOkoUX+5jf4/EGtfwrNFcEaB8BRas03KT0/Q==} + cpu: [arm64] + os: [android] + + '@unrs/resolver-binding-darwin-arm64@1.9.2': + resolution: {integrity: sha512-dzJYK5rohS1sYl1DHdJ3mwfwClJj5BClQnQSyAgEfggbUwA9RlROQSSbKBLqrGfsiC/VyrDPtbO8hh56fnkbsQ==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.9.2': + resolution: {integrity: sha512-gaIMWK+CWtXcg9gUyznkdV54LzQ90S3X3dn8zlh+QR5Xy7Y+Efqw4Rs4im61K1juy4YNb67vmJsCDAGOnIeffQ==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.9.2': + resolution: {integrity: sha512-S7QpkMbVoVJb0xwHFwujnwCAEDe/596xqY603rpi/ioTn9VDgBHnCCxh+UFrr5yxuMH+dliHfjwCZJXOPJGPnw==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2': + resolution: {integrity: sha512-+XPUMCuCCI80I46nCDFbGum0ZODP5NWGiwS3Pj8fOgsG5/ctz+/zzuBlq/WmGa+EjWZdue6CF0aWWNv84sE1uw==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.2': + resolution: {integrity: sha512-sqvUyAd1JUpwbz33Ce2tuTLJKM+ucSsYpPGl2vuFwZnEIg0CmdxiZ01MHQ3j6ExuRqEDUCy8yvkDKvjYFPb8Zg==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.9.2': + resolution: {integrity: sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.9.2': + resolution: {integrity: sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.2': + resolution: {integrity: sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.2': + resolution: {integrity: sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.9.2': + resolution: {integrity: sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.9.2': + resolution: {integrity: sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.9.2': + resolution: {integrity: sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.9.2': + resolution: {integrity: sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.9.2': + resolution: {integrity: sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.9.2': + resolution: {integrity: sha512-EdFbGn7o1SxGmN6aZw9wAkehZJetFPao0VGZ9OMBwKx6TkvDuj6cNeLimF/Psi6ts9lMOe+Dt6z19fZQ9Ye2fw==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.9.2': + resolution: {integrity: sha512-JY9hi1p7AG+5c/dMU8o2kWemM8I6VZxfGwn1GCtf3c5i+IKcMo2NQ8OjZ4Z3/itvY/Si3K10jOBQn7qsD/whUA==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.9.2': + resolution: {integrity: sha512-ryoo+EB19lMxAd80ln9BVf8pdOAxLb97amrQ3SFN9OCRn/5M5wvwDgAe4i8ZjhpbiHoDeP8yavcTEnpKBo7lZg==} + cpu: [x64] + os: [win32] abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -2210,8 +2305,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2262,8 +2357,8 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.4: - resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} engines: {node: '>=10'} aria-query@5.3.0: @@ -2277,8 +2372,8 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} array-union@2.1.0: @@ -2289,8 +2384,8 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.5: - resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} + array.prototype.findlastindex@1.2.6: + resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.3: @@ -2327,8 +2422,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -2338,8 +2433,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.2: - resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} + axe-core@4.10.3: + resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} axobject-query@4.1.0: @@ -2360,18 +2455,18 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-polyfill-corejs2@0.4.12: - resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + babel-plugin-polyfill-corejs2@0.4.13: + resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + babel-plugin-polyfill-corejs3@0.11.1: + resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.3: - resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + babel-plugin-polyfill-regenerator@0.6.4: + resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -2401,18 +2496,18 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.25.1: + resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2429,19 +2524,19 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - cacheable@1.8.8: - resolution: {integrity: sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==} + cacheable@1.10.0: + resolution: {integrity: sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} call-me-maybe@1.0.2: @@ -2459,8 +2554,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001718: - resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} + caniuse-lite@1.0.30001726: + resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2493,8 +2588,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cjs-module-lexer@1.4.1: - resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -2554,8 +2649,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.39.0: - resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + core-js-compat@3.43.0: + resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} @@ -2597,8 +2692,8 @@ packages: resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} engines: {node: '>=12 || >=16'} - css-has-pseudo@7.0.1: - resolution: {integrity: sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==} + css-has-pseudo@7.0.2: + resolution: {integrity: sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2620,10 +2715,6 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-tree@3.0.1: - resolution: {integrity: sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css-tree@3.1.0: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -2635,8 +2726,8 @@ packages: css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssdb@8.2.3: - resolution: {integrity: sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==} + cssdb@8.3.1: + resolution: {integrity: sha512-XnDRQMXucLueX92yDe0LPKupXetWoFOgawr4O4X41l5TltgK2NVbJJVDnnOywDYfW1sTJ28AcXGKOqdRKwCcmQ==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -2690,17 +2781,8 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2708,14 +2790,14 @@ packages: supports-color: optional: true - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.5.0: + resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} - decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decode-named-character-reference@1.2.0: + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2796,8 +2878,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -2806,8 +2888,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.70: - resolution: {integrity: sha512-P6FPqAWIZrC3sHDAwBitJBs7N7IF58m39XVny7DFseQXK2eiMn7nNQizFf63mWDDUnFvaqsM8FI0+ZZfLkdUGA==} + electron-to-chromium@1.5.176: + resolution: {integrity: sha512-2nDK9orkm7M9ZZkjO3PjbEd3VUulQLyg5T9O3enJdFvUg46Hzd4DUvTvAuEgbdHYXyFsiG4A5sO9IzToMH1cDg==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -2822,14 +2904,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} - engines: {node: '>=10.13.0'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2837,8 +2919,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -2861,8 +2943,9 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} @@ -2874,8 +2957,8 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + esbuild@0.25.5: + resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} engines: {node: '>=18'} hasBin: true @@ -2909,8 +2992,8 @@ packages: typescript: optional: true - eslint-config-prettier@10.0.1: - resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==} + eslint-config-prettier@10.1.5: + resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2918,8 +3001,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.7.0: - resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} + eslint-import-resolver-typescript@3.10.1: + resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -2931,8 +3014,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.0: - resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + eslint-module-utils@2.12.1: + resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2952,8 +3035,8 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.31.0: - resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} + eslint-plugin-import@2.32.0: + resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2968,32 +3051,32 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.37.4: - resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.20.0: - resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} + eslint@9.29.0: + resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3002,8 +3085,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -3086,15 +3169,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -3102,8 +3185,16 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - file-entry-cache@10.0.6: - resolution: {integrity: sha512-0wvv16mVo9nN0Md3k7DMjgAPKG/TY4F/gYMBVb/wMThFRJvzrpaqBFqF6km9wf8QfYTN+mNg5aeaBLfy8k35uA==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@10.1.1: + resolution: {integrity: sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -3125,18 +3216,18 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.6: - resolution: {integrity: sha512-F+CKgSwp0pzLx67u+Zy1aCueVWFAHWbXepvXlZ+bWVTaASbm5SyCnSJ80Fp1ePEmS57wU+Bf6cx6525qtMZ4lQ==} + flat-cache@6.1.10: + resolution: {integrity: sha512-B6/v1f0NwjxzmeOhzfXPGWpKBVA207LS7lehaVKQnFrVktcFRfkzjZZ2gwj2i1TkEUMQht7ZMJbABUT5N+V1Nw==} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - for-each@0.3.4: - resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + form-data@4.0.3: + resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} engines: {node: '>= 6'} format@0.2.2: @@ -3146,8 +3237,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@12.4.2: - resolution: {integrity: sha512-pW307cQKjDqEuO1flEoIFf6TkuJRfKr+c7qsHAJhDo4368N/5U8/7WU8J+xhd9+gjmOgJfgp+46evxRRFM39dA==} + framer-motion@12.19.1: + resolution: {integrity: sha512-nq9hwWAEKf4gzprbOZzKugLV5OVKF7zrNDY6UOVu+4D3ZgIkg8L9Jy6AMrpBM06fhbKJ6LEG6UY5+t7Eq6wNlg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -3186,8 +3277,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} get-nonce@1.0.1: @@ -3210,11 +3301,8 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.0: - resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} - - get-tsconfig@4.8.1: - resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + get-tsconfig@4.10.1: + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3268,8 +3356,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphemesplit@2.5.1: - resolution: {integrity: sha512-KWxi3NIPD6HxC8rXHHV7FpN48XvrWUPS7yrTVxNFG08o298FdSsGd012NuWHxQJ3IaH1wcnSVoY56mZxpl4T6A==} + graphemesplit@2.6.0: + resolution: {integrity: sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==} has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} @@ -3307,14 +3395,14 @@ packages: hast-util-sanitize@5.0.2: resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} - hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} - hast-util-to-html@9.0.4: - resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hast-util-to-jsx-runtime@2.3.2: - resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -3322,8 +3410,8 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hookified@1.7.0: - resolution: {integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==} + hookified@1.9.1: + resolution: {integrity: sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==} html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} @@ -3362,12 +3450,12 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.3: - resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} import-local@3.2.0: @@ -3393,9 +3481,6 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -3427,21 +3512,17 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-bun-module@1.3.0: - resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} + is-bun-module@2.0.0: + resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} - engines: {node: '>= 0.4'} - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -3488,6 +3569,10 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -3539,8 +3624,8 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} is-weakset@2.0.4: @@ -3750,6 +3835,11 @@ packages: engines: {node: '>=6'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3781,8 +3871,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.2.3: - resolution: {integrity: sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==} + keyv@5.3.4: + resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -3792,8 +3882,11 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - known-css-properties@0.35.0: - resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.36.0: + resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} + + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -3881,8 +3974,8 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} @@ -3893,8 +3986,8 @@ packages: mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -3905,14 +3998,14 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - mdast-util-mdx-jsx@3.1.3: - resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} @@ -3938,14 +4031,11 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - mdn-data@2.12.1: - resolution: {integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==} - mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.13.0: - resolution: {integrity: sha512-OmD1FDyP706JqPqtLqgev/QCK0qudBdUuKKag6InQ/elEw3Cm2AhXYktcSggdc/vWniYqIsofkcteMEOioW5vQ==} + mdn-data@2.21.0: + resolution: {integrity: sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==} memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -3961,8 +4051,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromark-core-commonmark@2.0.2: - resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} @@ -3976,8 +4066,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.0: - resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -3988,11 +4078,11 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-extension-mdx-expression@3.0.0: - resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} - micromark-extension-mdx-jsx@3.0.1: - resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} @@ -4009,8 +4099,8 @@ packages: micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-mdx-expression@2.0.2: - resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} @@ -4042,8 +4132,8 @@ packages: micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-events-to-acorn@2.0.2: - resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} @@ -4057,17 +4147,17 @@ packages: micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.0.3: - resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@2.0.1: - resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@4.0.1: - resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} @@ -4099,14 +4189,14 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - motion-dom@12.0.0: - resolution: {integrity: sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==} + motion-dom@12.19.0: + resolution: {integrity: sha512-m96uqq8VbwxFLU0mtmlsIVe8NGGSdpBvBSHbnnOJQxniPaabvVdGgxSamhuDwBsRhwX7xPxdICgVJlOpzn/5bw==} - motion-utils@12.0.0: - resolution: {integrity: sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==} + motion-utils@12.19.0: + resolution: {integrity: sha512-BuFTHINYmV07pdWs6lj6aI63vr2N4dg0vR+td0rtrdpWOhBzIkEklZyLcvKBoEtwSqx8Jg06vUB5RS0xDiUybw==} - motion@12.4.2: - resolution: {integrity: sha512-NGocC1zic2hGDEasxS76W5/7JIJ5loKIxawkFoEqk7yTu8yXI+6l6IlEj9u8aPp6tM04DwvuiQcobpw9i0hhiw==} + motion@12.19.1: + resolution: {integrity: sha512-OhoHWrht+zwDPccr2wGltJdwgz2elFBBt/sLei2g0hwICvy2hOBFUkA4Ylup3VnDgz+vUtecf694EV7bJK4XjA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -4127,9 +4217,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + napi-postinstall@0.2.4: + resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true natural-compare@1.4.0: @@ -4162,8 +4252,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -4180,15 +4270,15 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.16: - resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} + nwsapi@2.2.20: + resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -4199,8 +4289,8 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -4222,11 +4312,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oniguruma-to-es@2.3.0: - resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} - - oniguruma-to-es@3.1.0: - resolution: {integrity: sha512-BJ3Jy22YlgejHSO7Fvmz1kKazlaPmRSUH+4adTDUS/dKQ4wLxI+gALZ8updbaux7/m7fIlpgOZ5fp/Inq5jUAw==} + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} @@ -4266,15 +4353,15 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.2.1: - resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4302,16 +4389,20 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} postcss-attribute-case-insensitive@7.0.1: @@ -4326,8 +4417,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.6: - resolution: {integrity: sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==} + postcss-color-functional-notation@7.0.10: + resolution: {integrity: sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4344,20 +4435,20 @@ packages: peerDependencies: postcss: ^8.4 - postcss-custom-media@11.0.5: - resolution: {integrity: sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==} + postcss-custom-media@11.0.6: + resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-properties@14.0.4: - resolution: {integrity: sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==} + postcss-custom-properties@14.0.6: + resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@8.0.4: - resolution: {integrity: sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==} + postcss-custom-selectors@8.0.5: + resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4368,8 +4459,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-double-position-gradients@6.0.0: - resolution: {integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==} + postcss-double-position-gradients@6.0.2: + resolution: {integrity: sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4408,8 +4499,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-lab-function@7.0.6: - resolution: {integrity: sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==} + postcss-lab-function@7.0.10: + resolution: {integrity: sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4432,8 +4523,8 @@ packages: yaml: optional: true - postcss-logical@8.0.0: - resolution: {integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==} + postcss-logical@8.1.0: + resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4441,8 +4532,8 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - postcss-nesting@13.0.1: - resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} + postcss-nesting@13.0.2: + resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4470,8 +4561,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.1: - resolution: {integrity: sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==} + postcss-preset-env@10.2.3: + resolution: {integrity: sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4502,8 +4593,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-selector-parser@7.0.0: - resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -4513,16 +4604,16 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.2: - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + prettier@3.6.1: + resolution: {integrity: sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==} engines: {node: '>=14'} hasBin: true @@ -4541,8 +4632,8 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} @@ -4568,8 +4659,8 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-hotkeys-hook@4.6.1: - resolution: {integrity: sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==} + react-hotkeys-hook@4.6.2: + resolution: {integrity: sha512-FmP+ZriY3EG59Ug/lxNfrObCnW9xQShgk7Nb83+CkpfkcCpfS95ydv+E9JuXA5cp8KtskU7LGlIARpkc92X22Q==} peerDependencies: react: '>=16.8.1' react-dom: '>=16.8.1' @@ -4598,8 +4689,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.6.3: - resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + react-remove-scroll@2.7.1: + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -4649,21 +4740,12 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - - regex-recursion@5.1.1: - resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} - regex@5.1.1: - resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} - regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} @@ -4700,8 +4782,8 @@ packages: remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - remark-mdx-frontmatter@5.0.0: - resolution: {integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==} + remark-mdx-frontmatter@5.2.0: + resolution: {integrity: sha512-U/hjUYTkQqNjjMRYyilJgLXSPF65qbLPdoESOkXyrwz2tVyhAnm4GUKhfXqOOS9W34M3545xEMq+aMpHgVjEeQ==} remark-mdx@3.1.0: resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} @@ -4709,8 +4791,8 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.1: - resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -4750,16 +4832,12 @@ packages: engines: {node: '>= 0.4'} hasBin: true - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} run-parallel@1.2.0: @@ -4820,8 +4898,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@2.2.0: - resolution: {integrity: sha512-3uoZBmc+zpd2JOEeTvKP/vK5UVDDe8YiigkT9flq+MV5Z1MKFiUXfbLIvHfqcJ+V90StDiP1ckN97z1WlhC6cQ==} + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -4884,13 +4962,17 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} + stable-hash@0.0.5: + resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -4953,11 +5035,11 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-js@1.1.17: + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} - style-to-object@1.0.8: - resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + style-to-object@1.0.9: + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} @@ -4972,8 +5054,8 @@ packages: babel-plugin-macros: optional: true - stylelint-config-css-modules@4.4.0: - resolution: {integrity: sha512-J93MtxPjRzs/TjwbJ5y9SQy4iIqULXwL1CF1yx2tQCJfS/VZUcDAmoGOwqlLbhHXSQtZO5XQiA75NVWUR3KDCQ==} + stylelint-config-css-modules@4.5.0: + resolution: {integrity: sha512-GKp+06SaleUHzF5uOBmtEgj5r4aMMLRa+O6aKPcKtUHZBqVNXuxoJRgjCS5CFB7qHWz5gTcaqgR3PHJZhqztWg==} peerDependencies: stylelint: ^14.5.1 || ^15.0.0 || ^16.0.0 @@ -4989,14 +5071,14 @@ packages: peerDependencies: stylelint: ^16.13.0 - stylelint-scss@6.10.0: - resolution: {integrity: sha512-y03if6Qw9xBMoVaf7tzp5BbnYhYvudIKzURkhSHzcHG0bW0fAYvQpTUVJOe7DyhHaxeThBil4ObEMvGbV7+M+w==} + stylelint-scss@6.12.1: + resolution: {integrity: sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 - stylelint@16.14.1: - resolution: {integrity: sha512-oqCL7AC3786oTax35T/nuLL8p2C3k/8rHKAooezrPGRvUX0wX+qqs5kMWh5YYT4PHQgVDobHT4tw55WgpYG6Sw==} + stylelint@16.21.0: + resolution: {integrity: sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==} engines: {node: '>=18.12.0'} hasBin: true @@ -5008,8 +5090,8 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@3.1.0: - resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} engines: {node: '>=14.18'} supports-preserve-symlinks-flag@1.0.0: @@ -5034,10 +5116,6 @@ packages: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -5045,6 +5123,10 @@ packages: tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -5069,8 +5151,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -5095,8 +5177,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.19.2: - resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -5165,6 +5247,9 @@ packages: unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + unist-util-mdx-define@1.1.2: + resolution: {integrity: sha512-9ncH7i7TN5Xn7/tzX5bE3rXgz1X/u877gYVAUB3mLeTKYJmQHmqKTDBi6BTGXV7AeolBCI9ErcVsOt2qryoD0g==} + unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} @@ -5184,8 +5269,11 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + unrs-resolver@1.9.2: + resolution: {integrity: sha512-VUyWiTNQD7itdiMuJy+EuLEErLj3uwX/EpHQF8EOf33Dq3Ju6VW1GXm+swk6+1h7a49uv9fKZ+dft9jU7esdLA==} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5267,8 +5355,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} which@1.3.1: @@ -5299,8 +5387,8 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.18.2: + resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5325,9 +5413,9 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.7.0: - resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} - engines: {node: '>= 14'} + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@21.1.1: @@ -5351,26 +5439,26 @@ packages: snapshots: - '@adobe/css-tools@4.4.1': {} + '@adobe/css-tools@4.4.3': {} '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/json-schema-ref-parser@9.0.6': + '@apidevtools/json-schema-ref-parser@11.7.2': dependencies: '@jsdevtools/ono': 7.1.3 - call-me-maybe: 1.0.2 - js-yaml: 3.14.1 + '@types/json-schema': 7.0.15 + js-yaml: 4.1.0 '@apidevtools/openapi-schemas@2.1.0': {} '@apidevtools/swagger-methods@3.0.2': {} - '@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3)': + '@apidevtools/swagger-parser@10.1.1(openapi-types@12.1.3)': dependencies: - '@apidevtools/json-schema-ref-parser': 9.0.6 + '@apidevtools/json-schema-ref-parser': 11.7.2 '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 '@jsdevtools/ono': 7.1.3 @@ -5379,807 +5467,790 @@ snapshots: call-me-maybe: 1.0.2 openapi-types: 12.1.3 - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.27.1 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.3': {} + '@babel/compat-data@7.27.5': {} - '@babel/core@7.26.0': + '@babel/core@7.27.4': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.2 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.1 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.2': - dependencies: - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 - - '@babel/generator@7.26.3': + '@babel/generator@7.27.5': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.25.9': + '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.27.6 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + '@babel/compat-data': 7.27.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.25.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': + '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.27.4 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': + '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': + '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - debug: 4.3.7 + '@babel/core': 7.27.4 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.1 lodash.debounce: 4.0.8 - resolve: 1.22.8 + resolve: 1.22.10 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.25.9': + '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.3 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.9': + '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.3 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.25.9': + '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.27.6 - '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-wrap-function': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-member-expression-to-functions': 7.25.9 - '@babel/helper-optimise-call-expression': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.3 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} - '@babel/helper-wrap-function@7.25.9': + '@babel/helper-wrap-function@7.27.1': dependencies: - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.3 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.0 - - '@babel/parser@7.26.2': + '@babel/helpers@7.27.6': dependencies: - '@babel/types': 7.26.0 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 - '@babel/parser@7.26.3': + '@babel/parser@7.27.5': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.27.6 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.27.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/traverse': 7.27.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/template': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.3 + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.4 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-rest-spread@7.27.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-constant-elements@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.0 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/types': 7.27.6 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-regenerator@7.27.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/preset-env@7.27.2(@babel/core@7.27.4)': + dependencies: + '@babel/compat-data': 7.27.5 + '@babel/core': 7.27.4 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.4) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-block-scoping': 7.27.5(@babel/core@7.27.4) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.4) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-regenerator': 7.27.5(@babel/core@7.27.4) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.4) + babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) + babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) + core-js-compat: 3.43.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/types': 7.26.0 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.27.6 esutils: 2.0.3 - '@babel/preset-react@7.26.3(@babel/core@7.26.0)': + '@babel/preset-react@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': + '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - '@babel/runtime@7.27.1': {} + '@babel/runtime@7.27.6': {} - '@babel/template@7.25.9': + '@babel/template@7.27.2': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.2 - '@babel/types': 7.26.0 + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 - '@babel/traverse@7.26.3': + '@babel/traverse@7.27.4': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - debug: 4.3.7 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + debug: 4.4.1 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.26.0': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@babel/types@7.26.3': + '@babel/types@7.27.6': dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 '@bcoe/v8-coverage@0.2.3': {} @@ -6187,385 +6258,410 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/cascade-layer-name-parser@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/color-helpers@5.0.1': {} + '@csstools/color-helpers@5.0.2': {} - '@csstools/css-calc@2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/color-helpers': 5.0.1 - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-tokenizer@3.0.3': {} + '@csstools/css-tokenizer@3.0.4': {} - '@csstools/media-query-list-parser@4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.2)': + '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-color-function@4.0.6(postcss@8.5.2)': + '@csstools/postcss-color-function@4.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-color-mix-function@3.0.6(postcss@8.5.2)': + '@csstools/postcss-color-mix-function@3.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.2)': + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0(postcss@8.5.6)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-exponential-functions@2.0.5(postcss@8.5.2)': + '@csstools/postcss-content-alt-text@2.0.6(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.2)': + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.6)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.6)': + dependencies: + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.6(postcss@8.5.2)': + '@csstools/postcss-gamut-mapping@2.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 - '@csstools/postcss-global-data@3.0.0(postcss@8.5.2)': + '@csstools/postcss-global-data@3.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/postcss-gradients-interpolation-method@5.0.6(postcss@8.5.2)': + '@csstools/postcss-gradients-interpolation-method@5.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-hwb-function@4.0.6(postcss@8.5.2)': + '@csstools/postcss-hwb-function@4.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.2)': + '@csstools/postcss-ic-unit@4.0.2(postcss@8.5.6)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.0(postcss@8.5.2)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.2)': + '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.2)': + '@csstools/postcss-light-dark-function@2.0.9(postcss@8.5.6)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.2)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.2)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.2)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.2)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.2)': + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.6)': dependencies: - '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-media-minmax@2.0.5(postcss@8.5.2)': + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.2)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.6)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.2 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.2)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.6)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.2)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.6(postcss@8.5.2)': + '@csstools/postcss-oklab-function@4.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.2)': + '@csstools/postcss-progressive-custom-properties@4.1.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@1.0.1(postcss@8.5.2)': + '@csstools/postcss-random-function@2.0.1(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 - '@csstools/postcss-relative-color-syntax@3.0.6(postcss@8.5.2)': + '@csstools/postcss-relative-color-syntax@3.0.10(postcss@8.5.6)': dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.2)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - '@csstools/postcss-sign-functions@1.1.0(postcss@8.5.2)': + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 - '@csstools/postcss-stepped-value-functions@4.0.5(postcss@8.5.2)': + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 - '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.5.2)': + '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.6)': dependencies: - '@csstools/color-helpers': 5.0.1 - postcss: 8.5.2 + '@csstools/color-helpers': 5.0.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.5(postcss@8.5.2)': + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.6)': dependencies: - '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.2)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.0.0)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': dependencies: - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 - '@csstools/utilities@2.0.0(postcss@8.5.2)': + '@csstools/utilities@2.0.0(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 '@dual-bundle/import-meta-resolve@4.1.0': {} + '@emnapi/core@1.4.3': + dependencies: + '@emnapi/wasi-threads': 1.0.2 + tslib: 2.8.1 + optional: true + '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true - '@esbuild/aix-ppc64@0.23.1': + '@emnapi/wasi-threads@1.0.2': + dependencies: + tslib: 2.8.1 optional: true - '@esbuild/android-arm64@0.23.1': + '@esbuild/aix-ppc64@0.25.5': optional: true - '@esbuild/android-arm@0.23.1': + '@esbuild/android-arm64@0.25.5': optional: true - '@esbuild/android-x64@0.23.1': + '@esbuild/android-arm@0.25.5': optional: true - '@esbuild/darwin-arm64@0.23.1': + '@esbuild/android-x64@0.25.5': optional: true - '@esbuild/darwin-x64@0.23.1': + '@esbuild/darwin-arm64@0.25.5': optional: true - '@esbuild/freebsd-arm64@0.23.1': + '@esbuild/darwin-x64@0.25.5': optional: true - '@esbuild/freebsd-x64@0.23.1': + '@esbuild/freebsd-arm64@0.25.5': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/freebsd-x64@0.25.5': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/linux-arm64@0.25.5': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/linux-arm@0.25.5': optional: true - '@esbuild/linux-loong64@0.23.1': + '@esbuild/linux-ia32@0.25.5': optional: true - '@esbuild/linux-mips64el@0.23.1': + '@esbuild/linux-loong64@0.25.5': optional: true - '@esbuild/linux-ppc64@0.23.1': + '@esbuild/linux-mips64el@0.25.5': optional: true - '@esbuild/linux-riscv64@0.23.1': + '@esbuild/linux-ppc64@0.25.5': optional: true - '@esbuild/linux-s390x@0.23.1': + '@esbuild/linux-riscv64@0.25.5': optional: true - '@esbuild/linux-x64@0.23.1': + '@esbuild/linux-s390x@0.25.5': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@esbuild/linux-x64@0.25.5': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@esbuild/netbsd-arm64@0.25.5': optional: true - '@esbuild/openbsd-x64@0.23.1': + '@esbuild/netbsd-x64@0.25.5': optional: true - '@esbuild/sunos-x64@0.23.1': + '@esbuild/openbsd-arm64@0.25.5': optional: true - '@esbuild/win32-arm64@0.23.1': + '@esbuild/openbsd-x64@0.25.5': optional: true - '@esbuild/win32-ia32@0.23.1': + '@esbuild/sunos-x64@0.25.5': optional: true - '@esbuild/win32-x64@0.23.1': + '@esbuild/win32-arm64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0)': + '@esbuild/win32-ia32@0.25.5': + optional: true + + '@esbuild/win32-x64@0.25.5': + optional: true + + '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0)': dependencies: - eslint: 9.20.0 + eslint: 9.29.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.19.0': + '@eslint/config-array@0.20.1': dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.4.0 + '@eslint/object-schema': 2.1.6 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/config-helpers@0.2.3': {} + + '@eslint/core@0.14.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.11.0': + '@eslint/core@0.15.1': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.2.0': + '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 + debug: 4.4.1 + espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.20.0': {} + '@eslint/js@9.29.0': {} - '@eslint/object-schema@2.1.4': {} + '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.3.3': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.15.1 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -6579,7 +6675,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.1': {} + '@humanwhocodes/retry@0.4.3': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -6801,7 +6897,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -6813,7 +6909,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.6 + pirates: 4.0.7 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -6828,7 +6924,7 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -6852,26 +6948,26 @@ snapshots: '@jsdevtools/ono@7.1.3': {} - '@keyv/serialize@1.0.2': + '@keyv/serialize@1.0.3': dependencies: buffer: 6.0.3 - '@lehoczky/postcss-fluid@1.0.3(postcss@8.5.2)': + '@lehoczky/postcss-fluid@1.0.3(postcss@8.5.6)': dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - '@mdx-js/loader@3.1.0(acorn@8.14.0)': + '@mdx-js/loader@3.1.0(acorn@8.15.0)': dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + '@mdx-js/mdx': 3.1.0(acorn@8.15.0) source-map: 0.7.4 transitivePeerDependencies: - acorn - supports-color - '@mdx-js/mdx@3.1.0(acorn@8.14.0)': + '@mdx-js/mdx@3.1.0(acorn@8.15.0)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.13 @@ -6880,15 +6976,15 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.2 + hast-util-to-jsx-runtime: 2.3.6 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.14.0) + recma-jsx: 1.0.0(acorn@8.15.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 remark-parse: 11.0.0 - remark-rehype: 11.1.1 + remark-rehype: 11.1.2 source-map: 0.7.4 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 @@ -6905,6 +7001,13 @@ snapshots: '@types/react': 19.0.8 react: 19.0.0 + '@napi-rs/wasm-runtime@0.2.11': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + '@next/env@15.1.7': {} '@next/env@15.2.4': {} @@ -6913,11 +7016,11 @@ snapshots: dependencies: fast-glob: 3.3.1 - '@next/mdx@15.1.6(@mdx-js/loader@3.1.0(acorn@8.14.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0))': + '@next/mdx@15.1.6(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0))': dependencies: source-map: 0.7.4 optionalDependencies: - '@mdx-js/loader': 3.1.0(acorn@8.14.0) + '@mdx-js/loader': 3.1.0(acorn@8.15.0) '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@19.0.0) '@next/swc-darwin-arm64@15.2.4': @@ -6954,215 +7057,207 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.19.1 '@nolyfill/is-core-module@1.0.39': {} - '@radix-ui/primitive@1.1.1': {} + '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-collection@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-dialog@1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - aria-hidden: 1.2.4 + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) + aria-hidden: 1.2.6 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.6.3(@types/react@19.0.8)(react@19.0.0) + react-remove-scroll: 2.7.1(@types/react@19.0.8)(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-dismissable-layer@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - - '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-slot@1.1.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-tabs@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.1 - '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.8)(react@19.0.0)': dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: @@ -7171,72 +7266,47 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.10.5': {} + '@rushstack/eslint-patch@1.11.0': {} - '@shikijs/core@2.2.0': + '@shikijs/core@2.5.0': dependencies: - '@shikijs/engine-javascript': 2.2.0 - '@shikijs/engine-oniguruma': 2.2.0 - '@shikijs/types': 2.2.0 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.4 + hast-util-to-html: 9.0.5 - '@shikijs/core@2.3.2': + '@shikijs/engine-javascript@2.5.0': dependencies: - '@shikijs/engine-javascript': 2.3.2 - '@shikijs/engine-oniguruma': 2.3.2 - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.4 - - '@shikijs/engine-javascript@2.2.0': - dependencies: - '@shikijs/types': 2.2.0 - '@shikijs/vscode-textmate': 10.0.1 - oniguruma-to-es: 2.3.0 - - '@shikijs/engine-javascript@2.3.2': - dependencies: - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 - oniguruma-to-es: 3.1.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 - '@shikijs/engine-oniguruma@2.2.0': + '@shikijs/engine-oniguruma@2.5.0': dependencies: - '@shikijs/types': 2.2.0 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-oniguruma@2.3.2': + '@shikijs/langs@2.5.0': dependencies: - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 2.5.0 - '@shikijs/langs@2.2.0': + '@shikijs/themes@2.5.0': dependencies: - '@shikijs/types': 2.2.0 + '@shikijs/types': 2.5.0 - '@shikijs/themes@2.2.0': + '@shikijs/transformers@2.5.0': dependencies: - '@shikijs/types': 2.2.0 - - '@shikijs/transformers@2.3.2': - dependencies: - '@shikijs/core': 2.3.2 - '@shikijs/types': 2.3.2 - - '@shikijs/types@2.2.0': - dependencies: - '@shikijs/vscode-textmate': 10.0.1 - '@types/hast': 3.0.4 + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 - '@shikijs/types@2.3.2': + '@shikijs/types@2.5.0': dependencies: - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.1': {} + '@shikijs/vscode-textmate@10.0.2': {} '@sinclair/typebox@0.27.8': {} @@ -7248,54 +7318,54 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': + '@svgr/babel-preset@8.1.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.4) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.4) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.4) '@svgr/core@8.1.0(typescript@5.7.3)': dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.7.3) snake-case: 3.0.4 @@ -7305,13 +7375,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.26.0 + '@babel/types': 7.27.6 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))': dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -7329,11 +7399,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.7.3)': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-react': 7.26.3(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.27.4) + '@babel/preset-env': 7.27.2(@babel/core@7.27.4) + '@babel/preset-react': 7.27.1(@babel/core@7.27.4) + '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3))(typescript@5.7.3) @@ -7349,8 +7419,8 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.27.1 + '@babel/code-frame': 7.27.1 + '@babel/runtime': 7.27.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -7360,7 +7430,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: - '@adobe/css-tools': 4.4.1 + '@adobe/css-tools': 4.4.3 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -7368,9 +7438,9 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.27.1 + '@babel/runtime': 7.27.6 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -7380,15 +7450,15 @@ snapshots: '@tootallnate/once@2.0.0': {} - '@trivago/prettier-plugin-sort-imports@5.2.0(prettier@3.4.2)': + '@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.6.1)': dependencies: - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/traverse': 7.26.3 - '@babel/types': 7.26.3 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 javascript-natural-sort: 0.7.1 lodash: 4.17.21 - prettier: 3.4.2 + prettier: 3.6.1 transitivePeerDependencies: - supports-color @@ -7402,42 +7472,43 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@types/acorn@4.0.6': + '@tybys/wasm-util@0.9.0': dependencies: - '@types/estree': 1.0.6 + tslib: 2.8.1 + optional: true '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@types/babel__generator': 7.6.8 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.7 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.27.6 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.20.7': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.27.6 '@types/debug@4.1.12': dependencies: - '@types/ms': 0.7.34 + '@types/ms': 2.1.0 '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 - '@types/estree@1.0.6': {} + '@types/estree@1.0.8': {} '@types/graceful-fs@4.1.9': dependencies: @@ -7466,7 +7537,7 @@ snapshots: dependencies: '@types/node': 22.10.10 '@types/tough-cookie': 4.0.5 - parse5: 7.2.1 + parse5: 7.3.0 '@types/json-schema@7.0.15': {} @@ -7478,7 +7549,7 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/ms@0.7.34': {} + '@types/ms@2.1.0': {} '@types/node@22.10.10': dependencies: @@ -7506,105 +7577,179 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint@9.20.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint@9.29.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/type-utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.22.0 - eslint: 9.20.0 + '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.35.0 + '@typescript-eslint/type-utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.35.0 + eslint: 9.29.0 graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.0.0(typescript@5.7.3) + ts-api-utils: 2.1.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.35.0 + '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.35.0 + debug: 4.4.1 + eslint: 9.29.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3)': + '@typescript-eslint/project-service@8.35.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.22.0 - debug: 4.4.0 - eslint: 9.20.0 + '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.7.3) + '@typescript-eslint/types': 8.35.0 + debug: 4.4.1 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.22.0': + '@typescript-eslint/scope-manager@8.35.0': + dependencies: + '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/visitor-keys': 8.35.0 + + '@typescript-eslint/tsconfig-utils@8.35.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/visitor-keys': 8.22.0 + typescript: 5.7.3 - '@typescript-eslint/type-utils@8.22.0(eslint@9.20.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.35.0(eslint@9.29.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - debug: 4.4.0 - eslint: 9.20.0 - ts-api-utils: 2.0.0(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + debug: 4.4.1 + eslint: 9.29.0 + ts-api-utils: 2.1.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.22.0': {} + '@typescript-eslint/types@8.35.0': {} - '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.35.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/visitor-keys': 8.22.0 - debug: 4.4.0 + '@typescript-eslint/project-service': 8.35.0(typescript@5.7.3) + '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.7.3) + '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/visitor-keys': 8.35.0 + debug: 4.4.1 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.0.0(typescript@5.7.3) + ts-api-utils: 2.1.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.22.0(eslint@9.20.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.35.0(eslint@9.29.0)(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0) - '@typescript-eslint/scope-manager': 8.22.0 - '@typescript-eslint/types': 8.22.0 - '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) - eslint: 9.20.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0) + '@typescript-eslint/scope-manager': 8.35.0 + '@typescript-eslint/types': 8.35.0 + '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) + eslint: 9.29.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.22.0': + '@typescript-eslint/visitor-keys@8.35.0': + dependencies: + '@typescript-eslint/types': 8.35.0 + eslint-visitor-keys: 4.2.1 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.9.2': + optional: true + + '@unrs/resolver-binding-android-arm64@1.9.2': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.9.2': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.9.2': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.9.2': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.9.2': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.9.2': dependencies: - '@typescript-eslint/types': 8.22.0 - eslint-visitor-keys: 4.2.0 + '@napi-rs/wasm-runtime': 0.2.11 + optional: true - '@ungap/structured-clone@1.2.0': {} + '@unrs/resolver-binding-win32-arm64-msvc@1.9.2': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.9.2': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.9.2': + optional: true abab@2.0.6: {} acorn-globals@7.0.1: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk: 8.3.4 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.3.4: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 - acorn@8.14.0: {} + acorn@8.15.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -7622,7 +7767,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 + fast-uri: 3.0.6 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -7651,7 +7796,7 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.4: + aria-hidden@1.2.6: dependencies: tslib: 2.8.1 @@ -7663,17 +7808,19 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-includes@3.1.8: + array-includes@3.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-string: 1.1.1 + math-intrinsics: 1.1.0 array-union@2.1.0: {} @@ -7681,50 +7828,51 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 - array.prototype.findlastindex@1.2.5: + array.prototype.findlastindex@1.2.6: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.0 + es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 ast-types-flow@0.0.8: {} @@ -7737,31 +7885,31 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.20(postcss@8.5.2): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001718 + browserslist: 4.25.1 + caniuse-lite: 1.0.30001726 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 - axe-core@4.10.2: {} + axe-core@4.10.3: {} axobject-query@4.1.0: {} - babel-jest@29.7.0(@babel/core@7.26.0): + babel-jest@29.7.0(@babel/core@7.27.4): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.0) + babel-preset-jest: 29.6.3(@babel/core@7.27.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -7770,7 +7918,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -7780,59 +7928,59 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.20.7 - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.4): dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/compat-data': 7.27.5 + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.4): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) + core-js-compat: 3.43.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): + babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.4): dependencies: - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/core': 7.27.4 + '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) - - babel-preset-jest@29.6.3(@babel/core@7.26.0): - dependencies: - '@babel/core': 7.26.0 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.4) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.4) + + babel-preset-jest@29.6.3(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) bail@2.0.2: {} @@ -7844,12 +7992,12 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -7857,12 +8005,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.25.1: dependencies: - caniuse-lite: 1.0.30001718 - electron-to-chromium: 1.5.70 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001726 + electron-to-chromium: 1.5.176 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.1) bser@2.1.1: dependencies: @@ -7879,27 +8027,27 @@ snapshots: dependencies: streamsearch: 1.1.0 - cacheable@1.8.8: + cacheable@1.10.0: dependencies: - hookified: 1.7.0 - keyv: 5.2.3 + hookified: 1.9.1 + keyv: 5.3.4 - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-bound@1.0.3: + call-bound@1.0.4: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 call-me-maybe@1.0.2: {} @@ -7909,7 +8057,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001718: {} + caniuse-lite@1.0.30001726: {} ccount@2.0.1: {} @@ -7935,7 +8083,7 @@ snapshots: ci-info@3.9.0: {} - cjs-module-lexer@1.4.1: {} + cjs-module-lexer@1.4.3: {} class-variance-authority@0.7.1: dependencies: @@ -7989,13 +8137,13 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.39.0: + core-js-compat@3.43.0: dependencies: - browserslist: 4.24.2 + browserslist: 4.25.1 cosmiconfig@8.3.6(typescript@5.7.3): dependencies: - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 @@ -8005,7 +8153,7 @@ snapshots: cosmiconfig@9.0.0(typescript@5.7.3): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -8034,30 +8182,30 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-blank-pseudo@7.0.1(postcss@8.5.2): + css-blank-pseudo@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 css-functions-list@3.2.3: {} - css-has-pseudo@7.0.1(postcss@8.5.2): + css-has-pseudo@7.0.2(postcss@8.5.6): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.5.2): + css-prefers-color-scheme@10.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.2 nth-check: 2.1.1 css-tree@2.2.1: @@ -8070,12 +8218,6 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 - css-tree@3.0.1: - dependencies: - mdn-data: 2.12.1 - source-map-js: 1.2.1 - optional: true - css-tree@3.1.0: dependencies: mdn-data: 2.12.2 @@ -8085,7 +8227,7 @@ snapshots: css.escape@1.5.1: {} - cssdb@8.2.3: {} + cssdb@8.3.1: {} cssesc@3.0.0: {} @@ -8113,19 +8255,19 @@ snapshots: data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 @@ -8135,21 +8277,17 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.7: - dependencies: - ms: 2.1.3 - - debug@4.4.0: + debug@4.4.1: dependencies: ms: 2.1.3 - decimal.js@10.4.3: {} + decimal.js@10.5.0: {} - decode-named-character-reference@1.0.2: + decode-named-character-reference@1.2.0: dependencies: character-entities: 2.0.2 - dedent@1.5.3: {} + dedent@1.6.0: {} deep-is@0.1.4: {} @@ -8214,7 +8352,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.1.0: + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -8227,11 +8365,11 @@ snapshots: dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.70: {} + electron-to-chromium@1.5.176: {} emittery@0.13.1: {} @@ -8241,26 +8379,23 @@ snapshots: emoji-regex@9.2.2: {} - enhanced-resolve@5.18.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - entities@4.5.0: {} + entities@6.0.1: {} + env-paths@2.2.1: {} error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.9: + es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 @@ -8270,7 +8405,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -8283,13 +8418,15 @@ snapshots: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 + is-negative-zero: 2.0.3 is-regex: 1.2.1 + is-set: 2.0.3 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.0 + is-weakref: 1.1.1 math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 @@ -8298,6 +8435,7 @@ snapshots: safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -8306,7 +8444,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 es-define-property@1.0.1: {} @@ -8315,13 +8453,13 @@ snapshots: es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -8338,11 +8476,11 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 @@ -8362,36 +8500,37 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.14.0 + acorn: 8.15.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 - esbuild@0.23.1: + esbuild@0.25.5: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 + '@esbuild/aix-ppc64': 0.25.5 + '@esbuild/android-arm': 0.25.5 + '@esbuild/android-arm64': 0.25.5 + '@esbuild/android-x64': 0.25.5 + '@esbuild/darwin-arm64': 0.25.5 + '@esbuild/darwin-x64': 0.25.5 + '@esbuild/freebsd-arm64': 0.25.5 + '@esbuild/freebsd-x64': 0.25.5 + '@esbuild/linux-arm': 0.25.5 + '@esbuild/linux-arm64': 0.25.5 + '@esbuild/linux-ia32': 0.25.5 + '@esbuild/linux-loong64': 0.25.5 + '@esbuild/linux-mips64el': 0.25.5 + '@esbuild/linux-ppc64': 0.25.5 + '@esbuild/linux-riscv64': 0.25.5 + '@esbuild/linux-s390x': 0.25.5 + '@esbuild/linux-x64': 0.25.5 + '@esbuild/netbsd-arm64': 0.25.5 + '@esbuild/netbsd-x64': 0.25.5 + '@esbuild/openbsd-arm64': 0.25.5 + '@esbuild/openbsd-x64': 0.25.5 + '@esbuild/sunos-x64': 0.25.5 + '@esbuild/win32-arm64': 0.25.5 + '@esbuild/win32-ia32': 0.25.5 + '@esbuild/win32-x64': 0.25.5 escalade@3.2.0: {} @@ -8409,19 +8548,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.1.7(eslint@9.20.0)(typescript@5.7.3): + eslint-config-next@15.1.7(eslint@9.29.0)(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.1.7 - '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint@9.20.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - eslint: 9.20.0 + '@rushstack/eslint-patch': 1.11.0 + '@typescript-eslint/eslint-plugin': 8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint@9.29.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + eslint: 9.29.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.20.0) - eslint-plugin-react: 7.37.4(eslint@9.20.0) - eslint-plugin-react-hooks: 5.1.0(eslint@9.20.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.29.0) + eslint-plugin-react: 7.37.5(eslint@9.29.0) + eslint-plugin-react-hooks: 5.2.0(eslint@9.29.0) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -8429,9 +8568,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.0.1(eslint@9.20.0): + eslint-config-prettier@10.1.5(eslint@9.29.0): dependencies: - eslint: 9.20.0 + eslint: 9.29.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8441,45 +8580,44 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.0 - enhanced-resolve: 5.18.0 - eslint: 9.20.0 - fast-glob: 3.3.3 - get-tsconfig: 4.10.0 - is-bun-module: 1.3.0 - is-glob: 4.0.3 - stable-hash: 0.0.4 + debug: 4.4.1 + eslint: 9.29.0 + get-tsconfig: 4.10.1 + is-bun-module: 2.0.0 + stable-hash: 0.0.5 + tinyglobby: 0.2.14 + unrs-resolver: 1.9.2 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) - eslint: 9.20.0 + '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + eslint: 9.29.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0): dependencies: '@rtsao/scc': 1.1.0 - array-includes: 3.1.8 - array.prototype.findlastindex: 1.2.5 + array-includes: 3.1.9 + array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.20.0 + eslint: 9.29.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8491,23 +8629,23 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.20.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.29.0): dependencies: aria-query: 5.3.2 - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.2 + axe-core: 4.10.3 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.20.0 + eslint: 9.29.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8516,24 +8654,24 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.1.0(eslint@9.20.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.29.0): dependencies: - eslint: 9.20.0 + eslint: 9.29.0 - eslint-plugin-react@7.37.4(eslint@9.20.0): + eslint-plugin-react@7.37.5(eslint@9.29.0): dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.20.0 + eslint: 9.29.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.8 + object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 @@ -8542,37 +8680,38 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@8.2.0: + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} - eslint@9.20.0: + eslint@9.29.0: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.0 - '@eslint/core': 0.11.0 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/config-array': 0.20.1 + '@eslint/config-helpers': 0.2.3 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.29.0 + '@eslint/plugin-kit': 0.3.3 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 - '@types/estree': 1.0.6 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -8590,11 +8729,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -8610,7 +8749,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-util-build-jsx@3.0.1: dependencies: @@ -8623,7 +8762,7 @@ snapshots: estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 estree-util-to-js@2.0.0: @@ -8634,7 +8773,7 @@ snapshots: estree-util-value-to-estree@3.4.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-util-visit@2.0.0: dependencies: @@ -8643,7 +8782,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esutils@2.0.3: {} @@ -8675,7 +8814,7 @@ snapshots: fast-fuzzy@1.12.0: dependencies: - graphemesplit: 2.5.1 + graphemesplit: 2.6.0 fast-glob@3.3.1: dependencies: @@ -8697,13 +8836,13 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.3: {} + fast-uri@3.0.6: {} fastest-levenshtein@1.0.16: {} - fastq@1.17.1: + fastq@1.19.1: dependencies: - reusify: 1.0.4 + reusify: 1.1.0 fault@2.0.1: dependencies: @@ -8713,9 +8852,13 @@ snapshots: dependencies: bser: 2.1.1 - file-entry-cache@10.0.6: + fdir@6.4.6(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + file-entry-cache@10.1.1: dependencies: - flat-cache: 6.1.6 + flat-cache: 6.1.10 file-entry-cache@8.0.0: dependencies: @@ -8737,35 +8880,37 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flat-cache@6.1.6: + flat-cache@6.1.10: dependencies: - cacheable: 1.8.8 - flatted: 3.3.2 - hookified: 1.7.0 + cacheable: 1.10.0 + flatted: 3.3.3 + hookified: 1.9.1 - flatted@3.3.2: {} + flatted@3.3.3: {} - for-each@0.3.4: + for-each@0.3.5: dependencies: is-callable: 1.2.7 - form-data@4.0.1: + form-data@4.0.3: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 format@0.2.2: {} fraction.js@4.3.7: {} - framer-motion@12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - motion-dom: 12.0.0 - motion-utils: 12.0.0 + motion-dom: 12.19.0 + motion-utils: 12.19.0 tslib: 2.8.1 optionalDependencies: react: 19.0.0 @@ -8781,7 +8926,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -8793,9 +8938,9 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -8819,15 +8964,11 @@ snapshots: get-symbol-description@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - - get-tsconfig@4.10.0: - dependencies: - resolve-pkg-maps: 1.0.0 + get-intrinsic: 1.3.0 - get-tsconfig@4.8.1: + get-tsconfig@4.10.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -8886,7 +9027,7 @@ snapshots: graphemer@1.4.0: {} - graphemesplit@2.5.1: + graphemesplit@2.6.0: dependencies: js-base64: 3.7.7 unicode-trie: 2.0.0 @@ -8924,12 +9065,12 @@ snapshots: hast-util-sanitize@5.0.2: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 unist-util-position: 5.0.0 - hast-util-to-estree@3.1.0: + hast-util-to-estree@3.1.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -8938,17 +9079,17 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.5.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 + style-to-js: 1.1.17 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.4: + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -8957,14 +9098,14 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 6.5.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.2: + hast-util-to-jsx-runtime@2.3.6: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -8972,11 +9113,11 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.5.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 - style-to-object: 1.0.8 + style-to-js: 1.1.17 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -8990,7 +9131,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hookified@1.7.0: {} + hookified@1.9.1: {} html-encoding-sniffer@3.0.0: dependencies: @@ -9006,14 +9147,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.1 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.1 transitivePeerDependencies: - supports-color @@ -9027,9 +9168,9 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.3: {} + ignore@7.0.5: {} - import-fresh@3.3.0: + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -9052,8 +9193,6 @@ snapshots: ini@1.3.8: {} - inline-style-parser@0.1.1: {} - inline-style-parser@0.2.4: {} internal-slot@1.1.0: @@ -9072,8 +9211,8 @@ snapshots: is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-arrayish@0.2.1: {} @@ -9083,7 +9222,7 @@ snapshots: is-async-function@2.1.1: dependencies: async-function: 1.0.0 - call-bound: 1.0.3 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -9092,34 +9231,30 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-boolean-object@1.2.1: + is-boolean-object@1.2.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-bun-module@1.3.0: + is-bun-module@2.0.0: dependencies: semver: 7.7.2 is-callable@1.2.7: {} - is-core-module@2.15.1: - dependencies: - hasown: 2.0.2 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-decimal@2.0.1: {} @@ -9128,7 +9263,7 @@ snapshots: is-finalizationregistry@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-fullwidth-code-point@3.0.0: {} @@ -9136,7 +9271,7 @@ snapshots: is-generator-function@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -9149,9 +9284,11 @@ snapshots: is-map@2.0.3: {} + is-negative-zero@2.0.3: {} + is-number-object@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -9164,7 +9301,7 @@ snapshots: is-regex@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -9173,35 +9310,35 @@ snapshots: is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-stream@2.0.1: {} is-string@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-weakset@2.0.4: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 isarray@2.0.5: {} @@ -9211,8 +9348,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/core': 7.27.4 + '@babel/parser': 7.27.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -9221,8 +9358,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.26.0 - '@babel/parser': 7.26.3 + '@babel/core': 7.27.4 + '@babel/parser': 7.27.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -9237,7 +9374,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.0 + debug: 4.4.1 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -9252,7 +9389,7 @@ snapshots: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -9274,7 +9411,7 @@ snapshots: '@types/node': 22.10.10 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3 + dedent: 1.6.0 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -9312,10 +9449,10 @@ snapshots: jest-config@29.7.0(@types/node@22.10.10)(ts-node@10.9.2(@types/node@22.10.10)(typescript@5.7.3)): dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.0) + babel-jest: 29.7.0(@babel/core@7.27.4) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9416,7 +9553,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -9453,7 +9590,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.8 + resolve: 1.22.10 resolve.exports: 2.0.3 slash: 3.0.0 @@ -9494,7 +9631,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 22.10.10 chalk: 4.1.2 - cjs-module-lexer: 1.4.1 + cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -9512,15 +9649,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.26.0 - '@babel/generator': 7.26.3 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@babel/types': 7.26.3 + '@babel/core': 7.27.4 + '@babel/generator': 7.27.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/types': 7.27.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -9599,21 +9736,21 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.14.0 + acorn: 8.15.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.3 + decimal.js: 10.5.0 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.1 + form-data: 4.0.3 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.16 - parse5: 7.2.1 + nwsapi: 2.2.20 + parse5: 7.3.0 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -9622,7 +9759,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.0 + ws: 8.18.2 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -9631,6 +9768,8 @@ snapshots: jsesc@3.0.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -9649,7 +9788,7 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -9658,15 +9797,18 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.2.3: + keyv@5.3.4: dependencies: - '@keyv/serialize': 1.0.2 + '@keyv/serialize': 1.0.3 kind-of@6.0.3: {} kleur@3.0.3: {} - known-css-properties@0.35.0: {} + known-css-properties@0.36.0: + optional: true + + known-css-properties@0.37.0: {} language-subtag-registry@0.3.23: {} @@ -9737,7 +9879,7 @@ snapshots: mathml-tag-names@2.1.3: {} - mdast-util-find-and-replace@3.0.1: + mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 @@ -9748,15 +9890,15 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.1 + micromark: 4.0.2 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color @@ -9777,10 +9919,10 @@ snapshots: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 + mdast-util-find-and-replace: 3.0.2 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.0.0: + mdast-util-gfm-footnote@2.1.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -9817,11 +9959,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm@3.0.0: + mdast-util-gfm@3.1.0: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-footnote: 2.1.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 @@ -9840,7 +9982,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.3: + mdast-util-mdx-jsx@3.2.0: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -9850,7 +9992,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.1 + parse-entities: 4.0.2 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -9861,7 +10003,7 @@ snapshots: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -9887,7 +10029,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -9915,12 +10057,9 @@ snapshots: mdn-data@2.0.30: {} - mdn-data@2.12.1: - optional: true - mdn-data@2.12.2: {} - mdn-data@2.13.0: + mdn-data@2.21.0: optional: true memoize-one@5.2.1: {} @@ -9931,9 +10070,9 @@ snapshots: merge2@1.4.1: {} - micromark-core-commonmark@2.0.2: + micromark-core-commonmark@2.0.3: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -9946,34 +10085,34 @@ snapshots: micromark-util-html-tag-name: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.0.3 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 - micromark-core-commonmark: 2.0.2 + micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-strikethrough@2.1.0: dependencies: @@ -9982,19 +10121,19 @@ snapshots: micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-table@2.1.0: + micromark-extension-gfm-table@2.1.1: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm-task-list-item@2.1.0: dependencies: @@ -10002,119 +10141,118 @@ snapshots: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-table: 2.1.1 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-mdx-expression@3.0.0: + micromark-extension-mdx-expression@3.0.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.2 + micromark-factory-mdx-expression: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.2 + micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-mdx-jsx@3.0.1: + micromark-extension-mdx-jsx@3.0.2: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.2 + micromark-factory-mdx-expression: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.2 + micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 vfile-message: 4.0.2 micromark-extension-mdx-md@2.0.0: dependencies: - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 - micromark-core-commonmark: 2.0.2 + micromark-core-commonmark: 2.0.3 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.2 + micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.1 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 micromark-extension-mdx-md: 2.0.0 micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-mdx-expression@2.0.2: + micromark-factory-mdx-expression@2.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.2 + micromark-util-events-to-acorn: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-chunked@2.0.1: dependencies: @@ -10124,12 +10262,12 @@ snapshots: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-decode-numeric-character-reference@2.0.2: dependencies: @@ -10137,22 +10275,21 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.2.0 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 micromark-util-encode@2.0.1: {} - micromark-util-events-to-acorn@2.0.2: + micromark-util-events-to-acorn@2.0.3: dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 vfile-message: 4.0.2 micromark-util-html-tag-name@2.0.1: {} @@ -10163,7 +10300,7 @@ snapshots: micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-sanitize-uri@2.0.1: dependencies: @@ -10171,24 +10308,24 @@ snapshots: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.0.3: + micromark-util-subtokenize@2.1.0: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 micromark-util-symbol@2.0.1: {} - micromark-util-types@2.0.1: {} + micromark-util-types@2.0.2: {} - micromark@4.0.1: + micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7 - decode-named-character-reference: 1.0.2 + debug: 4.4.1 + decode-named-character-reference: 1.2.0 devlop: 1.1.0 - micromark-core-commonmark: 2.0.2 + micromark-core-commonmark: 2.0.3 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-chunked: 2.0.1 @@ -10198,9 +10335,9 @@ snapshots: micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.0.3 + micromark-util-subtokenize: 2.1.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 transitivePeerDependencies: - supports-color @@ -10221,23 +10358,23 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} - motion-dom@12.0.0: + motion-dom@12.19.0: dependencies: - motion-utils: 12.0.0 + motion-utils: 12.19.0 - motion-utils@12.0.0: {} + motion-utils@12.19.0: {} - motion@12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + motion@12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - framer-motion: 12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + framer-motion: 12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 optionalDependencies: react: 19.0.0 @@ -10247,21 +10384,21 @@ snapshots: nanoid@3.3.11: {} - nanoid@3.3.8: {} + napi-postinstall@0.2.4: {} natural-compare@1.4.0: {} - next@15.2.4(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.2.4(@babel/core@7.27.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.2.4 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001718 + caniuse-lite: 1.0.30001726 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.27.4)(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.2.4 '@next/swc-darwin-x64': 15.2.4 @@ -10283,7 +10420,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.18: {} + node-releases@2.0.19: {} normalize-path@3.0.0: {} @@ -10297,26 +10434,27 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.16: {} + nwsapi@2.2.20: {} object-assign@4.1.1: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.8: + object.entries@1.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -10324,19 +10462,19 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -10348,13 +10486,7 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oniguruma-to-es@2.3.0: - dependencies: - emoji-regex-xs: 1.0.0 - regex: 5.1.1 - regex-recursion: 5.1.1 - - oniguruma-to-es@3.1.0: + oniguruma-to-es@3.1.1: dependencies: emoji-regex-xs: 1.0.0 regex: 6.0.1 @@ -10373,7 +10505,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -10401,27 +10533,26 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.1: + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 - character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 + decode-named-character-reference: 1.2.0 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.2.1: + parse5@7.3.0: dependencies: - entities: 4.5.0 + entities: 6.0.1 path-exists@4.0.0: {} @@ -10437,248 +10568,251 @@ snapshots: picomatch@2.3.1: {} - pirates@4.0.6: {} + picomatch@4.0.2: {} + + pirates@4.0.7: {} pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.2): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-clamp@4.1.0(postcss@8.5.2): + postcss-clamp@4.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.6(postcss@8.5.2): + postcss-color-functional-notation@7.0.10(postcss@8.5.6): dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - postcss-color-hex-alpha@10.0.0(postcss@8.5.2): + postcss-color-hex-alpha@10.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.2): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.5(postcss@8.5.2): + postcss-custom-media@11.0.6(postcss@8.5.6): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.2 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.6 - postcss-custom-properties@14.0.4(postcss@8.5.2): + postcss-custom-properties@14.0.6(postcss@8.5.6): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.4(postcss@8.5.2): + postcss-custom-selectors@8.0.5(postcss@8.5.6): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.2): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-double-position-gradients@6.0.0(postcss@8.5.2): + postcss-double-position-gradients@6.0.2(postcss@8.5.6): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-flexbugs-fixes@5.0.2(postcss@8.5.2): + postcss-flexbugs-fixes@5.0.2(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-focus-visible@10.0.1(postcss@8.5.2): + postcss-focus-visible@10.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-focus-within@9.0.1(postcss@8.5.2): + postcss-focus-within@9.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-font-variant@5.0.0(postcss@8.5.2): + postcss-font-variant@5.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-gap-properties@6.0.0(postcss@8.5.2): + postcss-gap-properties@6.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-image-set-function@7.0.0(postcss@8.5.2): + postcss-image-set-function@7.0.0(postcss@8.5.6): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-lab-function@7.0.6(postcss@8.5.2): + postcss-lab-function@7.0.10(postcss@8.5.6): dependencies: - '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/utilities': 2.0.0(postcss@8.5.2) - postcss: 8.5.2 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/utilities': 2.0.0(postcss@8.5.6) + postcss: 8.5.6 - postcss-load-config@6.0.1(postcss@8.5.2)(tsx@4.19.2)(yaml@2.7.0): + postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.2 - tsx: 4.19.2 - yaml: 2.7.0 + postcss: 8.5.6 + tsx: 4.20.3 + yaml: 2.8.0 - postcss-logical@8.0.0(postcss@8.5.2): + postcss-logical@8.1.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 postcss-media-query-parser@0.2.3: optional: true - postcss-nesting@13.0.1(postcss@8.5.2): + postcss-nesting@13.0.2(postcss@8.5.6): dependencies: - '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.2): + postcss-opacity-percentage@3.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-overflow-shorthand@6.0.0(postcss@8.5.2): + postcss-overflow-shorthand@6.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.2): + postcss-page-break@3.0.4(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-place@10.0.0(postcss@8.5.2): + postcss-place@10.0.0(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.1(postcss@8.5.2): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.2) - '@csstools/postcss-color-function': 4.0.6(postcss@8.5.2) - '@csstools/postcss-color-mix-function': 3.0.6(postcss@8.5.2) - '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.2) - '@csstools/postcss-exponential-functions': 2.0.5(postcss@8.5.2) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.2) - '@csstools/postcss-gamut-mapping': 2.0.6(postcss@8.5.2) - '@csstools/postcss-gradients-interpolation-method': 5.0.6(postcss@8.5.2) - '@csstools/postcss-hwb-function': 4.0.6(postcss@8.5.2) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.2) - '@csstools/postcss-initial': 2.0.0(postcss@8.5.2) - '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.2) - '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.2) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.2) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.2) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.2) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.2) - '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.2) - '@csstools/postcss-media-minmax': 2.0.5(postcss@8.5.2) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.2) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.2) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.2) - '@csstools/postcss-oklab-function': 4.0.6(postcss@8.5.2) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) - '@csstools/postcss-random-function': 1.0.1(postcss@8.5.2) - '@csstools/postcss-relative-color-syntax': 3.0.6(postcss@8.5.2) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.2) - '@csstools/postcss-sign-functions': 1.1.0(postcss@8.5.2) - '@csstools/postcss-stepped-value-functions': 4.0.5(postcss@8.5.2) - '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.5.2) - '@csstools/postcss-trigonometric-functions': 4.0.5(postcss@8.5.2) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.2) - autoprefixer: 10.4.20(postcss@8.5.2) - browserslist: 4.24.2 - css-blank-pseudo: 7.0.1(postcss@8.5.2) - css-has-pseudo: 7.0.1(postcss@8.5.2) - css-prefers-color-scheme: 10.0.0(postcss@8.5.2) - cssdb: 8.2.3 - postcss: 8.5.2 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.2) - postcss-clamp: 4.1.0(postcss@8.5.2) - postcss-color-functional-notation: 7.0.6(postcss@8.5.2) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.2) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.2) - postcss-custom-media: 11.0.5(postcss@8.5.2) - postcss-custom-properties: 14.0.4(postcss@8.5.2) - postcss-custom-selectors: 8.0.4(postcss@8.5.2) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.2) - postcss-double-position-gradients: 6.0.0(postcss@8.5.2) - postcss-focus-visible: 10.0.1(postcss@8.5.2) - postcss-focus-within: 9.0.1(postcss@8.5.2) - postcss-font-variant: 5.0.0(postcss@8.5.2) - postcss-gap-properties: 6.0.0(postcss@8.5.2) - postcss-image-set-function: 7.0.0(postcss@8.5.2) - postcss-lab-function: 7.0.6(postcss@8.5.2) - postcss-logical: 8.0.0(postcss@8.5.2) - postcss-nesting: 13.0.1(postcss@8.5.2) - postcss-opacity-percentage: 3.0.0(postcss@8.5.2) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.2) - postcss-page-break: 3.0.4(postcss@8.5.2) - postcss-place: 10.0.0(postcss@8.5.2) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.2) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.2) - postcss-selector-not: 8.0.1(postcss@8.5.2) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.2): - dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 - - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.2): - dependencies: - postcss: 8.5.2 + postcss-preset-env@10.2.3(postcss@8.5.6): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.6) + '@csstools/postcss-color-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-color-mix-function': 3.0.10(postcss@8.5.6) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.0(postcss@8.5.6) + '@csstools/postcss-content-alt-text': 2.0.6(postcss@8.5.6) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.6) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.6) + '@csstools/postcss-gamut-mapping': 2.0.10(postcss@8.5.6) + '@csstools/postcss-gradients-interpolation-method': 5.0.10(postcss@8.5.6) + '@csstools/postcss-hwb-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-ic-unit': 4.0.2(postcss@8.5.6) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.6) + '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.6) + '@csstools/postcss-light-dark-function': 2.0.9(postcss@8.5.6) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.6) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.6) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.6) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.6) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.6) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.6) + '@csstools/postcss-oklab-function': 4.0.10(postcss@8.5.6) + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) + '@csstools/postcss-relative-color-syntax': 3.0.10(postcss@8.5.6) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.6) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) + autoprefixer: 10.4.21(postcss@8.5.6) + browserslist: 4.25.1 + css-blank-pseudo: 7.0.1(postcss@8.5.6) + css-has-pseudo: 7.0.2(postcss@8.5.6) + css-prefers-color-scheme: 10.0.0(postcss@8.5.6) + cssdb: 8.3.1 + postcss: 8.5.6 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6) + postcss-clamp: 4.1.0(postcss@8.5.6) + postcss-color-functional-notation: 7.0.10(postcss@8.5.6) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.6) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.6) + postcss-custom-media: 11.0.6(postcss@8.5.6) + postcss-custom-properties: 14.0.6(postcss@8.5.6) + postcss-custom-selectors: 8.0.5(postcss@8.5.6) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.6) + postcss-double-position-gradients: 6.0.2(postcss@8.5.6) + postcss-focus-visible: 10.0.1(postcss@8.5.6) + postcss-focus-within: 9.0.1(postcss@8.5.6) + postcss-font-variant: 5.0.0(postcss@8.5.6) + postcss-gap-properties: 6.0.0(postcss@8.5.6) + postcss-image-set-function: 7.0.0(postcss@8.5.6) + postcss-lab-function: 7.0.10(postcss@8.5.6) + postcss-logical: 8.1.0(postcss@8.5.6) + postcss-nesting: 13.0.2(postcss@8.5.6) + postcss-opacity-percentage: 3.0.0(postcss@8.5.6) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.6) + postcss-page-break: 3.0.4(postcss@8.5.6) + postcss-place: 10.0.0(postcss@8.5.6) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.6) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.6) + postcss-selector-not: 8.0.1(postcss@8.5.6) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.2): + postcss-safe-parser@7.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 + postcss: 8.5.6 - postcss-selector-not@8.0.1(postcss@8.5.2): + postcss-selector-not@8.0.1(postcss@8.5.6): dependencies: - postcss: 8.5.2 - postcss-selector-parser: 7.0.0 + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 - postcss-selector-parser@7.0.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -10691,15 +10825,15 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.2: + postcss@8.5.6: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier@3.4.2: {} + prettier@3.6.1: {} pretty-format@27.5.1: dependencies: @@ -10724,7 +10858,7 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.5.0: {} + property-information@7.1.0: {} psl@1.15.0: dependencies: @@ -10745,7 +10879,7 @@ snapshots: react-fast-compare@3.2.2: {} - react-hotkeys-hook@4.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-hotkeys-hook@4.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -10773,7 +10907,7 @@ snapshots: optionalDependencies: '@types/react': 19.0.8 - react-remove-scroll@2.6.3(@types/react@19.0.8)(react@19.0.0): + react-remove-scroll@2.7.1(@types/react@19.0.8)(react@19.0.0): dependencies: react: 19.0.0 react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) @@ -10796,13 +10930,13 @@ snapshots: recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.14.0): + recma-jsx@1.0.0(acorn@8.15.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn-jsx: 5.3.2(acorn@8.15.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -10812,14 +10946,14 @@ snapshots: recma-parse@1.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esast-util-from-js: 2.0.1 unified: 11.0.5 vfile: 6.0.3 recma-stringify@1.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 @@ -10833,10 +10967,10 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -10846,25 +10980,12 @@ snapshots: regenerate@1.4.2: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.27.1 - - regex-recursion@5.1.1: - dependencies: - regex: 5.1.1 - regex-utilities: 2.3.0 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 regex-utilities@2.3.0: {} - regex@5.1.1: - dependencies: - regex-utilities: 2.3.0 - regex@6.0.1: dependencies: regex-utilities: 2.3.0 @@ -10896,7 +11017,7 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 @@ -10904,9 +11025,9 @@ snapshots: rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 '@types/hast': 3.0.4 - hast-util-to-estree: 3.1.0 + hast-util-to-estree: 3.1.3 transitivePeerDependencies: - supports-color @@ -10935,7 +11056,7 @@ snapshots: remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.0.0 + mdast-util-gfm: 3.1.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -10943,14 +11064,14 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdx-frontmatter@5.0.0: + remark-mdx-frontmatter@5.2.0: dependencies: '@types/mdast': 4.0.4 - estree-util-is-identifier-name: 3.0.0 estree-util-value-to-estree: 3.4.0 toml: 3.0.0 unified: 11.0.5 - yaml: 2.7.0 + unist-util-mdx-define: 1.1.2 + yaml: 2.8.0 remark-mdx@3.1.0: dependencies: @@ -10963,12 +11084,12 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.1 + micromark-util-types: 2.0.2 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-rehype@11.1.1: + remark-rehype@11.1.2: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -11006,19 +11127,13 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@1.22.8: - dependencies: - is-core-module: 2.15.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} + reusify@1.1.0: {} run-parallel@1.2.0: dependencies: @@ -11027,8 +11142,8 @@ snapshots: safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 @@ -11039,7 +11154,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 @@ -11060,7 +11175,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -11110,41 +11225,41 @@ snapshots: shebang-regex@3.0.0: {} - shiki@2.2.0: + shiki@2.5.0: dependencies: - '@shikijs/core': 2.2.0 - '@shikijs/engine-javascript': 2.2.0 - '@shikijs/engine-oniguruma': 2.2.0 - '@shikijs/langs': 2.2.0 - '@shikijs/themes': 2.2.0 - '@shikijs/types': 2.2.0 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -11188,12 +11303,17 @@ snapshots: sprintf-js@1.0.3: {} - stable-hash@0.0.4: {} + stable-hash@0.0.5: {} stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + streamsearch@1.1.0: {} string-length@4.0.2: @@ -11211,17 +11331,17 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 @@ -11232,22 +11352,22 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.0 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -11278,86 +11398,86 @@ snapshots: strip-json-comments@3.1.1: {} - style-to-object@0.4.4: + style-to-js@1.1.17: dependencies: - inline-style-parser: 0.1.1 + style-to-object: 1.0.9 - style-to-object@1.0.8: + style-to-object@1.0.9: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.27.4)(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.27.4 - stylelint-config-css-modules@4.4.0(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-css-modules@4.5.0(stylelint@16.21.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) + stylelint: 16.21.0(typescript@5.7.3) optionalDependencies: - stylelint-scss: 6.10.0(stylelint@16.14.1(typescript@5.7.3)) + stylelint-scss: 6.12.1(stylelint@16.21.0(typescript@5.7.3)) - stylelint-config-recommended@15.0.0(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-recommended@15.0.0(stylelint@16.21.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) + stylelint: 16.21.0(typescript@5.7.3) - stylelint-config-standard@37.0.0(stylelint@16.14.1(typescript@5.7.3)): + stylelint-config-standard@37.0.0(stylelint@16.21.0(typescript@5.7.3)): dependencies: - stylelint: 16.14.1(typescript@5.7.3) - stylelint-config-recommended: 15.0.0(stylelint@16.14.1(typescript@5.7.3)) + stylelint: 16.21.0(typescript@5.7.3) + stylelint-config-recommended: 15.0.0(stylelint@16.21.0(typescript@5.7.3)) - stylelint-scss@6.10.0(stylelint@16.14.1(typescript@5.7.3)): + stylelint-scss@6.12.1(stylelint@16.21.0(typescript@5.7.3)): dependencies: - css-tree: 3.0.1 + css-tree: 3.1.0 is-plain-object: 5.0.0 - known-css-properties: 0.35.0 - mdn-data: 2.13.0 + known-css-properties: 0.36.0 + mdn-data: 2.21.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.0.0 + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - stylelint: 16.14.1(typescript@5.7.3) + stylelint: 16.21.0(typescript@5.7.3) optional: true - stylelint@16.14.1(typescript@5.7.3): + stylelint@16.21.0(typescript@5.7.3): dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 cosmiconfig: 9.0.0(typescript@5.7.3) css-functions-list: 3.2.3 css-tree: 3.1.0 - debug: 4.4.0 + debug: 4.4.1 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.0.6 + file-entry-cache: 10.1.1 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 7.0.3 + ignore: 7.0.5 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.35.0 + known-css-properties: 0.37.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.2 + postcss: 8.5.6 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.2) - postcss-selector-parser: 7.0.0 + postcss-safe-parser: 7.0.1(postcss@8.5.6) + postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 - supports-hyperlinks: 3.1.0 + supports-hyperlinks: 3.2.0 svg-tags: 1.0.0 table: 6.9.0 write-file-atomic: 5.0.1 @@ -11373,7 +11493,7 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.1.0: + supports-hyperlinks@3.2.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 @@ -11404,8 +11524,6 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - tapable@2.2.1: {} - test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -11414,6 +11532,11 @@ snapshots: tiny-inflate@1.0.3: {} + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + tmpl@1.0.5: {} to-regex-range@5.0.1: @@ -11437,7 +11560,7 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.0.0(typescript@5.7.3): + ts-api-utils@2.1.0(typescript@5.7.3): dependencies: typescript: 5.7.3 @@ -11449,7 +11572,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.10.10 - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -11468,10 +11591,10 @@ snapshots: tslib@2.8.1: {} - tsx@4.19.2: + tsx@4.20.3: dependencies: - esbuild: 0.23.1 - get-tsconfig: 4.8.1 + esbuild: 0.25.5 + get-tsconfig: 4.10.1 optionalDependencies: fsevents: 2.3.3 @@ -11485,14 +11608,14 @@ snapshots: typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -11501,7 +11624,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -11510,17 +11633,17 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.4 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 typescript@5.7.3: {} unbox-primitive@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 @@ -11557,6 +11680,16 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-mdx-define@1.1.2: + dependencies: + '@types/estree': 1.0.8 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + vfile: 6.0.3 + unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.3 @@ -11582,9 +11715,33 @@ snapshots: universalify@0.2.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + unrs-resolver@1.9.2: dependencies: - browserslist: 4.24.2 + napi-postinstall: 0.2.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.9.2 + '@unrs/resolver-binding-android-arm64': 1.9.2 + '@unrs/resolver-binding-darwin-arm64': 1.9.2 + '@unrs/resolver-binding-darwin-x64': 1.9.2 + '@unrs/resolver-binding-freebsd-x64': 1.9.2 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.2 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.2 + '@unrs/resolver-binding-linux-arm64-gnu': 1.9.2 + '@unrs/resolver-binding-linux-arm64-musl': 1.9.2 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.2 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.2 + '@unrs/resolver-binding-linux-riscv64-musl': 1.9.2 + '@unrs/resolver-binding-linux-s390x-gnu': 1.9.2 + '@unrs/resolver-binding-linux-x64-gnu': 1.9.2 + '@unrs/resolver-binding-linux-x64-musl': 1.9.2 + '@unrs/resolver-binding-wasm32-wasi': 1.9.2 + '@unrs/resolver-binding-win32-arm64-msvc': 1.9.2 + '@unrs/resolver-binding-win32-ia32-msvc': 1.9.2 + '@unrs/resolver-binding-win32-x64-msvc': 1.9.2 + + update-browserslist-db@1.1.3(browserslist@4.25.1): + dependencies: + browserslist: 4.25.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -11656,14 +11813,14 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.1.1 @@ -11671,11 +11828,11 @@ snapshots: is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.19 which-collection@1.0.2: dependencies: @@ -11684,12 +11841,13 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.18: + which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.4 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -11721,7 +11879,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.0: {} + ws@8.18.2: {} xml-name-validator@4.0.0: {} @@ -11731,7 +11889,7 @@ snapshots: yallist@3.1.1: {} - yaml@2.7.0: {} + yaml@2.8.0: {} yargs-parser@21.1.1: {} diff --git a/public/api-schema-v2.json b/public/api-schema-v2.json new file mode 100644 index 00000000..8087d0c5 --- /dev/null +++ b/public/api-schema-v2.json @@ -0,0 +1,59811 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "dev", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io", + "contact": { + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io", + "email": "support@cloudsmith.io" + }, + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "v1" + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "paths": { + "/audit-log/{owner}/": { + "get": { + "operationId": "audit_log_namespace_list", + "summary": "Lists audit log entries for a specific namespace.", + "description": "Lists audit log entries for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NamespaceAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/audit-log/{owner}/{repo}/": { + "get": { + "operationId": "audit_log_repo_list", + "summary": "Lists audit log entries for a specific repository.", + "description": "Lists audit log entries for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "get": { + "operationId": "badges_version_list", + "summary": "Get latest package version for a package or package group.", + "description": "Get latest package version for a package or package group.", + "parameters": [ + { + "name": "badge_token", + "in": "query", + "description": "Badge token to authenticate for private packages", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "cacheSeconds", + "in": "query", + "description": "Override the shields.io badge cacheSeconds value.", + "required": false, + "schema": { + "type": "string", + "default": "300" + } + }, + { + "name": "color", + "in": "query", + "description": "Override the shields.io badge color value.", + "required": false, + "schema": { + "type": "string", + "default": "12577E" + } + }, + { + "name": "label", + "in": "query", + "description": "Override the shields.io badge label value.", + "required": false, + "schema": { + "type": "string", + "default": "cloudsmith" + } + }, + { + "name": "labelColor", + "in": "query", + "description": "Override the shields.io badge labelColor value.", + "required": false, + "schema": { + "type": "string", + "default": "021F2F" + } + }, + { + "name": "logoColor", + "in": "query", + "description": "Override the shields.io badge logoColor value.", + "required": false, + "schema": { + "type": "string", + "default": "45B6EE" + } + }, + { + "name": "logoWidth", + "in": "query", + "description": "Override the shields.io badge logoWidth value.", + "required": false, + "schema": { + "type": "string", + "default": "10" + } + }, + { + "name": "render", + "in": "query", + "description": "If true, badge will be rendered", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "shields", + "in": "query", + "description": "If true, a shields response will be generated", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_latest", + "in": "query", + "description": "If true, for latest version badges a '(latest)' suffix is added", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "style", + "in": "query", + "description": "Override the shields.io badge style value.", + "required": false, + "schema": { + "type": "string", + "default": "flat-square" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionBadge" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "badges" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_identifiers", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/plans/": { + "parameters": [] + }, + "/billing/{owner}/account-status/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/{invoice_id}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/payment-methods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/periods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/portal/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/subscription/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/trial/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_kind", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/{identifier}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/distros/": { + "get": { + "operationId": "distros_list", + "summary": "Get a list of all supported distributions.", + "description": "Get a list of all supported distributions.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/distros/{slug}/": { + "get": { + "operationId": "distros_read", + "summary": "View for viewing/listing distributions.", + "description": "View for viewing/listing distributions.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "entitlements_list", + "summary": "Get a list of all entitlements in a repository.", + "description": "Get a list of all entitlements in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names of entitlements.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "If true, only include active tokens", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of entitlement tokens", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "entitlements_create", + "summary": "Create a specific entitlement in a repository.", + "description": "Create a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/sync/": { + "post": { + "operationId": "entitlements_sync", + "summary": "Synchronise tokens from a source repository.", + "description": "Synchronise tokens from a source repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSyncRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The tokens have been synchronised from the source repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "entitlements_read", + "summary": "Get a specific entitlement in a repository.", + "description": "Get a specific entitlement in a repository.", + "parameters": [ + { + "name": "fuzzy", + "in": "query", + "description": "If true, entitlement identifiers including name will be fuzzy matched.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Retrieved the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Couldn't retrieve the specified token because the request contains an error.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "entitlements_partial_update", + "summary": "Update a specific entitlement in a repository.", + "description": "Update a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "The entitlement cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "entitlements_delete", + "summary": "Delete a specific entitlement in a repository.", + "description": "Delete a specific entitlement in a repository.", + "responses": { + "204": { + "description": "Soft-deleted the specified entitlement token successfully." + }, + "400": { + "description": "The entitlement cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/disable/": { + "post": { + "operationId": "entitlements_disable", + "summary": "Disable an entitlement token in a repository.", + "description": "Disable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been disabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/enable/": { + "post": { + "operationId": "entitlements_enable", + "summary": "Enable an entitlement token in a repository.", + "description": "Enable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been enabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/refresh/": { + "post": { + "operationId": "entitlements_refresh", + "summary": "Refresh an entitlement token in a repository.", + "description": "Refresh an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The entitlement token has been refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefresh" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/reset/": { + "post": { + "operationId": "entitlements_reset", + "summary": "Reset the statistics for an entitlement token in a repository.", + "description": "Reset the statistics for an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "The entitlement token statistics have been reset." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/": { + "post": { + "operationId": "files_create", + "summary": "Request URL(s) to upload new package file upload(s) to.", + "description": "Request URL(s) to upload new package file upload(s) to.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "202": { + "description": "The upload request was accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/validate/": { + "post": { + "operationId": "files_validate", + "summary": "Validate parameters used for create.", + "description": "Validate parameters used for create.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/abort/": { + "post": { + "operationId": "files_abort", + "summary": "Abort a multipart file upload.", + "description": "Abort a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "The multipart upload was aborted successfully." + }, + "400": { + "description": "The multipart upload could not be aborted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/complete/": { + "post": { + "operationId": "files_complete", + "summary": "Complete a multipart file upload.", + "description": "Complete a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "201": { + "description": "The multipart upload was completed successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "The multipart upload could not be completed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/info/": { + "get": { + "operationId": "files_info", + "summary": "Get upload information to perform a multipart file upload.", + "description": "Get upload information to perform a multipart file upload.", + "parameters": [ + { + "name": "filename", + "in": "query", + "description": "The filename of the file being uploaded", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "part_number", + "in": "query", + "description": "The part number to be uploaded next", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Information for multipart uploaded retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFilePartsUpload" + } + } + } + }, + "400": { + "description": "The provided upload file was not a multipart upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/formats/": { + "get": { + "operationId": "formats_list", + "summary": "Get a list of all supported package formats.", + "description": "Get a list of all supported package formats.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Format" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/formats/{slug}/": { + "get": { + "operationId": "formats_read", + "summary": "Get a specific supported package format.", + "description": "Get a specific supported package format.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Format" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/orgs/slugify/": { + "parameters": [] + }, + "/internal/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/user/confirm/": { + "parameters": [] + }, + "/internal/user/escalate/": { + "parameters": [] + }, + "/internal/user/login/": { + "parameters": [] + }, + "/internal/user/password/request-reset/": { + "parameters": [] + }, + "/internal/user/password/reset/": { + "parameters": [] + }, + "/internal/user/signup/": { + "parameters": [] + }, + "/internal/user/two-factor/": { + "parameters": [] + }, + "/internal/user/verify-device/": { + "parameters": [] + }, + "/internal/user/zendesk/jwt/": { + "parameters": [] + }, + "/licenses/": { + "parameters": [] + }, + "/metrics/entitlements/{owner}/": { + "get": { + "operationId": "metrics_entitlements_account_list", + "summary": "View for listing entitlement token metrics, across an account.", + "description": "View for listing entitlement token metrics, across an account.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", + "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "metrics_entitlements_repo_list", + "summary": "View for listing entitlement token metrics, for a repository.", + "description": "View for listing entitlement token metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/packages/{owner}/{repo}/": { + "get": { + "operationId": "metrics_packages_list", + "summary": "View for listing package usage metrics, for a repository.", + "description": "View for listing package usage metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "packages", + "in": "query", + "description": "A comma seperated list of packages (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for packages.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/namespaces/": { + "get": { + "operationId": "namespaces_list", + "summary": "Get a list of all namespaces the user belongs to.", + "description": "Get a list of all namespaces the user belongs to.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [] + }, + "/namespaces/{slug}/": { + "get": { + "operationId": "namespaces_read", + "summary": "Get a specific namespace that the user belongs to.", + "description": "Get a specific namespace that the user belongs to.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/openid/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/": { + "get": { + "operationId": "orgs_list", + "summary": "Get a list of all the organizations you are associated with.", + "description": "Get a list of all the organizations you are associated with.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [] + }, + "/orgs/{org}/": { + "get": { + "operationId": "orgs_read", + "summary": "Get the details for the specific organization.", + "description": "Get the details for the specific organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "delete": { + "operationId": "orgs_delete", + "summary": "Delete the specified organization.", + "description": "Delete the specified organization.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/enforce/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/relax/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/authentication-policy": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/company-logo/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/custom-domains/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/default-object-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/delete-org/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/": { + "get": { + "operationId": "orgs_deny-policy_list", + "summary": "Get a list of all package deny policies.", + "description": "Get a list of all package deny policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_deny-policy_create", + "summary": "Create a package deny policy.", + "description": "Create a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_deny-policy_read", + "summary": "Get a package deny policy.", + "description": "Get a package deny policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_deny-policy_update", + "summary": "Update a package deny policy.", + "description": "Update a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_deny-policy_partial_update", + "summary": "Partially update a package deny policy.", + "description": "Partially update a package deny policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_deny-policy_delete", + "summary": "Delete a package deny policy.", + "description": "Delete a package deny policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/check/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/global-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/": { + "get": { + "operationId": "orgs_invites_list", + "summary": "Get a list of all invites for an organization.", + "description": "Get a list of all invites for an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization invites", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization invites not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_invites_create", + "summary": "Create an organization invite for a specific user", + "description": "Create an organization invite for a specific user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Invite sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/": { + "patch": { + "operationId": "orgs_invites_partial_update", + "summary": "Update a specific organization invite.", + "description": "Update a specific organization invite.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Invite updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_invites_delete", + "summary": "Delete a specific organization invite", + "description": "Delete a specific organization invite", + "responses": { + "204": { + "description": "Deleted the organization invite successfully." + }, + "400": { + "description": "The organization invite cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/extend/": { + "post": { + "operationId": "orgs_invites_extend", + "summary": "Extend an organization invite.", + "description": "Extend an organization invite.", + "responses": { + "200": { + "description": "The invite has been extended", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/resend/": { + "post": { + "operationId": "orgs_invites_resend", + "summary": "Resend an organization invite.", + "description": "Resend an organization invite.", + "responses": { + "200": { + "description": "The invite has been resent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy-violation/": { + "get": { + "operationId": "orgs_license-policy-violation_list", + "summary": "List all current license policy violations for this Organization.", + "description": "List all current license policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" + } + } + }, + "title": "PackageLicensePolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/": { + "get": { + "operationId": "orgs_license-policy_list", + "summary": "Get a list of all package license policies.", + "description": "Get a list of all package license policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_create", + "summary": "Create a package license policy.", + "description": "Create a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_license-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_read", + "summary": "Get a package license policy.", + "description": "Get a package license policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_license-policy_update", + "summary": "Update a package license policy.", + "description": "Update a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_license-policy_partial_update", + "summary": "Partially update a package license policy.", + "description": "Partially update a package license policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_license-policy_delete", + "summary": "Delete a package license policy.", + "description": "Delete a package license policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/disable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/enable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/": { + "get": { + "operationId": "orgs_members_list", + "summary": "Get the details for all organization members.", + "description": "Get the details for all organization members.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "is_active", + "in": "query", + "description": "Filter for active/inactive users.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", + "required": false, + "schema": { + "type": "string", + "default": "user_name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization's members", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/": { + "get": { + "operationId": "orgs_members_read", + "summary": "Get the details for a specific organization member.", + "description": "Get the details for a specific organization member.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_members_partial_update", + "summary": "Views for working with organization members.", + "description": "Views for working with organization members.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_members_delete", + "summary": "Removes a member from the organization.", + "description": "Removes a member from the organization.", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/refresh/": { + "post": { + "operationId": "orgs_members_refresh", + "summary": "Refresh a member of the organization's API key.", + "description": "Refresh a member of the organization's API key.", + "responses": { + "204": { + "description": "Org member API key has been refreshed." + }, + "400": { + "description": "The org member's API key cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org member not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/remove/": { + "get": { + "operationId": "orgs_members_remove", + "summary": "Removes a member from the organization (deprecated, use DELETE instead).", + "description": "Removes a member from the organization (deprecated, use DELETE instead).", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-role/": { + "patch": { + "operationId": "orgs_members_update_role", + "summary": "Update a member's role in the organization.", + "description": "Update a member's role in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-visibility/": { + "patch": { + "operationId": "orgs_members_update_visibility", + "summary": "Update a member's visibility in the organization.", + "description": "Update a member's visibility in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/": { + "get": { + "operationId": "orgs_openid-connect_list", + "summary": "Retrieve the list of OpenID Connect provider settings for the org.", + "description": "Retrieve the list of OpenID Connect provider settings for the org.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_openid-connect_create", + "summary": "Create the OpenID Connect provider settings for the org.", + "description": "Create the OpenID Connect provider settings for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "201": { + "description": "Created the OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/{slug_perm}/": { + "get": { + "operationId": "orgs_openid-connect_read", + "summary": "Retrieve a specific OpenID Connect provider setting for the org.", + "description": "Retrieve a specific OpenID Connect provider setting for the org.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_openid-connect_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_openid-connect_partial_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_openid-connect_delete", + "summary": "Delete a specific OpenID Connect provider setting for the org.", + "description": "Delete a specific OpenID Connect provider setting for the org.", + "responses": { + "204": { + "description": "Deleted the specified OpenID Connect provider setting successfully." + }, + "400": { + "description": "The specified OpenID Connect provider setting cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/license/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/vulnerability/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/product-features/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-authentication": { + "get": { + "operationId": "orgs_saml-authentication_read", + "summary": "Retrieve the SAML Authentication settings for this Organization.", + "description": "Retrieve the SAML Authentication settings for this Organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "orgs_saml-authentication_partial_update", + "summary": "Update the SAML Authentication settings for this Organization.", + "description": "Update the SAML Authentication settings for this Organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/": { + "get": { + "operationId": "orgs_saml-group-sync_list", + "summary": "Get the details of all SAML Group Sync mapping within an organization.", + "description": "Get the details of all SAML Group Sync mapping within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of all SAML Group Sync mappings for this org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_saml-group-sync_create", + "summary": "Create a new SAML Group Sync mapping within an organization.", + "description": "Create a new SAML Group Sync mapping within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The SAML Group Sync mapping was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/disable/": { + "post": { + "operationId": "orgs_saml-group-sync_disable", + "summary": "Disable SAML Group Sync for this organization.", + "description": "Disable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been disabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/enable/": { + "post": { + "operationId": "orgs_saml-group-sync_enable", + "summary": "Enable SAML Group Sync for this organization.", + "description": "Enable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been enabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/status/": { + "get": { + "operationId": "orgs_saml-group-sync_status", + "summary": "Retrieve the SAML Group Sync status for this organization.", + "description": "Retrieve the SAML Group Sync status for this organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Group Sync status for this organization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/{slug_perm}/": { + "delete": { + "operationId": "orgs_saml-group-sync_delete", + "summary": "Delete a SAML Group Sync mapping from an organization.", + "description": "Delete a SAML Group Sync mapping from an organization.", + "responses": { + "204": { + "description": "Mapping removed successfully" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim/refresh-token": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/": { + "get": { + "operationId": "orgs_services_list", + "summary": "Get a list of all services within an organization.", + "description": "Get a list of all services within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of services within an Organization.Available options are: name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", + "required": false, + "schema": { + "type": "string", + "default": "created_at" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of services within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Service" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "orgs_services_create", + "summary": "Create a service within an organization.", + "description": "Create a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Created the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/": { + "get": { + "operationId": "orgs_services_read", + "summary": "Retrieve details of a single service within an organization.", + "description": "Retrieve details of a single service within an organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_services_partial_update", + "summary": "Update a service within an organization.", + "description": "Update a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_services_delete", + "summary": "Delete a specific service", + "description": "Delete a specific service", + "responses": { + "204": { + "description": "Deleted the service successfully." + }, + "400": { + "description": "The service cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/refresh/": { + "post": { + "operationId": "orgs_services_refresh", + "summary": "Refresh service API token.", + "description": "Refresh service API token.", + "responses": { + "200": { + "description": "Refreshed the service token successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "The service token cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/settings": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/slug": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/": { + "get": { + "operationId": "orgs_teams_list", + "summary": "Get the details of all teams within an organization.", + "description": "Get the details of all teams within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "for_user", + "in": "query", + "description": "Filter for teams that you are a member of.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of teams within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_teams_create", + "summary": "Create a team for this organization.", + "description": "Create a team for this organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Team created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/": { + "get": { + "operationId": "orgs_teams_read", + "summary": "Get the details of a specific team within an organization.", + "description": "Get the details of a specific team within an organization.", + "responses": { + "200": { + "description": "Retrieved the details of the requested team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_teams_partial_update", + "summary": "Update a specific team in a organization.", + "description": "Update a specific team in a organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "orgs_teams_delete", + "summary": "Delete a specific team in a organization.", + "description": "Delete a specific team in a organization.", + "responses": { + "204": { + "description": "Deleted the team successfully." + }, + "400": { + "description": "The team cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members": { + "get": { + "operationId": "orgs_teams_members_list", + "summary": "List all members for the team.", + "description": "List all members for the team.", + "responses": { + "200": { + "description": "Retrieved users for the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "post": { + "operationId": "orgs_teams_members_create", + "summary": "Add users to a team.", + "description": "Add users to a team.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "201": { + "description": "The users were added to the team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "orgs_teams_members_update", + "summary": "Replace all team members.", + "description": "Replace all team members.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "204": { + "description": "The team members were replaced.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members/{member}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/memberships/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/usage-limits/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy-violation/": { + "get": { + "operationId": "orgs_vulnerability-policy-violation_list", + "summary": "List all current vulnerability policy violations for this Organization.", + "description": "List all current vulnerability policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" + } + } + }, + "title": "PackageVulnerabilityPolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/": { + "get": { + "operationId": "orgs_vulnerability-policy_list", + "summary": "Get a list of all package vulnerability policies.", + "description": "Get a list of all package vulnerability policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_create", + "summary": "Create a package vulnerability policy.", + "description": "Create a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_read", + "summary": "Get a package vulnerability policy.", + "description": "Get a package vulnerability policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_vulnerability-policy_update", + "summary": "Update a package vulnerability policy.", + "description": "Update a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_vulnerability-policy_partial_update", + "summary": "Partially update a package vulnerability policy.", + "description": "Partially update a package vulnerability policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_vulnerability-policy_delete", + "summary": "Delete a package vulnerability policy.", + "description": "Delete a package vulnerability policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/docker/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/maven/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/": { + "get": { + "operationId": "packages_list", + "summary": "Get a list of all packages associated with repository.", + "description": "Get a list of all packages associated with repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "-date" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of packages", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/groups/": { + "get": { + "operationId": "packages_groups_list", + "summary": "Return a list of Package Groups in a repository.", + "description": "Return a list of Package Groups in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "group_by", + "in": "query", + "description": "A field to group packages by. Available options: name, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of package groups.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageGroup" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/alpine/": { + "post": { + "operationId": "packages_upload_alpine", + "summary": "Create a new Alpine package", + "description": "Create a new Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cargo/": { + "post": { + "operationId": "packages_upload_cargo", + "summary": "Create a new Cargo package", + "description": "Create a new Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cocoapods/": { + "post": { + "operationId": "packages_upload_cocoapods", + "summary": "Create a new CocoaPods package", + "description": "Create a new CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/composer/": { + "post": { + "operationId": "packages_upload_composer", + "summary": "Create a new Composer package", + "description": "Create a new Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conan/": { + "post": { + "operationId": "packages_upload_conan", + "summary": "Create a new Conan package", + "description": "Create a new Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conda/": { + "post": { + "operationId": "packages_upload_conda", + "summary": "Create a new Conda package", + "description": "Create a new Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cran/": { + "post": { + "operationId": "packages_upload_cran", + "summary": "Create a new CRAN package", + "description": "Create a new CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/dart/": { + "post": { + "operationId": "packages_upload_dart", + "summary": "Create a new Dart package", + "description": "Create a new Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/deb/": { + "post": { + "operationId": "packages_upload_deb", + "summary": "Create a new Debian package", + "description": "Create a new Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/docker/": { + "post": { + "operationId": "packages_upload_docker", + "summary": "Create a new Docker package", + "description": "Create a new Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/go/": { + "post": { + "operationId": "packages_upload_go", + "summary": "Create a new Go package", + "description": "Create a new Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/helm/": { + "post": { + "operationId": "packages_upload_helm", + "summary": "Create a new Helm package", + "description": "Create a new Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/hex/": { + "post": { + "operationId": "packages_upload_hex", + "summary": "Create a new Hex package", + "description": "Create a new Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/luarocks/": { + "post": { + "operationId": "packages_upload_luarocks", + "summary": "Create a new LuaRocks package", + "description": "Create a new LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/maven/": { + "post": { + "operationId": "packages_upload_maven", + "summary": "Create a new Maven package", + "description": "Create a new Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/npm/": { + "post": { + "operationId": "packages_upload_npm", + "summary": "Create a new npm package", + "description": "Create a new npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/nuget/": { + "post": { + "operationId": "packages_upload_nuget", + "summary": "Create a new NuGet package", + "description": "Create a new NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/p2/": { + "post": { + "operationId": "packages_upload_p2", + "summary": "Create a new P2 package", + "description": "Create a new P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/python/": { + "post": { + "operationId": "packages_upload_python", + "summary": "Create a new Python package", + "description": "Create a new Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/raw/": { + "post": { + "operationId": "packages_upload_raw", + "summary": "Create a new Raw package", + "description": "Create a new Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/rpm/": { + "post": { + "operationId": "packages_upload_rpm", + "summary": "Create a new RedHat package", + "description": "Create a new RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/ruby/": { + "post": { + "operationId": "packages_upload_ruby", + "summary": "Create a new Ruby package", + "description": "Create a new Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/swift/": { + "post": { + "operationId": "packages_upload_swift", + "summary": "Create a new Swift package", + "description": "Create a new Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/terraform/": { + "post": { + "operationId": "packages_upload_terraform", + "summary": "Create a new Terraform package", + "description": "Create a new Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/vagrant/": { + "post": { + "operationId": "packages_upload_vagrant", + "summary": "Create a new Vagrant package", + "description": "Create a new Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/alpine/": { + "post": { + "operationId": "packages_validate-upload_alpine", + "summary": "Validate parameters for create Alpine package", + "description": "Validate parameters for create Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cargo/": { + "post": { + "operationId": "packages_validate-upload_cargo", + "summary": "Validate parameters for create Cargo package", + "description": "Validate parameters for create Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cocoapods/": { + "post": { + "operationId": "packages_validate-upload_cocoapods", + "summary": "Validate parameters for create CocoaPods package", + "description": "Validate parameters for create CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/composer/": { + "post": { + "operationId": "packages_validate-upload_composer", + "summary": "Validate parameters for create Composer package", + "description": "Validate parameters for create Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conan/": { + "post": { + "operationId": "packages_validate-upload_conan", + "summary": "Validate parameters for create Conan package", + "description": "Validate parameters for create Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conda/": { + "post": { + "operationId": "packages_validate-upload_conda", + "summary": "Validate parameters for create Conda package", + "description": "Validate parameters for create Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cran/": { + "post": { + "operationId": "packages_validate-upload_cran", + "summary": "Validate parameters for create CRAN package", + "description": "Validate parameters for create CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/dart/": { + "post": { + "operationId": "packages_validate-upload_dart", + "summary": "Validate parameters for create Dart package", + "description": "Validate parameters for create Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/deb/": { + "post": { + "operationId": "packages_validate-upload_deb", + "summary": "Validate parameters for create Debian package", + "description": "Validate parameters for create Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/docker/": { + "post": { + "operationId": "packages_validate-upload_docker", + "summary": "Validate parameters for create Docker package", + "description": "Validate parameters for create Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/go/": { + "post": { + "operationId": "packages_validate-upload_go", + "summary": "Validate parameters for create Go package", + "description": "Validate parameters for create Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/helm/": { + "post": { + "operationId": "packages_validate-upload_helm", + "summary": "Validate parameters for create Helm package", + "description": "Validate parameters for create Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/hex/": { + "post": { + "operationId": "packages_validate-upload_hex", + "summary": "Validate parameters for create Hex package", + "description": "Validate parameters for create Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/luarocks/": { + "post": { + "operationId": "packages_validate-upload_luarocks", + "summary": "Validate parameters for create LuaRocks package", + "description": "Validate parameters for create LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/maven/": { + "post": { + "operationId": "packages_validate-upload_maven", + "summary": "Validate parameters for create Maven package", + "description": "Validate parameters for create Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/npm/": { + "post": { + "operationId": "packages_validate-upload_npm", + "summary": "Validate parameters for create npm package", + "description": "Validate parameters for create npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/nuget/": { + "post": { + "operationId": "packages_validate-upload_nuget", + "summary": "Validate parameters for create NuGet package", + "description": "Validate parameters for create NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/p2/": { + "post": { + "operationId": "packages_validate-upload_p2", + "summary": "Validate parameters for create P2 package", + "description": "Validate parameters for create P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/python/": { + "post": { + "operationId": "packages_validate-upload_python", + "summary": "Validate parameters for create Python package", + "description": "Validate parameters for create Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/raw/": { + "post": { + "operationId": "packages_validate-upload_raw", + "summary": "Validate parameters for create Raw package", + "description": "Validate parameters for create Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/rpm/": { + "post": { + "operationId": "packages_validate-upload_rpm", + "summary": "Validate parameters for create RedHat package", + "description": "Validate parameters for create RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/ruby/": { + "post": { + "operationId": "packages_validate-upload_ruby", + "summary": "Validate parameters for create Ruby package", + "description": "Validate parameters for create Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/swift/": { + "post": { + "operationId": "packages_validate-upload_swift", + "summary": "Validate parameters for create Swift package", + "description": "Validate parameters for create Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/terraform/": { + "post": { + "operationId": "packages_validate-upload_terraform", + "summary": "Validate parameters for create Terraform package", + "description": "Validate parameters for create Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/vagrant/": { + "post": { + "operationId": "packages_validate-upload_vagrant", + "summary": "Validate parameters for create Vagrant package", + "description": "Validate parameters for create Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "packages_read", + "summary": "Get a specific package in a repository.", + "description": "Get a specific package in a repository.", + "responses": { + "200": { + "description": "Retrieved the specified package successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "delete": { + "operationId": "packages_delete", + "summary": "Delete a specific package in a repository.", + "description": "Delete a specific package in a repository.", + "responses": { + "204": { + "description": "Deleted the specified package successfully." + }, + "400": { + "description": "The package cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/copy/": { + "post": { + "operationId": "packages_copy", + "summary": "Copy a package to another repository.", + "description": "Copy a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Copied specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopy" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/dependencies/": { + "get": { + "operationId": "packages_dependencies", + "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "responses": { + "200": { + "description": "Retrieved stored dependencies for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDependencies" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/move/": { + "post": { + "operationId": "packages_move", + "summary": "Move a package to another repository.", + "description": "Move a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMoveRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Moved specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMove" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/quarantine/": { + "post": { + "operationId": "packages_quarantine", + "summary": "Quarantine or release a package.", + "description": "Quarantine or release a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantineRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Changed the package's quarantine status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantine" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/resync/": { + "post": { + "operationId": "packages_resync", + "summary": "Schedule a package for resynchronisation.", + "description": "Schedule a package for resynchronisation.", + "responses": { + "200": { + "description": "Scheduled the package for resynchronisation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResync" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/scan/": { + "post": { + "operationId": "packages_scan", + "summary": "Schedule a package for scanning.", + "description": "Schedule a package for scanning.", + "responses": { + "200": { + "description": "Scheduled the package for scanning.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/status/": { + "get": { + "operationId": "packages_status", + "summary": "Get the synchronization status for a package.", + "description": "Get the synchronization status for a package.", + "responses": { + "200": { + "description": "Retrieved status for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/tag/": { + "post": { + "operationId": "packages_tag", + "summary": "Add/Replace/Remove tags for a package.", + "description": "Add/Replace/Remove tags for a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageTagRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Modified tags for the package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/history/{owner}/": { + "get": { + "operationId": "quota_history_read", + "summary": "Quota history for a given namespace.", + "description": "Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/history/{owner}/": { + "get": { + "operationId": "quota_oss_history_read", + "summary": "Open-source Quota history for a given namespace.", + "description": "Open-source Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/{owner}/": { + "get": { + "operationId": "quota_oss_read", + "summary": "Open-source Quota usage for a given namespace.", + "description": "Open-source Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/{owner}/": { + "get": { + "operationId": "quota_read", + "summary": "Quota usage for a given namespace.", + "description": "Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/rates/limits/": { + "get": { + "operationId": "rates_limits_list", + "summary": "Endpoint to check rate limits for current user.", + "description": "Endpoint to check rate limits for current user.", + "responses": { + "200": { + "description": "Rate check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResourcesRateCheck" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "rates" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/repos/": { + "get": { + "operationId": "repos_user_list", + "summary": "Get a list of all repositories associated with current user.", + "description": "Get a list of all repositories associated with current user.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/repos/{owner}/": { + "get": { + "operationId": "repos_namespace_list", + "summary": "Get a list of all repositories within a namespace.", + "description": "Get a list of all repositories within a namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_create", + "summary": "Create a new repository in a given namespace.", + "description": "Create a new repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreateRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The repository was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/": { + "get": { + "operationId": "repos_read", + "summary": "Get a specific repository.", + "description": "Get a specific repository.", + "responses": { + "200": { + "description": "Retrieved the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_partial_update", + "summary": "Update details about a repository in a given namespace.", + "description": "Update details about a repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "The repository was updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "repos_delete", + "summary": "Delete a repository in a given namespace.", + "description": "Delete a repository in a given namespace.", + "responses": { + "200": { + "description": "The repository has been scheduled for deletion." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/": { + "get": { + "operationId": "repos_ecdsa_list", + "summary": "Retrieve the active ECDSA key for the Repository.", + "description": "Retrieve the active ECDSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" + }, + "post": { + "operationId": "repos_ecdsa_create", + "summary": "Set the active ECDSA key for the Repository.", + "description": "Set the active ECDSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided ECDSA key is the same as the current ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "201": { + "description": "The provided ECDSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "The provided ECDSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom ECDSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/regenerate/": { + "post": { + "operationId": "repos_ecdsa_regenerate", + "summary": "Regenerate ECDSA Key for the Repository.", + "description": "Regenerate ECDSA Key for the Repository.", + "responses": { + "200": { + "description": "An ECDSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip": { + "get": { + "operationId": "repos_geoip_read", + "summary": "List all repository geoip rules.", + "description": "List all repository geoip rules.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_geoip_update", + "summary": "Replace repository geoip rules.", + "description": "Replace repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_geoip_partial_update", + "summary": "Partially update repository geoip rules.", + "description": "Partially update repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/disable/": { + "post": { + "operationId": "repos_geoip_disable", + "summary": "Disable GeoIP for this repository.", + "description": "Disable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been disabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/enable/": { + "post": { + "operationId": "repos_geoip_enable", + "summary": "Enable GeoIP for this repository.", + "description": "Enable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been enabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/status/": { + "get": { + "operationId": "api_repos_geoip_status", + "summary": "Retrieve the GeoIP status for this repository.", + "description": "Retrieve the GeoIP status for this repository.", + "responses": { + "200": { + "description": "Retrieved the GeoIP status for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/test/": { + "post": { + "operationId": "repos_geoip_test", + "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", + "description": "Test a list of IP addresses against the repository's current GeoIP rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" + } + } + } + }, + "responses": { + "201": { + "description": "Successfuly tested addresses against the repository's GeoIP rules", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/": { + "get": { + "operationId": "repos_gpg_list", + "summary": "Retrieve the active GPG key for the Repository.", + "description": "Retrieve the active GPG key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_gpg_create", + "summary": "Set the active GPG key for the Repository.", + "description": "Set the active GPG key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided GPG key is the same as the current GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "201": { + "description": "The provided GPG key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "The provided GPG key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom GPG keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/regenerate/": { + "post": { + "operationId": "repos_gpg_regenerate", + "summary": "Regenerate GPG Key for the Repository.", + "description": "Regenerate GPG Key for the Repository.", + "responses": { + "200": { + "description": "A GPG key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/privileges": { + "get": { + "operationId": "repos_privileges_list", + "summary": "List all explicity created privileges for the repository.", + "description": "List all explicity created privileges for the repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved privileges for the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInput" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_privileges_update", + "summary": "Replace all existing repository privileges with those specified.", + "description": "Replace all existing repository privileges with those specified.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges replaced" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_privileges_partial_update", + "summary": "Modify privileges for the repository.", + "description": "Modify privileges for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges updated" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/": { + "get": { + "operationId": "repos_rsa_list", + "summary": "Retrieve the active RSA key for the Repository.", + "description": "Retrieve the active RSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_rsa_create", + "summary": "Set the active RSA key for the Repository.", + "description": "Set the active RSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided RSA key is the same as the current RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "201": { + "description": "The provided RSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "The provided RSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom RSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/regenerate/": { + "post": { + "operationId": "repos_rsa_regenerate", + "summary": "Regenerate RSA Key for the Repository.", + "description": "Regenerate RSA Key for the Repository.", + "responses": { + "200": { + "description": "An RSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/": { + "get": { + "operationId": "repos_upstream_cargo_list", + "summary": "List Cargo upstream configs for this repository.", + "description": "List Cargo upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cargo_create", + "summary": "Create a Cargo upstream config for this repository.", + "description": "Create a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cargo_read", + "summary": "Retrieve a Cargo upstream config for this repository.", + "description": "Retrieve a Cargo upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cargo_update", + "summary": "Update a Cargo upstream config for this repository.", + "description": "Update a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cargo_partial_update", + "summary": "Partially update a Cargo upstream config for this repository.", + "description": "Partially update a Cargo upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cargo_delete", + "summary": "Delete a Cargo upstream config for this repository.", + "description": "Delete a Cargo upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/": { + "get": { + "operationId": "repos_upstream_composer_list", + "summary": "List Composer upstream configs for this repository.", + "description": "List Composer upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_composer_create", + "summary": "Create a Composer upstream config for this repository.", + "description": "Create a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_composer_read", + "summary": "Retrieve a Composer upstream config for this repository.", + "description": "Retrieve a Composer upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_composer_update", + "summary": "Update a Composer upstream config for this repository.", + "description": "Update a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_composer_partial_update", + "summary": "Partially update a Composer upstream config for this repository.", + "description": "Partially update a Composer upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_composer_delete", + "summary": "Delete a Composer upstream config for this repository.", + "description": "Delete a Composer upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/": { + "get": { + "operationId": "repos_upstream_cran_list", + "summary": "List CRAN upstream configs for this repository.", + "description": "List CRAN upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cran_create", + "summary": "Create a CRAN upstream config for this repository.", + "description": "Create a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cran_read", + "summary": "Retrieve a CRAN upstream config for this repository.", + "description": "Retrieve a CRAN upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cran_update", + "summary": "Update a CRAN upstream config for this repository.", + "description": "Update a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cran_partial_update", + "summary": "Partially update a CRAN upstream config for this repository.", + "description": "Partially update a CRAN upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cran_delete", + "summary": "Delete a CRAN upstream config for this repository.", + "description": "Delete a CRAN upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/": { + "get": { + "operationId": "repos_upstream_dart_list", + "summary": "List Dart upstream configs for this repository.", + "description": "List Dart upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_dart_create", + "summary": "Create a Dart upstream config for this repository.", + "description": "Create a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_dart_read", + "summary": "Retrieve a Dart upstream config for this repository.", + "description": "Retrieve a Dart upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_dart_update", + "summary": "Update a Dart upstream config for this repository.", + "description": "Update a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_dart_partial_update", + "summary": "Partially update a Dart upstream config for this repository.", + "description": "Partially update a Dart upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_dart_delete", + "summary": "Delete a Dart upstream config for this repository.", + "description": "Delete a Dart upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/": { + "get": { + "operationId": "repos_upstream_deb_list", + "summary": "List Debian upstream configs for this repository.", + "description": "List Debian upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_deb_create", + "summary": "Create a Debian upstream config for this repository.", + "description": "Create a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_deb_read", + "summary": "Retrieve a Debian upstream config for this repository.", + "description": "Retrieve a Debian upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_deb_update", + "summary": "Update a Debian upstream config for this repository.", + "description": "Update a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_deb_partial_update", + "summary": "Partially update a Debian upstream config for this repository.", + "description": "Partially update a Debian upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_deb_delete", + "summary": "Delete a Debian upstream config for this repository.", + "description": "Delete a Debian upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/": { + "get": { + "operationId": "repos_upstream_docker_list", + "summary": "List Docker upstream configs for this repository.", + "description": "List Docker upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_docker_create", + "summary": "Create a Docker upstream config for this repository.", + "description": "Create a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_docker_read", + "summary": "Retrieve a Docker upstream config for this repository.", + "description": "Retrieve a Docker upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_docker_update", + "summary": "Update a Docker upstream config for this repository.", + "description": "Update a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_docker_partial_update", + "summary": "Partially update a Docker upstream config for this repository.", + "description": "Partially update a Docker upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_docker_delete", + "summary": "Delete a Docker upstream config for this repository.", + "description": "Delete a Docker upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/": { + "get": { + "operationId": "repos_upstream_go_list", + "summary": "List Go upstream configs for this repository.", + "description": "List Go upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_go_create", + "summary": "Create a Go upstream config for this repository.", + "description": "Create a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_go_read", + "summary": "Retrieve a Go upstream config for this repository.", + "description": "Retrieve a Go upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_go_update", + "summary": "Update a Go upstream config for this repository.", + "description": "Update a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_go_partial_update", + "summary": "Partially update a Go upstream config for this repository.", + "description": "Partially update a Go upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_go_delete", + "summary": "Delete a Go upstream config for this repository.", + "description": "Delete a Go upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/": { + "get": { + "operationId": "repos_upstream_helm_list", + "summary": "List Helm upstream configs for this repository.", + "description": "List Helm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_helm_create", + "summary": "Create a Helm upstream config for this repository.", + "description": "Create a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_helm_read", + "summary": "Retrieve a Helm upstream config for this repository.", + "description": "Retrieve a Helm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_helm_update", + "summary": "Update a Helm upstream config for this repository.", + "description": "Update a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_helm_partial_update", + "summary": "Partially update a Helm upstream config for this repository.", + "description": "Partially update a Helm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_helm_delete", + "summary": "Delete a Helm upstream config for this repository.", + "description": "Delete a Helm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/": { + "get": { + "operationId": "repos_upstream_hex_list", + "summary": "List Hex upstream configs for this repository.", + "description": "List Hex upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_hex_create", + "summary": "Create a Hex upstream config for this repository.", + "description": "Create a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_hex_read", + "summary": "Retrieve a Hex upstream config for this repository.", + "description": "Retrieve a Hex upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_hex_update", + "summary": "Update a Hex upstream config for this repository.", + "description": "Update a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_hex_partial_update", + "summary": "Partially update a Hex upstream config for this repository.", + "description": "Partially update a Hex upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_hex_delete", + "summary": "Delete a Hex upstream config for this repository.", + "description": "Delete a Hex upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/": { + "get": { + "operationId": "repos_upstream_maven_list", + "summary": "List Maven upstream configs for this repository.", + "description": "List Maven upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_maven_create", + "summary": "Create a Maven upstream config for this repository.", + "description": "Create a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_maven_read", + "summary": "Retrieve a Maven upstream config for this repository.", + "description": "Retrieve a Maven upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_maven_update", + "summary": "Update a Maven upstream config for this repository.", + "description": "Update a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_maven_partial_update", + "summary": "Partially update a Maven upstream config for this repository.", + "description": "Partially update a Maven upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_maven_delete", + "summary": "Delete a Maven upstream config for this repository.", + "description": "Delete a Maven upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/": { + "get": { + "operationId": "repos_upstream_npm_list", + "summary": "List npm upstream configs for this repository.", + "description": "List npm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_npm_create", + "summary": "Create a npm upstream config for this repository.", + "description": "Create a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_npm_read", + "summary": "Retrieve a npm upstream config for this repository.", + "description": "Retrieve a npm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_npm_update", + "summary": "Update a npm upstream config for this repository.", + "description": "Update a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_npm_partial_update", + "summary": "Partially update a npm upstream config for this repository.", + "description": "Partially update a npm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_npm_delete", + "summary": "Delete a npm upstream config for this repository.", + "description": "Delete a npm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/": { + "get": { + "operationId": "repos_upstream_nuget_list", + "summary": "List NuGet upstream configs for this repository.", + "description": "List NuGet upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_nuget_create", + "summary": "Create a NuGet upstream config for this repository.", + "description": "Create a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_nuget_read", + "summary": "Retrieve a NuGet upstream config for this repository.", + "description": "Retrieve a NuGet upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_nuget_update", + "summary": "Update a NuGet upstream config for this repository.", + "description": "Update a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_nuget_partial_update", + "summary": "Partially update a NuGet upstream config for this repository.", + "description": "Partially update a NuGet upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_nuget_delete", + "summary": "Delete a NuGet upstream config for this repository.", + "description": "Delete a NuGet upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/": { + "get": { + "operationId": "repos_upstream_python_list", + "summary": "List Python upstream configs for this repository.", + "description": "List Python upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_python_create", + "summary": "Create a Python upstream config for this repository.", + "description": "Create a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_python_read", + "summary": "Retrieve a Python upstream config for this repository.", + "description": "Retrieve a Python upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_python_update", + "summary": "Update a Python upstream config for this repository.", + "description": "Update a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_python_partial_update", + "summary": "Partially update a Python upstream config for this repository.", + "description": "Partially update a Python upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_python_delete", + "summary": "Delete a Python upstream config for this repository.", + "description": "Delete a Python upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/": { + "get": { + "operationId": "repos_upstream_rpm_list", + "summary": "List RedHat upstream configs for this repository.", + "description": "List RedHat upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_rpm_create", + "summary": "Create a RedHat upstream config for this repository.", + "description": "Create a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_rpm_read", + "summary": "Retrieve a RedHat upstream config for this repository.", + "description": "Retrieve a RedHat upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_rpm_update", + "summary": "Update a RedHat upstream config for this repository.", + "description": "Update a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_rpm_partial_update", + "summary": "Partially update a RedHat upstream config for this repository.", + "description": "Partially update a RedHat upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_rpm_delete", + "summary": "Delete a RedHat upstream config for this repository.", + "description": "Delete a RedHat upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/": { + "get": { + "operationId": "repos_upstream_ruby_list", + "summary": "List Ruby upstream configs for this repository.", + "description": "List Ruby upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_ruby_create", + "summary": "Create a Ruby upstream config for this repository.", + "description": "Create a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_ruby_read", + "summary": "Retrieve a Ruby upstream config for this repository.", + "description": "Retrieve a Ruby upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_ruby_update", + "summary": "Update a Ruby upstream config for this repository.", + "description": "Update a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_ruby_partial_update", + "summary": "Partially update a Ruby upstream config for this repository.", + "description": "Partially update a Ruby upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_ruby_delete", + "summary": "Delete a Ruby upstream config for this repository.", + "description": "Delete a Ruby upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/": { + "get": { + "operationId": "repos_upstream_swift_list", + "summary": "List Swift upstream configs for this repository.", + "description": "List Swift upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_swift_create", + "summary": "Create a Swift upstream config for this repository.", + "description": "Create a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_swift_read", + "summary": "Retrieve a Swift upstream config for this repository.", + "description": "Retrieve a Swift upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_swift_update", + "summary": "Update a Swift upstream config for this repository.", + "description": "Update a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_swift_partial_update", + "summary": "Partially update a Swift upstream config for this repository.", + "description": "Partially update a Swift upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_swift_delete", + "summary": "Delete a Swift upstream config for this repository.", + "description": "Delete a Swift upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-ecdsa/": { + "get": { + "operationId": "repos_x509_ecdsa_list", + "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 ECDSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-rsa/": { + "get": { + "operationId": "repos_x509_rsa_list", + "summary": "Retrieve the active X.509 RSA certificate for the Repository.", + "description": "Retrieve the active X.509 RSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 RSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509RsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/create-entitlement/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/{eula}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eula", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/invalidate-cache/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/retention/": { + "get": { + "operationId": "repo_retention_read", + "summary": "Retrieve the retention rules for the repository.", + "description": "Retrieve the retention rules for the repository.", + "responses": { + "200": { + "description": "Retrieved the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "repo_retention_partial_update", + "summary": "Update the retention rules for the repository.", + "description": "Update the retention rules for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-owner/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-region/": { + "post": { + "operationId": "repos_transfer_region", + "summary": "Transfer a repository to a different region.", + "description": "Transfer a repository to a different region.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTransferRegionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Repository region transfer initiated." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom storage regions not available on plan; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner, namespace or repository not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Groups": { + "get": { + "operationId": "scim_v2_Groups_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Groups_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Groups/{id}": { + "get": { + "operationId": "scim_v2_Groups_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Groups_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Groups_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Groups_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ResourceTypes": { + "get": { + "operationId": "scim_v2_ResourceTypes_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ResourceTypes_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ResourceTypes/{id}": { + "get": { + "operationId": "scim_v2_ResourceTypes_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ResourceTypes_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ResourceTypes_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ResourceTypes_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ServiceProviderConfig": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ServiceProviderConfig_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ServiceProviderConfig/{id}": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ServiceProviderConfig_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ServiceProviderConfig_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ServiceProviderConfig_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Users": { + "get": { + "operationId": "scim_v2_Users_list", + "description": "", + "parameters": [ + { + "name": "count", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The initial index from which to return the results.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Users_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Users/{identifier}": { + "get": { + "operationId": "scim_v2_Users_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Users_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Users_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Users_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" + } + } + ] + }, + "/status/check/basic/": { + "get": { + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", + "responses": { + "200": { + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "status" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", + "responses": { + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [] + }, + "/storage-regions/{slug}/": { + "get": { + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/usage/{owner}/{requested_metric}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "requested_metric", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/additional-onboarding-actions/": { + "parameters": [] + }, + "/user/default-org/": { + "parameters": [] + }, + "/user/emails/": { + "parameters": [] + }, + "/user/emails/{email}/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/emails/{email}/resend-confirmation/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/": { + "parameters": [] + }, + "/user/invites/{invite_id}/accept/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/{invite_id}/reject/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/logins/": { + "parameters": [] + }, + "/user/logout/": { + "parameters": [] + }, + "/user/logout/other-sessions/": { + "parameters": [] + }, + "/user/password/": { + "parameters": [] + }, + "/user/permissions/check/": { + "parameters": [] + }, + "/user/profile/": { + "parameters": [] + }, + "/user/refresh-token/": { + "parameters": [] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", + "responses": { + "200": { + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/user/sessions/": { + "parameters": [] + }, + "/user/slug/": { + "parameters": [] + }, + "/user/soft-delete/": { + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Retrieved/created user API token/key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "403": { + "description": "Locked out.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Failed to authenticate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "security": [ + { + "basic": [] + } + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/user/token/restrictions/": { + "parameters": [] + }, + "/user/token/restrictions/{token}/": { + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/tokens/": { + "get": { + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", + "responses": { + "201": { + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "User has already created an API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [] + }, + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", + "responses": { + "200": { + "description": "Successfully refreshed the API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "The specified API key cannot be found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/totp/backup/disable/": { + "parameters": [] + }, + "/user/totp/backup/enable/": { + "parameters": [] + }, + "/user/totp/confirm/": { + "parameters": [] + }, + "/user/totp/disable/": { + "parameters": [] + }, + "/user/totp/enable/": { + "parameters": [] + }, + "/user/totp/settings/": { + "parameters": [] + }, + "/user/two-factor/": { + "parameters": [] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", + "responses": { + "200": { + "description": "Retrieved details for the specified user (or current user, if none was specified)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfile" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "users" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated" + ] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/": { + "get": { + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/": { + "get": { + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/": { + "get": { + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of webhooks", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", + "responses": { + "204": { + "description": "Deleted the specified webhook successfully." + }, + "400": { + "description": "The webhook cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io" + } + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } + } + } + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } + } + } + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } + } + } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" + } + } + } + }, + "SwiftUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequest" + } + } + } + }, + "NpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequest" + } + } + } + }, + "SwiftPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUploadRequest" + } + } + } + }, + "HexUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequest" + } + } + } + }, + "RubyPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUploadRequest" + } + } + } + }, + "CargoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUploadRequest" + } + } + } + }, + "RubyUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequest" + } + } + } + }, + "RpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequest" + } + } + } + }, + "MavenUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequest" + } + } + } + }, + "OrganizationTeamMembers": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "VagrantPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUploadRequest" + } + } + } + }, + "GoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequest" + } + } + } + }, + "ConanPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUploadRequest" + } + } + } + }, + "RawPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUploadRequest" + } + } + } + }, + "HelmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequest" + } + } + } + }, + "NugetUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequest" + } + } + } + }, + "TerraformPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUploadRequest" + } + } + } + }, + "PackageFileUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUploadRequest" + } + } + } + }, + "PackageDenyPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequest" + } + } + } + }, + "ProviderSettingsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequest" + } + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" + } + } + } + }, + "AlpinePackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUploadRequest" + } + } + } + }, + "CocoapodsPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" + } + } + } + }, + "ComposerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUploadRequest" + } + } + } + }, + "CondaPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUploadRequest" + } + } + } + }, + "CranPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUploadRequest" + } + } + } + }, + "DartPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUploadRequest" + } + } + } + }, + "DebPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUploadRequest" + } + } + } + }, + "DockerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUploadRequest" + } + } + } + }, + "HelmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUploadRequest" + } + } + } + }, + "HexPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUploadRequest" + } + } + } + }, + "LuarocksPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUploadRequest" + } + } + } + }, + "MavenPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUploadRequest" + } + } + } + }, + "NpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUploadRequest" + } + } + } + }, + "NugetPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUploadRequest" + } + } + } + }, + "P2PackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUploadRequest" + } + } + } + }, + "PythonPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUploadRequest" + } + } + } + }, + "RpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUploadRequest" + } + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" + } + } + } + }, + "ComposerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequest" + } + } + } + }, + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } + } + } + }, + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } + } + } + }, + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } + } + } + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" + }, + "basic": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "ErrorDetail": { + "required": [ + "detail" + ], + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "An extended message for the response.", + "type": "string", + "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "GeoIpLocation": { + "required": [ + "city", + "continent", + "country", + "postal_code" + ], + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "minLength": 1, + "nullable": true + }, + "continent": { + "title": "Continent", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "readOnly": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "NamespaceAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "target_kind": { + "title": "Target kind", + "type": "string", + "minLength": 1 + }, + "target_slug_perm": { + "title": "Target slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "RepositoryAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "PackageVersionBadge": { + "type": "object", + "properties": {} + }, + "PlanPrice": { + "description": "List of prices for the plan", + "required": [ + "amount", + "billing_interval", + "currency" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Plan Amount", + "type": "string", + "format": "decimal" + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing", + "type": "string", + "minLength": 1 + } + } + }, + "Plan": { + "required": [ + "identifier", + "is_enterprise", + "prices" + ], + "type": "object", + "properties": { + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_enterprise": { + "title": "Is enterprise", + "description": "Is this an enterprise plan", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "prices": { + "description": "List of prices for the plan", + "type": "array", + "items": { + "$ref": "#/components/schemas/PlanPrice" + } + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + } + } + }, + "Payment": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "When was the payment created and attempted", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "failure_code": { + "title": "Failure code", + "description": "Failure Code for the payment", + "type": "string", + "minLength": 1 + }, + "failure_message": { + "title": "Failure message", + "description": "Failure message for the payment", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Payment Status", + "type": "string", + "minLength": 1 + } + } + }, + "AccountStatus": { + "required": [ + "payments" + ], + "type": "object", + "properties": { + "billing_period_end_date": { + "title": "Billing period end date", + "description": "When does the current billing period end", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment" + } + }, + "status": { + "title": "Status", + "description": "Current Status of account", + "type": "string", + "minLength": 1 + } + } + }, + "InvoiceItem": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the line", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Invoice": { + "type": "object", + "properties": { + "amount_due": { + "title": "Amount due", + "description": "Amount due to be paid", + "type": "integer", + "readOnly": true + }, + "amount_paid": { + "title": "Amount paid", + "description": "Amount paid", + "type": "integer", + "readOnly": true + }, + "billing_reason": { + "title": "Billing reason", + "description": "Reason for the invoice to be created", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "billing_reason_text": { + "title": "Billing reason text", + "type": "string", + "readOnly": true + }, + "created": { + "title": "Created", + "description": "When was the invoice created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "currency": { + "title": "Currency", + "description": "The currency of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoice_id": { + "title": "Invoice id", + "description": "Invoice ID", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoiceitems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceItem" + }, + "readOnly": true + }, + "number": { + "title": "Number", + "description": "Invoice number", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Status of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "InvoicePDF": { + "type": "object", + "properties": { + "invoice_pdf": { + "title": "Invoice pdf", + "description": "Link to the invoice in PDF", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "CardPaymentMethod": { + "type": "object", + "properties": { + "brand": { + "title": "Brand", + "description": "Card Brand (e.g. Visa)", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "exp_month": { + "title": "Exp month", + "description": "Expiration Month", + "type": "integer", + "readOnly": true + }, + "exp_year": { + "title": "Exp year", + "description": "Expiration Year", + "type": "integer", + "readOnly": true + }, + "last4": { + "title": "Last4", + "description": "Last 4 digits of card", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "PaymentMethod": { + "required": [ + "card" + ], + "type": "object", + "properties": { + "card": { + "$ref": "#/components/schemas/CardPaymentMethod" + }, + "created": { + "title": "Created", + "description": "When was the payment method created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "is_default": { + "title": "Is default", + "description": "Is this the default payment method", + "type": "boolean", + "readOnly": true + }, + "type": { + "title": "Type", + "description": "Payment Method Type", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "BillingPeriod": { + "type": "object", + "properties": { + "is_current": { + "title": "Is current", + "description": "Is this the current Billing Period", + "type": "boolean", + "readOnly": true + }, + "period_end_at": { + "title": "Period End At", + "description": "The datetime usage is recorded to.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "period_start_at": { + "title": "Period Start At", + "description": "The datetime usage is recorded from.", + "type": "string", + "format": "date-time" + }, + "trial": { + "title": "Trial", + "description": "Usage period occurred during a trial.", + "type": "boolean" + } + } + }, + "PortalUrl": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "url": { + "title": "Url", + "description": "Billing Portal URL to Redirect User to", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "OnDemandUsageProduct": { + "description": "Products in the On-Demand Usage Subscription", + "required": [ + "currency", + "identifier", + "price_per_unit", + "unit" + ], + "type": "object", + "properties": { + "currency": { + "title": "Currency", + "description": "Currency used for invoicing product", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Identifier for this product", + "type": "string", + "minLength": 1 + }, + "price_per_unit": { + "title": "Price per unit", + "description": "Price per unit", + "type": "string", + "format": "decimal" + }, + "unit": { + "title": "Unit", + "description": "Unit for this product", + "type": "string", + "minLength": 1 + } + } + }, + "OnDemandUsageSubcription": { + "description": "Details of On-Demand Usage Subscription", + "required": [ + "billing_interval", + "products" + ], + "type": "object", + "properties": { + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "products": { + "description": "Products in the On-Demand Usage Subscription", + "type": "array", + "items": { + "$ref": "#/components/schemas/OnDemandUsageProduct" + } + } + } + }, + "Subscription": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Subscription Amount", + "type": "string", + "format": "decimal" + }, + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "can_charge": { + "title": "Can charge", + "description": "Does the customer have payment method configured", + "type": "boolean" + }, + "cancel_at_period_end": { + "title": "Cancel at period end", + "description": "Subscription will be cancelled when billing period ends", + "type": "boolean" + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing subscription", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_delinquent": { + "title": "Is delinquent", + "description": "Does this subscription have outstanding invoices", + "type": "boolean" + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "on_demand_usage": { + "$ref": "#/components/schemas/OnDemandUsageSubcription" + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Current Status of subscription", + "type": "string", + "minLength": 1 + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + }, + "trial_end_date": { + "title": "Trial end date", + "description": "Trial End Date", + "type": "string", + "format": "date-time" + } + } + }, + "TrialDays": { + "required": [ + "identifier", + "is_trialing", + "remaining_trial_days", + "trial_days" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "remaining_trial_days": { + "title": "Remaining trial days", + "description": "Remaining Unused Trial Days", + "type": "integer" + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + } + } + }, + "OrganizationCustomDomainNestedRepo": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "backend_kind_str": { + "title": "Backend kind str", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "domain_type_str": { + "title": "Domain type str", + "type": "string", + "readOnly": true + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + } + } + }, + "PublicBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "PublicBroadcastsRepository": { + "required": [ + "gpg_keys", + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string", + "maxLength": 1000 + }, + "gpg_keys": { + "type": "array", + "items": { + "type": "integer" + }, + "uniqueItems": true + }, + "is_open_source": { + "title": "Is open source", + "type": "string", + "readOnly": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "open_source_license_name": { + "title": "Open source license name", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_license_url": { + "title": "Open source license url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Total Packages", + "description": "The total number of packages in this repository.", + "type": "integer" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 50 + } + } + }, + "DistributionVersion": { + "description": "A list of the versions for this distribution", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The textual name for this version.", + "type": "string", + "maxLength": 64 + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this version", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "DistributionFull": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "versions": { + "description": "A list of the versions for this distribution", + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "readOnly": true + } + } + }, + "Eula": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "number": { + "title": "Number", + "description": "A sequential identifier that increments by one for each new commit in a repository.", + "type": "integer", + "nullable": true + } + }, + "nullable": true + }, + "RepositoryToken": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryTokenRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSyncRequest": { + "required": [ + "source" + ], + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "The source repository slug (in the same owner namespace).", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSync": { + "type": "object", + "properties": { + "tokens": { + "description": "The entitlements that have been synchronised.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + }, + "readOnly": true + } + } + }, + "RepositoryTokenRequestPatch": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenAction": { + "type": "object", + "properties": {} + }, + "RepositoryTokenRefreshRequest": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenRefresh": { + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageFileUploadRequest": { + "required": [ + "filename" + ], + "type": "object", + "properties": { + "filename": { + "title": "Filename", + "description": "Filename for the package file upload.", + "type": "string", + "minLength": 1 + }, + "md5_checksum": { + "title": "Md5 checksum", + "description": "MD5 checksum for a POST-based package file upload.", + "type": "string", + "maxLength": 32, + "minLength": 32 + }, + "method": { + "title": "Method", + "description": "The method to use for package file upload.", + "type": "string", + "enum": [ + "put_parts", + "put", + "post", + "presigned", + "unsigned_put" + ], + "default": "post" + }, + "sha256_checksum": { + "title": "Sha256 checksum", + "description": "SHA256 checksum for a PUT-based package file upload.", + "type": "string", + "maxLength": 64, + "minLength": 64 + } + } + }, + "PackageFileUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use when creating packages", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_fields": { + "title": "Upload fields", + "description": "The dictionary of fields that must be sent with POST uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_headers": { + "title": "Upload headers", + "description": "The dictionary of headers that must be sent with uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step POST or PUT upload", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step POST or PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "PackageFilePartsUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use uploading parts.", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step PUT upload.", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "Distribution": { + "description": "The distributions supported by this package format", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + } + }, + "nullable": true + }, + "FormatSupportUpstream": { + "description": "The upstream support for the package format", + "required": [ + "auth_modes", + "caching", + "indexing", + "proxying" + ], + "type": "object", + "properties": { + "auth_modes": { + "description": "The authentication modes supported by the upstream format", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Username and Password", + "Token", + "Certificate and Key" + ], + "default": "Username and Password" + } + }, + "caching": { + "title": "Caching", + "description": "If true the upstream format supports caching", + "type": "boolean" + }, + "indexing": { + "title": "Indexing", + "description": "If true the upstream format supports indexing", + "type": "boolean" + }, + "indexing_behavior": { + "title": "Indexing behavior", + "description": "The behavior of the upstream when indexing", + "type": "string", + "enum": [ + "Unsupported", + "Ahead-of-time (static) indexing", + "Just-in-time (dynamic) indexing" + ], + "default": "Unsupported" + }, + "proxying": { + "title": "Proxying", + "description": "If true the upstream format supports proxying", + "type": "boolean" + }, + "signature_verification": { + "title": "Signature verification", + "description": "The signature verification supported by the upstream format", + "type": "string", + "enum": [ + "Unsupported", + "Repository Metadata", + "Packages", + "Repository Metadata and Packages" + ], + "default": "Unsupported" + } + } + }, + "FormatSupport": { + "description": "A set of what the package format supports", + "required": [ + "dependencies", + "distributions", + "file_lists", + "metadata", + "upstreams", + "versioning" + ], + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "If true the package format supports dependencies", + "type": "boolean" + }, + "distributions": { + "title": "Distributions", + "description": "If true the package format supports distributions", + "type": "boolean" + }, + "file_lists": { + "title": "File lists", + "description": "If true the package format supports file lists", + "type": "boolean" + }, + "metadata": { + "title": "Metadata", + "description": "If true the package format supports metadata", + "type": "boolean" + }, + "upstreams": { + "$ref": "#/components/schemas/FormatSupportUpstream" + }, + "versioning": { + "title": "Versioning", + "description": "If true the package format supports versioning", + "type": "boolean" + } + } + }, + "Format": { + "required": [ + "description", + "extensions", + "name", + "premium", + "slug", + "supports" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the package format", + "type": "string", + "minLength": 1 + }, + "distributions": { + "description": "The distributions supported by this package format", + "type": "array", + "items": { + "$ref": "#/components/schemas/Distribution" + }, + "nullable": true + }, + "extensions": { + "description": "A non-exhaustive list of extensions supported", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "name": { + "title": "Name", + "description": "Name for the package format", + "type": "string", + "minLength": 1 + }, + "premium": { + "title": "Premium", + "description": "If true the package format is a premium-only feature", + "type": "boolean" + }, + "premium_plan_id": { + "title": "Premium plan id", + "description": "The minimum plan id required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "premium_plan_name": { + "title": "Premium plan name", + "description": "The minimum plan name required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug": { + "title": "Slug", + "description": "Slug for the package format", + "type": "string", + "minLength": 1 + }, + "supports": { + "$ref": "#/components/schemas/FormatSupport" + } + } + }, + "PrivilegeEscalation": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password for verification.", + "type": "string", + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "description": "TOTP code for verification.", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "description": "The type of verification used.", + "type": "string", + "enum": [ + "totp", + "password" + ] + } + } + }, + "UserRequestPasswordResetRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserRequestPasswordReset": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserResetPasswordRequest": { + "required": [ + "key", + "password" + ], + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Password reset token.", + "type": "string", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Enter a new password.", + "type": "string", + "minLength": 1 + } + } + }, + "UserResetPassword": { + "type": "object", + "properties": {} + }, + "DeviceVerificationRequest": { + "required": [ + "device_id" + ], + "type": "object", + "properties": { + "device_id": { + "title": "Device id", + "description": "The device ID to verify.", + "type": "string", + "minLength": 1 + } + } + }, + "DeviceVerification": { + "type": "object", + "properties": {} + }, + "License": { + "type": "object", + "properties": { + "full_name": { + "title": "Full name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the license.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "spdx_identifier": { + "title": "Spdx identifier", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "CommonBandwidthMetricsValue": { + "description": "Average bandwidth usage in the specified period, e.g. a day", + "required": [ + "display", + "value" + ], + "type": "object", + "properties": { + "display": { + "title": "Display", + "description": "Bandwidth usage value", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "units": { + "title": "Units", + "description": "Unit of measurement e.g. bytes", + "type": "string", + "default": "bytes", + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "Human readable version of display value", + "type": "integer" + } + } + }, + "CommonBandwidthMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + } + } + }, + "CommonDownloadsMetricsValue": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "title": "Value", + "type": "integer" + } + } + }, + "CommonDownloadsMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + } + } + }, + "CommonMetrics": { + "required": [ + "bandwidth", + "downloads" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "Number of packages with at least 1 download", + "type": "integer", + "default": 0 + }, + "bandwidth": { + "$ref": "#/components/schemas/CommonBandwidthMetrics" + }, + "downloads": { + "$ref": "#/components/schemas/CommonDownloadsMetrics" + }, + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", + "type": "integer", + "default": 0 + }, + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 + } + } + }, + "EntitlementUsageMetrics": { + "required": [ + "tokens" + ], + "type": "object", + "properties": { + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "PackageUsageMetrics": { + "required": [ + "packages" + ], + "type": "object", + "properties": { + "packages": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "type_name": { + "title": "Type name", + "type": "string", + "readOnly": true + } + } + }, + "OidcRequest": { + "required": [ + "oidc_token", + "service_slug" + ], + "type": "object", + "properties": { + "oidc_token": { + "title": "Oidc token", + "description": "Serialized OIDC token.", + "type": "string", + "minLength": 1 + }, + "service_slug": { + "title": "Service slug", + "description": "Slug for the service account.", + "type": "string", + "minLength": 1 + } + } + }, + "Oidc": { + "type": "object", + "properties": {} + }, + "Organization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "country": { + "title": "Country", + "type": "string", + "readOnly": true, + "maxLength": 32, + "minLength": 1, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationUserTokenPolicy": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + } + } + }, + "OrganizationUserTokenPolicyRequest": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationUserTokenPolicyRequestPatch": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequest": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequestPatch": { + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "dns_alias_value": { + "title": "Dns alias value", + "description": "The CNAME value to use to publish this domain publicly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_name": { + "title": "Dns cert name", + "description": "The CNAME name to create to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_value": { + "title": "Dns cert value", + "description": "The CNAME value to use to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationDefaultObjectPrivileges": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "OrganizationDefaultObjectPrivilegesRequest": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "PackageDenyPolicy": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Block downloads" + ], + "readOnly": true, + "default": "Block downloads" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "In Progress" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PackageDenyPolicyRequest": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "PackageDenyPolicyRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationFeatureFlags": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The human/computer readable name.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationGlobalPrivileges": { + "required": [ + "label", + "privilege", + "selected" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "type": "string", + "minLength": 1 + }, + "privilege": { + "title": "Privilege", + "type": "string", + "minLength": 1 + }, + "selected": { + "title": "Selected", + "type": "boolean" + } + } + }, + "OrganizationTeamInvite": { + "required": [ + "team" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user in the team.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationInvite": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationInviteRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationInviteUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteUpdate": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteExtend": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm of the invite to be extended.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageVulnerability": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "NestedLicensePolicy": { + "required": [ + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageLicensePolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "OrganizationPackageLicensePolicy": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageLicensePolicyRequest": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackageLicensePolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageLicensePolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageLicensePolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationMembership": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "is_active": { + "title": "Is active", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipRequestPatch": { + "type": "object", + "properties": {} + }, + "OrganizationMembershipRoleUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + } + } + }, + "OrganizationMembershipRoleUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdateRequestPatch": { + "type": "object", + "properties": { + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "ProviderSettings": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + }, + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "ProviderSettingsRequest": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "ProviderSettingsRequestPatch": { + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackagePolicyViolationsLicense": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "NestedVulnerabilityPolicy": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NestedVulnerabilityScanResults": { + "required": [ + "identifier", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackagePolicyViolationsVulnerability": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationProductFeatures": { + "type": "object", + "properties": { + "plan": { + "title": "Plan", + "description": "Plan Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationSAMLAuth": { + "required": [ + "saml_auth_enabled", + "saml_auth_enforced" + ], + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationSAMLAuthRequestPatch": { + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGroupSync": { + "required": [ + "idp_key", + "idp_value", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncRequest": { + "required": [ + "idp_key", + "idp_value", + "organization", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "organization": { + "title": "Organization", + "type": "string" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncStatus": { + "type": "object", + "properties": { + "saml_group_sync_status": { + "title": "Saml group sync status", + "type": "boolean", + "readOnly": true + } + } + }, + "OrganizationSCIM": { + "required": [ + "scim_enabled" + ], + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + }, + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationSCIMRequestPatch": { + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + } + } + }, + "OrganizationSCIMToken": { + "type": "object", + "properties": { + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "ServiceTeams": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The team role associated with the service", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + }, + "slug": { + "title": "Slug", + "description": "The teams associated with the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "Service": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "key": { + "title": "Key", + "description": "The API key of the service", + "type": "string", + "readOnly": true + }, + "key_expires_at": { + "title": "Key expires at", + "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug": { + "title": "Slug", + "description": "The slug of the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "OrganizationGeneralSettings": { + "required": [ + "email", + "name" + ], + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGeneralSettingsRequestPatch": { + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationRenameSlugRequest": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationRenameSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "OrganizationTeam": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamMembership": { + "description": "The team members", + "required": [ + "role", + "user" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamMembers": { + "required": [ + "members" + ], + "type": "object", + "properties": { + "members": { + "description": "The team members", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamMembership" + } + } + } + }, + "OrganizationEditTeamMemberRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationEditTeamMember": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationTeamMember": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationUsage": { + "type": "object", + "properties": { + "bandwidth_overage_limit": { + "title": "Package Delivery On-Demand Limit (GBs)", + "description": "The on-demand limit for package delivery usage (in GBs).", + "type": "integer", + "nullable": true + }, + "storage_overage_limit": { + "title": "Artifact Data On-Demand Limit (GBs)", + "description": "The on-demand limit for artifact data usage (in GBs).", + "type": "integer", + "nullable": true + } + } + }, + "OrganizationUsageUpdateRequestPatch": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "OrganizationUsageUpdate": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationPackageVulnerabilityPolicy": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageVulnerabilityPolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "DockerLayerReference": { + "type": "object", + "properties": { + "command": { + "title": "Command", + "description": "The V1 command for managing the layer.", + "type": "string", + "readOnly": true + }, + "digest": { + "title": "Digest", + "description": "The digest of the layer.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_empty": { + "title": "Is empty", + "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", + "type": "boolean", + "readOnly": true + }, + "layer_type": { + "title": "Layer type", + "description": "The type of layer this is relative to image.", + "type": "string", + "enum": [ + "Base Layer", + "Intermediate Layer", + "Final Layer" + ], + "readOnly": true, + "default": "Base Layer" + }, + "mount_type": { + "title": "Mount type", + "description": "The Mount Type for the layer.", + "type": "string", + "enum": [ + "Local", + "Remote" + ], + "readOnly": true, + "default": "Local" + }, + "processed": { + "title": "Processed", + "description": "Has the layer been processed.", + "type": "boolean", + "readOnly": true + }, + "size": { + "title": "Size", + "description": "The size of the layer (in bytes).", + "type": "integer", + "readOnly": true + } + } + }, + "DockerCosign": { + "description": "The list of docker cosign attestations", + "required": [ + "created_at" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "When this cosign artifact was created", + "type": "string", + "format": "date-time" + }, + "digest": { + "title": "Digest", + "description": "The cosign artifact digest", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "The package identifier of this signature.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + } + } + }, + "DockerManifest": { + "description": "The list of manifests associated with this Docker package", + "type": "object", + "properties": { + "digest": { + "title": "Digest", + "description": "The digest for the manifest.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "is_primary": { + "title": "Is primary", + "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", + "type": "boolean", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest Type", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "manifest_type_display": { + "title": "Manifest type display", + "type": "string", + "readOnly": true + } + } + }, + "DockerPackageAdditionalDetails": { + "type": "object", + "properties": { + "attestations": { + "$ref": "#/components/schemas/DockerCosign" + }, + "config_digest": { + "title": "Config digest", + "description": "The digest of the Docker image config", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + }, + "manifests": { + "$ref": "#/components/schemas/DockerManifest" + }, + "package_type": { + "title": "Package type", + "description": "The type of the docker package i.e. a manifest or manifest list.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "sboms": { + "$ref": "#/components/schemas/DockerCosign" + }, + "signatures": { + "$ref": "#/components/schemas/DockerCosign" + } + } + }, + "MavenPackageAdditionalDetails": { + "type": "object", + "properties": { + "extended_metadata": { + "title": "Extended metadata", + "type": "string", + "readOnly": true + } + } + }, + "Architecture": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "PackageFile": { + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true, + "nullable": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_primary": { + "title": "Is primary", + "type": "boolean", + "readOnly": true + }, + "is_synchronised": { + "title": "Is synchronised", + "type": "boolean", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the file.", + "type": "integer", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "tag": { + "title": "Tag", + "description": "Freeform descriptor that describes what the file is.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "Tags": { + "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", + "type": "object", + "properties": {} + }, + "Package": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageGroup": { + "required": [ + "count", + "last_push", + "num_downloads", + "size" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "type": "integer" + }, + "count": { + "title": "Count", + "type": "integer", + "nullable": true + }, + "last_push": { + "title": "Last push", + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "integer", + "nullable": true + }, + "size": { + "title": "Size", + "type": "integer", + "nullable": true + } + } + }, + "AlpinePackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "AlpinePackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CargoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CargoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CocoapodsPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CocoapodsPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ComposerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ComposerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ConanPackageUploadRequest": { + "required": [ + "info_file", + "manifest_file", + "metadata_file", + "package_file" + ], + "type": "object", + "properties": { + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "info_file": { + "title": "Info file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "manifest_file": { + "title": "Manifest file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "metadata_file": { + "title": "Metadata file", + "description": "The conan file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ConanPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CondaPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CondaPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CranPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "architecture": { + "title": "Architecture", + "description": "Binary package uploads for macOS should specify the architecture they were built for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CranPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DartPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DartPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DebPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "changes_file": { + "title": "Changes file", + "description": "The changes archive containing the changes made to the source and debian packaging files", + "type": "string", + "minLength": 1, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", + "type": "string", + "pattern": "^[-_.\\w]+$", + "default": "main", + "maxLength": 64, + "minLength": 1 + }, + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sources_file": { + "title": "Sources file", + "description": "The sources archive containing the source code for the binary", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DebPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DockerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DockerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "GoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "GoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HelmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provenance_file": { + "title": "Provenance file", + "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HelmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HexPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HexPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "LuarocksPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "LuarocksPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "MavenPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "extra_files": { + "description": "Extra files to include in the package. This can be a single file or multiple files.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "ivy_file": { + "title": "Ivy file", + "description": "The ivy file is an XML file describing the dependencies of the project.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "javadoc_file": { + "title": "Javadoc file", + "description": "Adds bundled Java documentation to the Maven package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "pom_file": { + "title": "Pom file", + "description": "The POM file is an XML file containing the Maven coordinates.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "sources_file": { + "title": "Sources file", + "description": "Adds bundled Java source code to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "tests_file": { + "title": "Tests file", + "description": "Adds bundled Java tests to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "MavenPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NpmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "npm_dist_tag": { + "title": "Npm dist tag", + "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", + "type": "string", + "default": "latest", + "maxLength": 255, + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NugetPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "symbols_file": { + "title": "Symbols file", + "description": "Uploads a symbols file as a separate package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NugetPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "P2PackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "P2PackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PythonPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "PythonPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RawPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "content_type": { + "title": "Content/Media Type", + "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "RawPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RpmPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RubyPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RubyPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "SwiftPackageUploadRequest": { + "required": [ + "name", + "package_file", + "scope", + "version" + ], + "type": "object", + "properties": { + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "SwiftPackageUpload": { + "required": [ + "name", + "scope", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "TerraformPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "TerraformPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VagrantPackageUploadRequest": { + "required": [ + "name", + "package_file", + "provider", + "version" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "VagrantPackageUpload": { + "required": [ + "name", + "provider", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageCopyRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + } + } + }, + "PackageCopy": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be copied to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageDependency": { + "type": "object", + "properties": { + "dep_type": { + "title": "Dep type", + "type": "string", + "enum": [ + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Enhances", + "Replaces", + "Breaks", + "Built-Using", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Conflicts", + "Provides", + "Obsoletes", + "Requires", + "Runtime", + "Development", + "Compile", + "Provided", + "Test", + "System", + "Import", + "Excluded", + "Build-Requires", + "Python-Requires" + ], + "readOnly": true, + "default": "Depends" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "maxLength": 255, + "minLength": 1 + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "=", + "!=", + "<", + "<<", + "<=", + ">", + ">>", + ">=", + "~=", + "~>", + "matches" + ], + "readOnly": true, + "default": "=", + "nullable": true + }, + "version": { + "title": "Version", + "type": "string", + "readOnly": true, + "maxLength": 128, + "minLength": 1, + "nullable": true + } + } + }, + "PackageDependencies": { + "required": [ + "dependencies" + ], + "type": "object", + "properties": { + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDependency" + } + } + } + }, + "PackageMoveRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + } + } + }, + "PackageMove": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be moved to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageQuarantineRequest": { + "type": "object", + "properties": { + "release": { + "title": "Release", + "description": "If true, the package is released from quarantine.", + "type": "boolean" + }, + "restore": { + "title": "Restore", + "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", + "type": "boolean" + } + } + }, + "PackageQuarantine": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageResync": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageStatus": { + "type": "object", + "properties": { + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + } + } + }, + "PackageTagRequest": { + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Add", + "Clear", + "Replace", + "Remove" + ], + "default": "Add", + "nullable": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "tags": { + "description": "A list of tags to apply the action to. Not required for clears.", + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "default": [], + "nullable": true + } + } + }, + "PackageTag": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "Usage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageUsage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "HistoryFieldset": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/Usage" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsage" + }, + "uploaded": { + "$ref": "#/components/schemas/Usage" + } + } + }, + "UsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageUsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "HistoryFieldsetRaw": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/UsageRaw" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsageRaw" + }, + "uploaded": { + "$ref": "#/components/schemas/UsageRaw" + } + } + }, + "History": { + "required": [ + "display", + "end", + "plan", + "raw", + "start" + ], + "type": "object", + "properties": { + "days": { + "title": "Days", + "type": "integer", + "default": 0 + }, + "display": { + "$ref": "#/components/schemas/HistoryFieldset" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time" + }, + "plan": { + "title": "Plan", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "raw": { + "$ref": "#/components/schemas/HistoryFieldsetRaw" + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + } + } + }, + "QuotaHistory": { + "required": [ + "history" + ], + "type": "object", + "properties": { + "history": { + "type": "array", + "items": { + "$ref": "#/components/schemas/History" + } + } + } + }, + "AllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageAllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "UsageLimits": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimit" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimit" + } + } + }, + "AllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageAllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "UsageLimitsRaw": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimitRaw" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimitRaw" + } + } + }, + "UsageFieldset": { + "required": [ + "display", + "raw" + ], + "type": "object", + "properties": { + "display": { + "$ref": "#/components/schemas/UsageLimits" + }, + "raw": { + "$ref": "#/components/schemas/UsageLimitsRaw" + } + } + }, + "Quota": { + "required": [ + "usage" + ], + "type": "object", + "properties": { + "usage": { + "$ref": "#/components/schemas/UsageFieldset" + } + } + }, + "RateCheck": { + "type": "object", + "properties": { + "interval": { + "title": "Interval", + "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", + "type": "number", + "readOnly": true + }, + "limit": { + "title": "Limit", + "description": "The maximum number of requests that you are permitted to send per hour", + "type": "integer", + "readOnly": true + }, + "remaining": { + "title": "Remaining", + "description": "The number of requests that are remaining in the current rate limit window", + "type": "integer", + "readOnly": true + }, + "reset": { + "title": "Reset", + "description": "The UTC epoch timestamp at which the current rate limit window will reset", + "type": "integer", + "readOnly": true + }, + "reset_iso_8601": { + "title": "Reset iso 8601", + "description": "The ISO 8601 datetime at which the current rate limit window will reset", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "throttled": { + "title": "Throttled", + "description": "If true, throttling is currently being enforced.", + "type": "boolean", + "readOnly": true + } + } + }, + "ResourcesRateCheck": { + "type": "object", + "properties": { + "resources": { + "title": "Resources", + "description": "Rate limit values per resource", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RateCheck" + }, + "readOnly": true + } + } + }, + "RepositoryEcdsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryGpgKey": { + "required": [ + "comment" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by GPG for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Repository": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "readOnly": true, + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreate": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryRequestPatch": { + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryEcdsaKeyCreate": { + "required": [ + "ecdsa_private_key" + ], + "type": "object", + "properties": { + "ecdsa_passphrase": { + "title": "Ecdsa passphrase", + "description": "The ECDSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "ecdsa_private_key": { + "title": "Ecdsa private key", + "description": "The ECDSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpCidr": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed CIDRs for this repository", + "type": "array", + "items": { + "description": "The allowed CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied CIDRs for this repository", + "type": "array", + "items": { + "description": "The denied CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpCountryCode": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed country codes for this repository", + "type": "array", + "items": { + "description": "The allowed country codes for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied country codes for this repository", + "type": "array", + "items": { + "description": "The denied country codes for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpRules": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequest": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "type": "object", + "properties": {} + }, + "RespositoryGeoIpEnableDisable": { + "type": "object", + "properties": {} + }, + "RepositoryGeoIpStatus": { + "type": "object", + "properties": { + "geoip_enabled": { + "title": "Geo/IP Restriction Enabled?", + "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", + "type": "boolean", + "readOnly": true + } + } + }, + "RepositoryGeoIpTestAddress": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP addresses to test against this repository", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "RepositoryGeoIpTestAddressResponseDict": { + "required": [ + "allowed", + "country_code", + "ip_address", + "reason" + ], + "type": "object", + "properties": { + "allowed": { + "title": "Allowed", + "description": "The result of the IP test", + "type": "boolean" + }, + "country_code": { + "title": "Country code", + "description": "The country code of the tested IP address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "ip_address": { + "title": "Ip address", + "description": "The IP address that was tested", + "type": "string", + "minLength": 1 + }, + "reason": { + "title": "Reason", + "description": "The reason for the result", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpTestAddressResponse": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP address test results ordered by allowed", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" + } + } + } + }, + "RepositoryGpgKeyCreate": { + "required": [ + "gpg_private_key" + ], + "type": "object", + "properties": { + "gpg_passphrase": { + "title": "Gpg passphrase", + "description": "The GPG passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "gpg_private_key": { + "title": "Gpg private key", + "description": "The GPG private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeDict": { + "required": [ + "privilege" + ], + "type": "object", + "properties": { + "privilege": { + "title": "Privilege", + "description": "The level of privilege that the user or team should be granted to the specified repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ] + }, + "service": { + "title": "Service", + "description": "The service identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "user": { + "title": "User", + "description": "The user identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeInput": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequest": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequestPatch": { + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryRsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by RSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by RSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryRsaKeyCreate": { + "required": [ + "rsa_private_key" + ], + "type": "object", + "properties": { + "rsa_passphrase": { + "title": "Rsa passphrase", + "description": "The RSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "rsa_private_key": { + "title": "Rsa private key", + "description": "The RSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "CargoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstream": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequest": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstream": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequest": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RepositoryX509EcdsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "EulaCreate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "EulaCreateRequest": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdateRequestPatch": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "RepositoryTransferOwnerRequest": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTransferOwner": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryRetentionRules": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", + "type": "string", + "readOnly": true, + "default": "0.0.0", + "minLength": 1 + } + } + }, + "StorageRegion": { + "required": [ + "label", + "slug" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "description": "Name of the storage region", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "Slug for the storage region", + "type": "string", + "minLength": 1 + } + } + }, + "MetricsRequest": { + "type": "object", + "properties": { + "backend_type": { + "title": "Backend type", + "type": "string", + "enum": [ + "DEB", + "RPM", + "RUBY", + "PYTHON", + "MAVEN", + "BOWER", + "DOCKER", + "RAW", + "CHOCOLATEY", + "NPM", + "NUGET", + "VAGRANT", + "COMPOSER", + "ALPINE", + "HELM", + "CONAN", + "CARGO", + "LUAROCKS", + "CRAN", + "GO", + "DART", + "COCOAPODS", + "TERRAFORM", + "P2", + "CONDA", + "HEX", + "SWIFT", + "DEFAULT" + ] + }, + "end_time": { + "title": "End time", + "type": "string", + "format": "date" + }, + "interval": { + "title": "Interval", + "type": "string", + "enum": [ + "day", + "week", + "month" + ], + "default": "day" + }, + "repository_slugs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "repository_type": { + "title": "Repository type", + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE", + "OPEN_SOURCE" + ] + }, + "start_time": { + "title": "Start time", + "type": "string", + "format": "date" + }, + "user_type": { + "title": "User type", + "type": "string", + "enum": [ + "USER", + "SERVICE" + ] + } + } + }, + "AdditionalOnboardingActions": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "type": "string", + "readOnly": true + }, + "kind": { + "title": "Kind", + "type": "string", + "readOnly": true + }, + "label": { + "title": "Label", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "verb": { + "title": "Verb", + "type": "string", + "readOnly": true + } + } + }, + "AdditionalOnboardingActionsRequestPatch": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + } + } + }, + "UserDefaultOrg": { + "required": [ + "org_slug" + ], + "type": "object", + "properties": { + "org_name": { + "title": "Org name", + "description": "The descriptive name for the user's default organization.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "org_slug_perm": { + "title": "Org slug perm", + "description": "The slug_perm of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserDefaultOrgRequestPatch": { + "type": "object", + "properties": { + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "EmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddressRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "UpdatePrimaryEmail": { + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean", + "readOnly": true + } + } + }, + "EmailAddressResendConfirmation": { + "type": "object", + "properties": {} + }, + "UserOrganizationInvite": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "UserOrganizationInviteRequest": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "Location": { + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "readOnly": true + }, + "country": { + "title": "Country", + "type": "string", + "readOnly": true + } + } + }, + "UserLoginHistory": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "method": { + "title": "Method", + "type": "string", + "readOnly": true + }, + "method_context": { + "title": "Method context", + "type": "string", + "readOnly": true, + "nullable": true + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserLogoutOtherSessions": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserPasswordRequest": { + "required": [ + "confirm_new_password", + "current_password", + "new_password" + ], + "type": "object", + "properties": { + "confirm_new_password": { + "title": "Confirm new password", + "description": "Confirming the new password for the current user.", + "type": "string", + "minLength": 1 + }, + "current_password": { + "title": "Current password", + "description": "The current user's password.", + "type": "string", + "minLength": 1 + }, + "new_password": { + "title": "New password", + "description": "The new password for the current user.", + "type": "string", + "minLength": 1 + } + } + }, + "UserPassword": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Permission": { + "description": "A list of permissions to check if permissible.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "args": { + "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "context": { + "title": "Context", + "description": "Any additional context for why a permission check failed.", + "type": "string", + "readOnly": true, + "maxLength": 512, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The qualified name of the permission; e.g. package.upload_packages", + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "permissible": { + "title": "Permissible", + "description": "If permissible is true, then the user has the specified permission.", + "type": "boolean", + "readOnly": true, + "default": false + } + } + }, + "Permissions": { + "required": [ + "permissions" + ], + "type": "object", + "properties": { + "permissions": { + "description": "A list of permissions to check if permissible.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Permission" + } + } + } + }, + "User": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "onboarding_actions": { + "title": "Onboarding actions", + "type": "string", + "readOnly": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRequestPatch": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRefreshWebTokenRequest": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserRefreshWebToken": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserBrief": { + "type": "object", + "properties": { + "authenticated": { + "title": "Authenticated", + "description": "If true then you're logged in as a user.", + "type": "boolean", + "readOnly": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSession": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSlugRequestPatch": { + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "UserSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "SoftDeleteUser": { + "type": "object", + "properties": {} + }, + "UserAuthTokenRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "Email address to authenticate with", + "type": "string", + "format": "email", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password to authenticate with", + "type": "string", + "minLength": 1 + }, + "totp_token": { + "title": "Two-factor code", + "description": "Two-factor authentication code", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthToken": { + "type": "object", + "properties": { + "token": { + "title": "Token", + "description": "API token for the authenticated user", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "two_factor_required": { + "title": "Two factor required", + "description": "Flag indicating whether a 2FA code is required to complete authentication", + "type": "boolean", + "readOnly": true + }, + "two_factor_token": { + "title": "Two factor token", + "description": "Token to use when providing 2FA code", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserApiCidr": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "An auto-generated id that uniquely identifies the object.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1, + "nullable": true + } + } + }, + "UserApiCidrRequest": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserApiCidrRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthenticationToken": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "The time at which the API key was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm for token.", + "type": "string", + "readOnly": true + } + } + }, + "TOTPRequest": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + }, + "token": { + "title": "Token", + "description": "Token for TOTP Device confirmation", + "type": "string", + "minLength": 1 + } + } + }, + "TOTP": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "qr_code_encoded_image": { + "title": "Qr code encoded image", + "description": "Base64 Encoded QR Image", + "type": "string", + "readOnly": true + }, + "secret_key": { + "title": "Secret key", + "description": "TOTP Secret Key", + "type": "string", + "readOnly": true + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + } + } + }, + "TOTPSettings": { + "required": [ + "enforce_saml_2fa" + ], + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + }, + "is_2fa_backup_codes_enabled": { + "title": "Is 2fa backup codes enabled", + "description": "Is 2FA Backup Codes enabled for the authenticated user", + "type": "boolean", + "readOnly": true + }, + "is_2fa_enabled": { + "title": "Is 2fa enabled", + "description": "Is 2FA enabled for the authenticated user", + "type": "boolean", + "readOnly": true + } + } + }, + "TOTPSettingsRequestPatch": { + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + } + } + }, + "UserProfile": { + "required": [ + "first_name", + "last_name" + ], + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time" + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VulnerabilityScanResultsList": { + "required": [ + "identifier", + "package", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + } + } + }, + "VulnerabilityScanVersion": { + "required": [ + "major", + "minor", + "patch" + ], + "type": "object", + "properties": { + "major": { + "title": "Major", + "type": "integer" + }, + "minor": { + "title": "Minor", + "type": "integer" + }, + "operator": { + "title": "Operator", + "type": "string", + "default": "", + "maxLength": 32, + "minLength": 1 + }, + "patch": { + "title": "Patch", + "type": "integer" + }, + "raw_version": { + "title": "Raw version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + }, + "version": { + "title": "Version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + } + } + }, + "Vulnerability": { + "required": [ + "affected_version", + "description", + "fixed_version", + "package_name", + "references", + "severity_source", + "title", + "vulnerability_id" + ], + "type": "object", + "properties": { + "affected_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 1028, + "minLength": 1 + }, + "fixed_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "package_name": { + "title": "Package name", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "references": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "severity_source": { + "title": "Severity source", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "vulnerability_id": { + "title": "Vulnerability id", + "type": "string", + "maxLength": 13, + "minLength": 1 + } + } + }, + "VulnerabilityScan": { + "required": [ + "results", + "target", + "type" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Vulnerability" + } + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "minLength": 1 + } + } + }, + "VulnerabilityScanResults": { + "required": [ + "identifier", + "package", + "scan_id", + "scans" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScan" + } + } + } + }, + "WebhookTemplate": { + "required": [ + "event" + ], + "type": "object", + "properties": { + "event": { + "title": "Event", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "template": { + "title": "Template", + "type": "string", + "maxLength": 4096, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryWebhook": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "disable_reason_str": { + "title": "Disable reason str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "is_last_response_bad": { + "title": "Is last response bad", + "type": "boolean", + "readOnly": true + }, + "last_response_status": { + "title": "Last response status", + "type": "integer", + "readOnly": true + }, + "last_response_status_str": { + "title": "Last response status str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "num_sent": { + "title": "Num sent", + "type": "integer", + "readOnly": true + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_format_str": { + "title": "Request body format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_body_template_format_str": { + "title": "Request body template format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequest": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequestPatch": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + } + } + } +} diff --git a/public/api-schema-v3.json b/public/api-schema-v3.json new file mode 100644 index 00000000..8087d0c5 --- /dev/null +++ b/public/api-schema-v3.json @@ -0,0 +1,59811 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "dev", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io", + "contact": { + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io", + "email": "support@cloudsmith.io" + }, + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "v1" + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "paths": { + "/audit-log/{owner}/": { + "get": { + "operationId": "audit_log_namespace_list", + "summary": "Lists audit log entries for a specific namespace.", + "description": "Lists audit log entries for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NamespaceAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/audit-log/{owner}/{repo}/": { + "get": { + "operationId": "audit_log_repo_list", + "summary": "Lists audit log entries for a specific repository.", + "description": "Lists audit log entries for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "audit-log" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "get": { + "operationId": "badges_version_list", + "summary": "Get latest package version for a package or package group.", + "description": "Get latest package version for a package or package group.", + "parameters": [ + { + "name": "badge_token", + "in": "query", + "description": "Badge token to authenticate for private packages", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "cacheSeconds", + "in": "query", + "description": "Override the shields.io badge cacheSeconds value.", + "required": false, + "schema": { + "type": "string", + "default": "300" + } + }, + { + "name": "color", + "in": "query", + "description": "Override the shields.io badge color value.", + "required": false, + "schema": { + "type": "string", + "default": "12577E" + } + }, + { + "name": "label", + "in": "query", + "description": "Override the shields.io badge label value.", + "required": false, + "schema": { + "type": "string", + "default": "cloudsmith" + } + }, + { + "name": "labelColor", + "in": "query", + "description": "Override the shields.io badge labelColor value.", + "required": false, + "schema": { + "type": "string", + "default": "021F2F" + } + }, + { + "name": "logoColor", + "in": "query", + "description": "Override the shields.io badge logoColor value.", + "required": false, + "schema": { + "type": "string", + "default": "45B6EE" + } + }, + { + "name": "logoWidth", + "in": "query", + "description": "Override the shields.io badge logoWidth value.", + "required": false, + "schema": { + "type": "string", + "default": "10" + } + }, + { + "name": "render", + "in": "query", + "description": "If true, badge will be rendered", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "shields", + "in": "query", + "description": "If true, a shields response will be generated", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_latest", + "in": "query", + "description": "If true, for latest version badges a '(latest)' suffix is added", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "style", + "in": "query", + "description": "Override the shields.io badge style value.", + "required": false, + "schema": { + "type": "string", + "default": "flat-square" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionBadge" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "badges" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_identifiers", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/plans/": { + "parameters": [] + }, + "/billing/{owner}/account-status/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/invoices/{invoice_id}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invoice_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/payment-methods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/periods/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/portal/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/subscription/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/billing/{owner}/trial/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "backend_kind", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/broadcasts/{org}/repos/{identifier}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/distros/": { + "get": { + "operationId": "distros_list", + "summary": "Get a list of all supported distributions.", + "description": "Get a list of all supported distributions.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/distros/{slug}/": { + "get": { + "operationId": "distros_read", + "summary": "View for viewing/listing distributions.", + "description": "View for viewing/listing distributions.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "distros" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "entitlements_list", + "summary": "Get a list of all entitlements in a repository.", + "description": "Get a list of all entitlements in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names of entitlements.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "If true, only include active tokens", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of entitlement tokens", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "entitlements_create", + "summary": "Create a specific entitlement in a repository.", + "description": "Create a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/sync/": { + "post": { + "operationId": "entitlements_sync", + "summary": "Synchronise tokens from a source repository.", + "description": "Synchronise tokens from a source repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSyncRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The tokens have been synchronised from the source repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "entitlements_read", + "summary": "Get a specific entitlement in a repository.", + "description": "Get a specific entitlement in a repository.", + "parameters": [ + { + "name": "fuzzy", + "in": "query", + "description": "If true, entitlement identifiers including name will be fuzzy matched.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Retrieved the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Couldn't retrieve the specified token because the request contains an error.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "entitlements_partial_update", + "summary": "Update a specific entitlement in a repository.", + "description": "Update a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "The entitlement cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "entitlements_delete", + "summary": "Delete a specific entitlement in a repository.", + "description": "Delete a specific entitlement in a repository.", + "responses": { + "204": { + "description": "Soft-deleted the specified entitlement token successfully." + }, + "400": { + "description": "The entitlement cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/disable/": { + "post": { + "operationId": "entitlements_disable", + "summary": "Disable an entitlement token in a repository.", + "description": "Disable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been disabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/enable/": { + "post": { + "operationId": "entitlements_enable", + "summary": "Enable an entitlement token in a repository.", + "description": "Enable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been enabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/refresh/": { + "post": { + "operationId": "entitlements_refresh", + "summary": "Refresh an entitlement token in a repository.", + "description": "Refresh an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The entitlement token has been refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefresh" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/reset/": { + "post": { + "operationId": "entitlements_reset", + "summary": "Reset the statistics for an entitlement token in a repository.", + "description": "Reset the statistics for an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "The entitlement token statistics have been reset." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "entitlements" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", + "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", + "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/": { + "post": { + "operationId": "files_create", + "summary": "Request URL(s) to upload new package file upload(s) to.", + "description": "Request URL(s) to upload new package file upload(s) to.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "202": { + "description": "The upload request was accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/validate/": { + "post": { + "operationId": "files_validate", + "summary": "Validate parameters used for create.", + "description": "Validate parameters used for create.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/abort/": { + "post": { + "operationId": "files_abort", + "summary": "Abort a multipart file upload.", + "description": "Abort a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "The multipart upload was aborted successfully." + }, + "400": { + "description": "The multipart upload could not be aborted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/complete/": { + "post": { + "operationId": "files_complete", + "summary": "Complete a multipart file upload.", + "description": "Complete a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "201": { + "description": "The multipart upload was completed successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "The multipart upload could not be completed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/info/": { + "get": { + "operationId": "files_info", + "summary": "Get upload information to perform a multipart file upload.", + "description": "Get upload information to perform a multipart file upload.", + "parameters": [ + { + "name": "filename", + "in": "query", + "description": "The filename of the file being uploaded", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "part_number", + "in": "query", + "description": "The part number to be uploaded next", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Information for multipart uploaded retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFilePartsUpload" + } + } + } + }, + "400": { + "description": "The provided upload file was not a multipart upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "files" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/formats/": { + "get": { + "operationId": "formats_list", + "summary": "Get a list of all supported package formats.", + "description": "Get a list of all supported package formats.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Format" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/formats/{slug}/": { + "get": { + "operationId": "formats_read", + "summary": "Get a specific supported package format.", + "description": "Get a specific supported package format.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Format" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "formats" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/orgs/slugify/": { + "parameters": [] + }, + "/internal/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/internal/user/confirm/": { + "parameters": [] + }, + "/internal/user/escalate/": { + "parameters": [] + }, + "/internal/user/login/": { + "parameters": [] + }, + "/internal/user/password/request-reset/": { + "parameters": [] + }, + "/internal/user/password/reset/": { + "parameters": [] + }, + "/internal/user/signup/": { + "parameters": [] + }, + "/internal/user/two-factor/": { + "parameters": [] + }, + "/internal/user/verify-device/": { + "parameters": [] + }, + "/internal/user/zendesk/jwt/": { + "parameters": [] + }, + "/licenses/": { + "parameters": [] + }, + "/metrics/entitlements/{owner}/": { + "get": { + "operationId": "metrics_entitlements_account_list", + "summary": "View for listing entitlement token metrics, across an account.", + "description": "View for listing entitlement token metrics, across an account.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", + "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "metrics_entitlements_repo_list", + "summary": "View for listing entitlement token metrics, for a repository.", + "description": "View for listing entitlement token metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/packages/{owner}/{repo}/": { + "get": { + "operationId": "metrics_packages_list", + "summary": "View for listing package usage metrics, for a repository.", + "description": "View for listing package usage metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "packages", + "in": "query", + "description": "A comma seperated list of packages (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for packages.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "metrics" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/namespaces/": { + "get": { + "operationId": "namespaces_list", + "summary": "Get a list of all namespaces the user belongs to.", + "description": "Get a list of all namespaces the user belongs to.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [] + }, + "/namespaces/{slug}/": { + "get": { + "operationId": "namespaces_read", + "summary": "Get a specific namespace that the user belongs to.", + "description": "Get a specific namespace that the user belongs to.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "namespaces" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/openid/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/": { + "get": { + "operationId": "orgs_list", + "summary": "Get a list of all the organizations you are associated with.", + "description": "Get a list of all the organizations you are associated with.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [] + }, + "/orgs/{org}/": { + "get": { + "operationId": "orgs_read", + "summary": "Get the details for the specific organization.", + "description": "Get the details for the specific organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "delete": { + "operationId": "orgs_delete", + "summary": "Delete the specified organization.", + "description": "Delete the specified organization.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/enforce/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/2fa/relax/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/authentication-policy": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/broadcasts/config/company-logo/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/custom-domains/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/default-object-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/delete-org/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/": { + "get": { + "operationId": "orgs_deny-policy_list", + "summary": "Get a list of all package deny policies.", + "description": "Get a list of all package deny policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_deny-policy_create", + "summary": "Create a package deny policy.", + "description": "Create a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_deny-policy_read", + "summary": "Get a package deny policy.", + "description": "Get a package deny policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_deny-policy_update", + "summary": "Update a package deny policy.", + "description": "Update a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_deny-policy_partial_update", + "summary": "Partially update a package deny policy.", + "description": "Partially update a package deny policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_deny-policy_delete", + "summary": "Delete a package deny policy.", + "description": "Delete a package deny policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/feature-flags/check/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/global-privileges/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/": { + "get": { + "operationId": "orgs_invites_list", + "summary": "Get a list of all invites for an organization.", + "description": "Get a list of all invites for an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization invites", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization invites not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_invites_create", + "summary": "Create an organization invite for a specific user", + "description": "Create an organization invite for a specific user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Invite sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/": { + "patch": { + "operationId": "orgs_invites_partial_update", + "summary": "Update a specific organization invite.", + "description": "Update a specific organization invite.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Invite updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_invites_delete", + "summary": "Delete a specific organization invite", + "description": "Delete a specific organization invite", + "responses": { + "204": { + "description": "Deleted the organization invite successfully." + }, + "400": { + "description": "The organization invite cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/extend/": { + "post": { + "operationId": "orgs_invites_extend", + "summary": "Extend an organization invite.", + "description": "Extend an organization invite.", + "responses": { + "200": { + "description": "The invite has been extended", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/resend/": { + "post": { + "operationId": "orgs_invites_resend", + "summary": "Resend an organization invite.", + "description": "Resend an organization invite.", + "responses": { + "200": { + "description": "The invite has been resent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", + "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy-violation/": { + "get": { + "operationId": "orgs_license-policy-violation_list", + "summary": "List all current license policy violations for this Organization.", + "description": "List all current license policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" + } + } + }, + "title": "PackageLicensePolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/": { + "get": { + "operationId": "orgs_license-policy_list", + "summary": "Get a list of all package license policies.", + "description": "Get a list of all package license policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_create", + "summary": "Create a package license policy.", + "description": "Create a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_license-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_license-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_read", + "summary": "Get a package license policy.", + "description": "Get a package license policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_license-policy_update", + "summary": "Update a package license policy.", + "description": "Update a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_license-policy_partial_update", + "summary": "Partially update a package license policy.", + "description": "Partially update a package license policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_license-policy_delete", + "summary": "Delete a package license policy.", + "description": "Delete a package license policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/disable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/managed-users/enable/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/": { + "get": { + "operationId": "orgs_members_list", + "summary": "Get the details for all organization members.", + "description": "Get the details for all organization members.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "is_active", + "in": "query", + "description": "Filter for active/inactive users.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", + "required": false, + "schema": { + "type": "string", + "default": "user_name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization's members", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/": { + "get": { + "operationId": "orgs_members_read", + "summary": "Get the details for a specific organization member.", + "description": "Get the details for a specific organization member.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_members_partial_update", + "summary": "Views for working with organization members.", + "description": "Views for working with organization members.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_members_delete", + "summary": "Removes a member from the organization.", + "description": "Removes a member from the organization.", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/refresh/": { + "post": { + "operationId": "orgs_members_refresh", + "summary": "Refresh a member of the organization's API key.", + "description": "Refresh a member of the organization's API key.", + "responses": { + "204": { + "description": "Org member API key has been refreshed." + }, + "400": { + "description": "The org member's API key cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org member not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/remove/": { + "get": { + "operationId": "orgs_members_remove", + "summary": "Removes a member from the organization (deprecated, use DELETE instead).", + "description": "Removes a member from the organization (deprecated, use DELETE instead).", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-role/": { + "patch": { + "operationId": "orgs_members_update_role", + "summary": "Update a member's role in the organization.", + "description": "Update a member's role in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-visibility/": { + "patch": { + "operationId": "orgs_members_update_visibility", + "summary": "Update a member's visibility in the organization.", + "description": "Update a member's visibility in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/": { + "get": { + "operationId": "orgs_openid-connect_list", + "summary": "Retrieve the list of OpenID Connect provider settings for the org.", + "description": "Retrieve the list of OpenID Connect provider settings for the org.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_openid-connect_create", + "summary": "Create the OpenID Connect provider settings for the org.", + "description": "Create the OpenID Connect provider settings for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "201": { + "description": "Created the OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/{slug_perm}/": { + "get": { + "operationId": "orgs_openid-connect_read", + "summary": "Retrieve a specific OpenID Connect provider setting for the org.", + "description": "Retrieve a specific OpenID Connect provider setting for the org.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_openid-connect_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_openid-connect_partial_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_openid-connect_delete", + "summary": "Delete a specific OpenID Connect provider setting for the org.", + "description": "Delete a specific OpenID Connect provider setting for the org.", + "responses": { + "204": { + "description": "Deleted the specified OpenID Connect provider setting successfully." + }, + "400": { + "description": "The specified OpenID Connect provider setting cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/license/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/policy-violations/vulnerability/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/product-features/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-authentication": { + "get": { + "operationId": "orgs_saml-authentication_read", + "summary": "Retrieve the SAML Authentication settings for this Organization.", + "description": "Retrieve the SAML Authentication settings for this Organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "orgs_saml-authentication_partial_update", + "summary": "Update the SAML Authentication settings for this Organization.", + "description": "Update the SAML Authentication settings for this Organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/": { + "get": { + "operationId": "orgs_saml-group-sync_list", + "summary": "Get the details of all SAML Group Sync mapping within an organization.", + "description": "Get the details of all SAML Group Sync mapping within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of all SAML Group Sync mappings for this org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_saml-group-sync_create", + "summary": "Create a new SAML Group Sync mapping within an organization.", + "description": "Create a new SAML Group Sync mapping within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The SAML Group Sync mapping was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/disable/": { + "post": { + "operationId": "orgs_saml-group-sync_disable", + "summary": "Disable SAML Group Sync for this organization.", + "description": "Disable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been disabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/enable/": { + "post": { + "operationId": "orgs_saml-group-sync_enable", + "summary": "Enable SAML Group Sync for this organization.", + "description": "Enable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been enabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/status/": { + "get": { + "operationId": "orgs_saml-group-sync_status", + "summary": "Retrieve the SAML Group Sync status for this organization.", + "description": "Retrieve the SAML Group Sync status for this organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Group Sync status for this organization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/{slug_perm}/": { + "delete": { + "operationId": "orgs_saml-group-sync_delete", + "summary": "Delete a SAML Group Sync mapping from an organization.", + "description": "Delete a SAML Group Sync mapping from an organization.", + "responses": { + "204": { + "description": "Mapping removed successfully" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/scim/refresh-token": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/": { + "get": { + "operationId": "orgs_services_list", + "summary": "Get a list of all services within an organization.", + "description": "Get a list of all services within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of services within an Organization.Available options are: name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", + "required": false, + "schema": { + "type": "string", + "default": "created_at" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of services within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Service" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "orgs_services_create", + "summary": "Create a service within an organization.", + "description": "Create a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Created the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/": { + "get": { + "operationId": "orgs_services_read", + "summary": "Retrieve details of a single service within an organization.", + "description": "Retrieve details of a single service within an organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_services_partial_update", + "summary": "Update a service within an organization.", + "description": "Update a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "orgs_services_delete", + "summary": "Delete a specific service", + "description": "Delete a specific service", + "responses": { + "204": { + "description": "Deleted the service successfully." + }, + "400": { + "description": "The service cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/refresh/": { + "post": { + "operationId": "orgs_services_refresh", + "summary": "Refresh service API token.", + "description": "Refresh service API token.", + "responses": { + "200": { + "description": "Refreshed the service token successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "The service token cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/settings": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/slug": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/": { + "get": { + "operationId": "orgs_teams_list", + "summary": "Get the details of all teams within an organization.", + "description": "Get the details of all teams within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "for_user", + "in": "query", + "description": "Filter for teams that you are a member of.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of teams within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "orgs_teams_create", + "summary": "Create a team for this organization.", + "description": "Create a team for this organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Team created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/": { + "get": { + "operationId": "orgs_teams_read", + "summary": "Get the details of a specific team within an organization.", + "description": "Get the details of a specific team within an organization.", + "responses": { + "200": { + "description": "Retrieved the details of the requested team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "orgs_teams_partial_update", + "summary": "Update a specific team in a organization.", + "description": "Update a specific team in a organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "orgs_teams_delete", + "summary": "Delete a specific team in a organization.", + "description": "Delete a specific team in a organization.", + "responses": { + "204": { + "description": "Deleted the team successfully." + }, + "400": { + "description": "The team cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", + "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members": { + "get": { + "operationId": "orgs_teams_members_list", + "summary": "List all members for the team.", + "description": "List all members for the team.", + "responses": { + "200": { + "description": "Retrieved users for the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "post": { + "operationId": "orgs_teams_members_create", + "summary": "Add users to a team.", + "description": "Add users to a team.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "201": { + "description": "The users were added to the team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "orgs_teams_members_update", + "summary": "Replace all team members.", + "description": "Replace all team members.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "204": { + "description": "The team members were replaced.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members/{member}/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/memberships/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/usage-limits/": { + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy-violation/": { + "get": { + "operationId": "orgs_vulnerability-policy-violation_list", + "summary": "List all current vulnerability policy violations for this Organization.", + "description": "List all current vulnerability policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true + }, + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" + } + } + }, + "title": "PackageVulnerabilityPolicyViolationLogCursorPage" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/": { + "get": { + "operationId": "orgs_vulnerability-policy_list", + "summary": "Get a list of all package vulnerability policies.", + "description": "Get a list of all package vulnerability policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_create", + "summary": "Create a package vulnerability policy.", + "description": "Create a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "post": { + "operationId": "orgs_vulnerability-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_read", + "summary": "Get a package vulnerability policy.", + "description": "Get a package vulnerability policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "put": { + "operationId": "orgs_vulnerability-policy_update", + "summary": "Update a package vulnerability policy.", + "description": "Update a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-maybeBadOperationId": true + }, + "patch": { + "operationId": "orgs_vulnerability-policy_partial_update", + "summary": "Partially update a package vulnerability policy.", + "description": "Partially update a package vulnerability policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "delete": { + "operationId": "orgs_vulnerability-policy_delete", + "summary": "Delete a package vulnerability policy.", + "description": "Delete a package vulnerability policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "orgs" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/docker/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/maven/{owner}/{repo}/{identifier}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/": { + "get": { + "operationId": "packages_list", + "summary": "Get a list of all packages associated with repository.", + "description": "Get a list of all packages associated with repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "-date" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of packages", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/groups/": { + "get": { + "operationId": "packages_groups_list", + "summary": "Return a list of Package Groups in a repository.", + "description": "Return a list of Package Groups in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "group_by", + "in": "query", + "description": "A field to group packages by. Available options: name, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of package groups.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageGroup" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/alpine/": { + "post": { + "operationId": "packages_upload_alpine", + "summary": "Create a new Alpine package", + "description": "Create a new Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cargo/": { + "post": { + "operationId": "packages_upload_cargo", + "summary": "Create a new Cargo package", + "description": "Create a new Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cocoapods/": { + "post": { + "operationId": "packages_upload_cocoapods", + "summary": "Create a new CocoaPods package", + "description": "Create a new CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/composer/": { + "post": { + "operationId": "packages_upload_composer", + "summary": "Create a new Composer package", + "description": "Create a new Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conan/": { + "post": { + "operationId": "packages_upload_conan", + "summary": "Create a new Conan package", + "description": "Create a new Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conda/": { + "post": { + "operationId": "packages_upload_conda", + "summary": "Create a new Conda package", + "description": "Create a new Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cran/": { + "post": { + "operationId": "packages_upload_cran", + "summary": "Create a new CRAN package", + "description": "Create a new CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/dart/": { + "post": { + "operationId": "packages_upload_dart", + "summary": "Create a new Dart package", + "description": "Create a new Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/deb/": { + "post": { + "operationId": "packages_upload_deb", + "summary": "Create a new Debian package", + "description": "Create a new Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/docker/": { + "post": { + "operationId": "packages_upload_docker", + "summary": "Create a new Docker package", + "description": "Create a new Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/go/": { + "post": { + "operationId": "packages_upload_go", + "summary": "Create a new Go package", + "description": "Create a new Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/helm/": { + "post": { + "operationId": "packages_upload_helm", + "summary": "Create a new Helm package", + "description": "Create a new Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/hex/": { + "post": { + "operationId": "packages_upload_hex", + "summary": "Create a new Hex package", + "description": "Create a new Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/luarocks/": { + "post": { + "operationId": "packages_upload_luarocks", + "summary": "Create a new LuaRocks package", + "description": "Create a new LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/maven/": { + "post": { + "operationId": "packages_upload_maven", + "summary": "Create a new Maven package", + "description": "Create a new Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/npm/": { + "post": { + "operationId": "packages_upload_npm", + "summary": "Create a new npm package", + "description": "Create a new npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/nuget/": { + "post": { + "operationId": "packages_upload_nuget", + "summary": "Create a new NuGet package", + "description": "Create a new NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/p2/": { + "post": { + "operationId": "packages_upload_p2", + "summary": "Create a new P2 package", + "description": "Create a new P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/python/": { + "post": { + "operationId": "packages_upload_python", + "summary": "Create a new Python package", + "description": "Create a new Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/raw/": { + "post": { + "operationId": "packages_upload_raw", + "summary": "Create a new Raw package", + "description": "Create a new Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/rpm/": { + "post": { + "operationId": "packages_upload_rpm", + "summary": "Create a new RedHat package", + "description": "Create a new RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/ruby/": { + "post": { + "operationId": "packages_upload_ruby", + "summary": "Create a new Ruby package", + "description": "Create a new Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/swift/": { + "post": { + "operationId": "packages_upload_swift", + "summary": "Create a new Swift package", + "description": "Create a new Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/terraform/": { + "post": { + "operationId": "packages_upload_terraform", + "summary": "Create a new Terraform package", + "description": "Create a new Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/vagrant/": { + "post": { + "operationId": "packages_upload_vagrant", + "summary": "Create a new Vagrant package", + "description": "Create a new Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/alpine/": { + "post": { + "operationId": "packages_validate-upload_alpine", + "summary": "Validate parameters for create Alpine package", + "description": "Validate parameters for create Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cargo/": { + "post": { + "operationId": "packages_validate-upload_cargo", + "summary": "Validate parameters for create Cargo package", + "description": "Validate parameters for create Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cocoapods/": { + "post": { + "operationId": "packages_validate-upload_cocoapods", + "summary": "Validate parameters for create CocoaPods package", + "description": "Validate parameters for create CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/composer/": { + "post": { + "operationId": "packages_validate-upload_composer", + "summary": "Validate parameters for create Composer package", + "description": "Validate parameters for create Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conan/": { + "post": { + "operationId": "packages_validate-upload_conan", + "summary": "Validate parameters for create Conan package", + "description": "Validate parameters for create Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conda/": { + "post": { + "operationId": "packages_validate-upload_conda", + "summary": "Validate parameters for create Conda package", + "description": "Validate parameters for create Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cran/": { + "post": { + "operationId": "packages_validate-upload_cran", + "summary": "Validate parameters for create CRAN package", + "description": "Validate parameters for create CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/dart/": { + "post": { + "operationId": "packages_validate-upload_dart", + "summary": "Validate parameters for create Dart package", + "description": "Validate parameters for create Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/deb/": { + "post": { + "operationId": "packages_validate-upload_deb", + "summary": "Validate parameters for create Debian package", + "description": "Validate parameters for create Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/docker/": { + "post": { + "operationId": "packages_validate-upload_docker", + "summary": "Validate parameters for create Docker package", + "description": "Validate parameters for create Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/go/": { + "post": { + "operationId": "packages_validate-upload_go", + "summary": "Validate parameters for create Go package", + "description": "Validate parameters for create Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/helm/": { + "post": { + "operationId": "packages_validate-upload_helm", + "summary": "Validate parameters for create Helm package", + "description": "Validate parameters for create Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/hex/": { + "post": { + "operationId": "packages_validate-upload_hex", + "summary": "Validate parameters for create Hex package", + "description": "Validate parameters for create Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/luarocks/": { + "post": { + "operationId": "packages_validate-upload_luarocks", + "summary": "Validate parameters for create LuaRocks package", + "description": "Validate parameters for create LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/maven/": { + "post": { + "operationId": "packages_validate-upload_maven", + "summary": "Validate parameters for create Maven package", + "description": "Validate parameters for create Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/npm/": { + "post": { + "operationId": "packages_validate-upload_npm", + "summary": "Validate parameters for create npm package", + "description": "Validate parameters for create npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/nuget/": { + "post": { + "operationId": "packages_validate-upload_nuget", + "summary": "Validate parameters for create NuGet package", + "description": "Validate parameters for create NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/p2/": { + "post": { + "operationId": "packages_validate-upload_p2", + "summary": "Validate parameters for create P2 package", + "description": "Validate parameters for create P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/python/": { + "post": { + "operationId": "packages_validate-upload_python", + "summary": "Validate parameters for create Python package", + "description": "Validate parameters for create Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/raw/": { + "post": { + "operationId": "packages_validate-upload_raw", + "summary": "Validate parameters for create Raw package", + "description": "Validate parameters for create Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/rpm/": { + "post": { + "operationId": "packages_validate-upload_rpm", + "summary": "Validate parameters for create RedHat package", + "description": "Validate parameters for create RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/ruby/": { + "post": { + "operationId": "packages_validate-upload_ruby", + "summary": "Validate parameters for create Ruby package", + "description": "Validate parameters for create Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/swift/": { + "post": { + "operationId": "packages_validate-upload_swift", + "summary": "Validate parameters for create Swift package", + "description": "Validate parameters for create Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/terraform/": { + "post": { + "operationId": "packages_validate-upload_terraform", + "summary": "Validate parameters for create Terraform package", + "description": "Validate parameters for create Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/vagrant/": { + "post": { + "operationId": "packages_validate-upload_vagrant", + "summary": "Validate parameters for create Vagrant package", + "description": "Validate parameters for create Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "packages_read", + "summary": "Get a specific package in a repository.", + "description": "Get a specific package in a repository.", + "responses": { + "200": { + "description": "Retrieved the specified package successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "delete": { + "operationId": "packages_delete", + "summary": "Delete a specific package in a repository.", + "description": "Delete a specific package in a repository.", + "responses": { + "204": { + "description": "Deleted the specified package successfully." + }, + "400": { + "description": "The package cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/copy/": { + "post": { + "operationId": "packages_copy", + "summary": "Copy a package to another repository.", + "description": "Copy a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Copied specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopy" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/dependencies/": { + "get": { + "operationId": "packages_dependencies", + "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "responses": { + "200": { + "description": "Retrieved stored dependencies for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDependencies" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/move/": { + "post": { + "operationId": "packages_move", + "summary": "Move a package to another repository.", + "description": "Move a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMoveRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Moved specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMove" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/quarantine/": { + "post": { + "operationId": "packages_quarantine", + "summary": "Quarantine or release a package.", + "description": "Quarantine or release a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantineRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Changed the package's quarantine status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantine" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/resync/": { + "post": { + "operationId": "packages_resync", + "summary": "Schedule a package for resynchronisation.", + "description": "Schedule a package for resynchronisation.", + "responses": { + "200": { + "description": "Scheduled the package for resynchronisation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResync" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/scan/": { + "post": { + "operationId": "packages_scan", + "summary": "Schedule a package for scanning.", + "description": "Schedule a package for scanning.", + "responses": { + "200": { + "description": "Scheduled the package for scanning.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/status/": { + "get": { + "operationId": "packages_status", + "summary": "Get the synchronization status for a package.", + "description": "Get the synchronization status for a package.", + "responses": { + "200": { + "description": "Retrieved status for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_package(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/tag/": { + "post": { + "operationId": "packages_tag", + "summary": "Add/Replace/Remove tags for a package.", + "description": "Add/Replace/Remove tags for a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageTagRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Modified tags for the package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "packages" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", + "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/history/{owner}/": { + "get": { + "operationId": "quota_history_read", + "summary": "Quota history for a given namespace.", + "description": "Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/history/{owner}/": { + "get": { + "operationId": "quota_oss_history_read", + "summary": "Open-source Quota history for a given namespace.", + "description": "Open-source Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/{owner}/": { + "get": { + "operationId": "quota_oss_read", + "summary": "Open-source Quota usage for a given namespace.", + "description": "Open-source Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/{owner}/": { + "get": { + "operationId": "quota_read", + "summary": "Quota usage for a given namespace.", + "description": "Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "quota" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/rates/limits/": { + "get": { + "operationId": "rates_limits_list", + "summary": "Endpoint to check rate limits for current user.", + "description": "Endpoint to check rate limits for current user.", + "responses": { + "200": { + "description": "Rate check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResourcesRateCheck" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "rates" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/repos/": { + "get": { + "operationId": "repos_user_list", + "summary": "Get a list of all repositories associated with current user.", + "description": "Get a list of all repositories associated with current user.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/repos/{owner}/": { + "get": { + "operationId": "repos_namespace_list", + "summary": "Get a list of all repositories within a namespace.", + "description": "Get a list of all repositories within a namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_create", + "summary": "Create a new repository in a given namespace.", + "description": "Create a new repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreateRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The repository was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/": { + "get": { + "operationId": "repos_read", + "summary": "Get a specific repository.", + "description": "Get a specific repository.", + "responses": { + "200": { + "description": "Retrieved the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_partial_update", + "summary": "Update details about a repository in a given namespace.", + "description": "Update details about a repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "The repository was updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "repos_delete", + "summary": "Delete a repository in a given namespace.", + "description": "Delete a repository in a given namespace.", + "responses": { + "200": { + "description": "The repository has been scheduled for deletion." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/": { + "get": { + "operationId": "repos_ecdsa_list", + "summary": "Retrieve the active ECDSA key for the Repository.", + "description": "Retrieve the active ECDSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" + }, + "post": { + "operationId": "repos_ecdsa_create", + "summary": "Set the active ECDSA key for the Repository.", + "description": "Set the active ECDSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided ECDSA key is the same as the current ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "201": { + "description": "The provided ECDSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "The provided ECDSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom ECDSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/regenerate/": { + "post": { + "operationId": "repos_ecdsa_regenerate", + "summary": "Regenerate ECDSA Key for the Repository.", + "description": "Regenerate ECDSA Key for the Repository.", + "responses": { + "200": { + "description": "An ECDSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip": { + "get": { + "operationId": "repos_geoip_read", + "summary": "List all repository geoip rules.", + "description": "List all repository geoip rules.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_geoip_update", + "summary": "Replace repository geoip rules.", + "description": "Replace repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_geoip_partial_update", + "summary": "Partially update repository geoip rules.", + "description": "Partially update repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/disable/": { + "post": { + "operationId": "repos_geoip_disable", + "summary": "Disable GeoIP for this repository.", + "description": "Disable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been disabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/enable/": { + "post": { + "operationId": "repos_geoip_enable", + "summary": "Enable GeoIP for this repository.", + "description": "Enable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been enabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/status/": { + "get": { + "operationId": "api_repos_geoip_status", + "summary": "Retrieve the GeoIP status for this repository.", + "description": "Retrieve the GeoIP status for this repository.", + "responses": { + "200": { + "description": "Retrieved the GeoIP status for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/test/": { + "post": { + "operationId": "repos_geoip_test", + "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", + "description": "Test a list of IP addresses against the repository's current GeoIP rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" + } + } + } + }, + "responses": { + "201": { + "description": "Successfuly tested addresses against the repository's GeoIP rules", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/": { + "get": { + "operationId": "repos_gpg_list", + "summary": "Retrieve the active GPG key for the Repository.", + "description": "Retrieve the active GPG key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_gpg_create", + "summary": "Set the active GPG key for the Repository.", + "description": "Set the active GPG key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided GPG key is the same as the current GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "201": { + "description": "The provided GPG key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "The provided GPG key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom GPG keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/regenerate/": { + "post": { + "operationId": "repos_gpg_regenerate", + "summary": "Regenerate GPG Key for the Repository.", + "description": "Regenerate GPG Key for the Repository.", + "responses": { + "200": { + "description": "A GPG key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/privileges": { + "get": { + "operationId": "repos_privileges_list", + "summary": "List all explicity created privileges for the repository.", + "description": "List all explicity created privileges for the repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved privileges for the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInput" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false, + "x-shouldBeViewset": true + }, + "put": { + "operationId": "repos_privileges_update", + "summary": "Replace all existing repository privileges with those specified.", + "description": "Replace all existing repository privileges with those specified.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges replaced" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "patch": { + "operationId": "repos_privileges_partial_update", + "summary": "Modify privileges for the repository.", + "description": "Modify privileges for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges updated" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true, + "x-shouldBeViewset": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/": { + "get": { + "operationId": "repos_rsa_list", + "summary": "Retrieve the active RSA key for the Repository.", + "description": "Retrieve the active RSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_rsa_create", + "summary": "Set the active RSA key for the Repository.", + "description": "Set the active RSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided RSA key is the same as the current RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "201": { + "description": "The provided RSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "The provided RSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom RSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/regenerate/": { + "post": { + "operationId": "repos_rsa_regenerate", + "summary": "Regenerate RSA Key for the Repository.", + "description": "Regenerate RSA Key for the Repository.", + "responses": { + "200": { + "description": "An RSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/": { + "get": { + "operationId": "repos_upstream_cargo_list", + "summary": "List Cargo upstream configs for this repository.", + "description": "List Cargo upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cargo_create", + "summary": "Create a Cargo upstream config for this repository.", + "description": "Create a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cargo_read", + "summary": "Retrieve a Cargo upstream config for this repository.", + "description": "Retrieve a Cargo upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cargo_update", + "summary": "Update a Cargo upstream config for this repository.", + "description": "Update a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cargo_partial_update", + "summary": "Partially update a Cargo upstream config for this repository.", + "description": "Partially update a Cargo upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cargo_delete", + "summary": "Delete a Cargo upstream config for this repository.", + "description": "Delete a Cargo upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/": { + "get": { + "operationId": "repos_upstream_composer_list", + "summary": "List Composer upstream configs for this repository.", + "description": "List Composer upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_composer_create", + "summary": "Create a Composer upstream config for this repository.", + "description": "Create a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_composer_read", + "summary": "Retrieve a Composer upstream config for this repository.", + "description": "Retrieve a Composer upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_composer_update", + "summary": "Update a Composer upstream config for this repository.", + "description": "Update a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_composer_partial_update", + "summary": "Partially update a Composer upstream config for this repository.", + "description": "Partially update a Composer upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_composer_delete", + "summary": "Delete a Composer upstream config for this repository.", + "description": "Delete a Composer upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/": { + "get": { + "operationId": "repos_upstream_cran_list", + "summary": "List CRAN upstream configs for this repository.", + "description": "List CRAN upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_cran_create", + "summary": "Create a CRAN upstream config for this repository.", + "description": "Create a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cran_read", + "summary": "Retrieve a CRAN upstream config for this repository.", + "description": "Retrieve a CRAN upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_cran_update", + "summary": "Update a CRAN upstream config for this repository.", + "description": "Update a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_cran_partial_update", + "summary": "Partially update a CRAN upstream config for this repository.", + "description": "Partially update a CRAN upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_cran_delete", + "summary": "Delete a CRAN upstream config for this repository.", + "description": "Delete a CRAN upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/": { + "get": { + "operationId": "repos_upstream_dart_list", + "summary": "List Dart upstream configs for this repository.", + "description": "List Dart upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_dart_create", + "summary": "Create a Dart upstream config for this repository.", + "description": "Create a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_dart_read", + "summary": "Retrieve a Dart upstream config for this repository.", + "description": "Retrieve a Dart upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_dart_update", + "summary": "Update a Dart upstream config for this repository.", + "description": "Update a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_dart_partial_update", + "summary": "Partially update a Dart upstream config for this repository.", + "description": "Partially update a Dart upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_dart_delete", + "summary": "Delete a Dart upstream config for this repository.", + "description": "Delete a Dart upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/": { + "get": { + "operationId": "repos_upstream_deb_list", + "summary": "List Debian upstream configs for this repository.", + "description": "List Debian upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_deb_create", + "summary": "Create a Debian upstream config for this repository.", + "description": "Create a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_deb_read", + "summary": "Retrieve a Debian upstream config for this repository.", + "description": "Retrieve a Debian upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_deb_update", + "summary": "Update a Debian upstream config for this repository.", + "description": "Update a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_deb_partial_update", + "summary": "Partially update a Debian upstream config for this repository.", + "description": "Partially update a Debian upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_deb_delete", + "summary": "Delete a Debian upstream config for this repository.", + "description": "Delete a Debian upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/": { + "get": { + "operationId": "repos_upstream_docker_list", + "summary": "List Docker upstream configs for this repository.", + "description": "List Docker upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_docker_create", + "summary": "Create a Docker upstream config for this repository.", + "description": "Create a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_docker_read", + "summary": "Retrieve a Docker upstream config for this repository.", + "description": "Retrieve a Docker upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_docker_update", + "summary": "Update a Docker upstream config for this repository.", + "description": "Update a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_docker_partial_update", + "summary": "Partially update a Docker upstream config for this repository.", + "description": "Partially update a Docker upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_docker_delete", + "summary": "Delete a Docker upstream config for this repository.", + "description": "Delete a Docker upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/": { + "get": { + "operationId": "repos_upstream_go_list", + "summary": "List Go upstream configs for this repository.", + "description": "List Go upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_go_create", + "summary": "Create a Go upstream config for this repository.", + "description": "Create a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_go_read", + "summary": "Retrieve a Go upstream config for this repository.", + "description": "Retrieve a Go upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_go_update", + "summary": "Update a Go upstream config for this repository.", + "description": "Update a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_go_partial_update", + "summary": "Partially update a Go upstream config for this repository.", + "description": "Partially update a Go upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_go_delete", + "summary": "Delete a Go upstream config for this repository.", + "description": "Delete a Go upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/": { + "get": { + "operationId": "repos_upstream_helm_list", + "summary": "List Helm upstream configs for this repository.", + "description": "List Helm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_helm_create", + "summary": "Create a Helm upstream config for this repository.", + "description": "Create a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_helm_read", + "summary": "Retrieve a Helm upstream config for this repository.", + "description": "Retrieve a Helm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_helm_update", + "summary": "Update a Helm upstream config for this repository.", + "description": "Update a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_helm_partial_update", + "summary": "Partially update a Helm upstream config for this repository.", + "description": "Partially update a Helm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_helm_delete", + "summary": "Delete a Helm upstream config for this repository.", + "description": "Delete a Helm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/": { + "get": { + "operationId": "repos_upstream_hex_list", + "summary": "List Hex upstream configs for this repository.", + "description": "List Hex upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_hex_create", + "summary": "Create a Hex upstream config for this repository.", + "description": "Create a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_hex_read", + "summary": "Retrieve a Hex upstream config for this repository.", + "description": "Retrieve a Hex upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_hex_update", + "summary": "Update a Hex upstream config for this repository.", + "description": "Update a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_hex_partial_update", + "summary": "Partially update a Hex upstream config for this repository.", + "description": "Partially update a Hex upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_hex_delete", + "summary": "Delete a Hex upstream config for this repository.", + "description": "Delete a Hex upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/": { + "get": { + "operationId": "repos_upstream_maven_list", + "summary": "List Maven upstream configs for this repository.", + "description": "List Maven upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_maven_create", + "summary": "Create a Maven upstream config for this repository.", + "description": "Create a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_maven_read", + "summary": "Retrieve a Maven upstream config for this repository.", + "description": "Retrieve a Maven upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_maven_update", + "summary": "Update a Maven upstream config for this repository.", + "description": "Update a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_maven_partial_update", + "summary": "Partially update a Maven upstream config for this repository.", + "description": "Partially update a Maven upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_maven_delete", + "summary": "Delete a Maven upstream config for this repository.", + "description": "Delete a Maven upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/": { + "get": { + "operationId": "repos_upstream_npm_list", + "summary": "List npm upstream configs for this repository.", + "description": "List npm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_npm_create", + "summary": "Create a npm upstream config for this repository.", + "description": "Create a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_npm_read", + "summary": "Retrieve a npm upstream config for this repository.", + "description": "Retrieve a npm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_npm_update", + "summary": "Update a npm upstream config for this repository.", + "description": "Update a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_npm_partial_update", + "summary": "Partially update a npm upstream config for this repository.", + "description": "Partially update a npm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_npm_delete", + "summary": "Delete a npm upstream config for this repository.", + "description": "Delete a npm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/": { + "get": { + "operationId": "repos_upstream_nuget_list", + "summary": "List NuGet upstream configs for this repository.", + "description": "List NuGet upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_nuget_create", + "summary": "Create a NuGet upstream config for this repository.", + "description": "Create a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_nuget_read", + "summary": "Retrieve a NuGet upstream config for this repository.", + "description": "Retrieve a NuGet upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_nuget_update", + "summary": "Update a NuGet upstream config for this repository.", + "description": "Update a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_nuget_partial_update", + "summary": "Partially update a NuGet upstream config for this repository.", + "description": "Partially update a NuGet upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_nuget_delete", + "summary": "Delete a NuGet upstream config for this repository.", + "description": "Delete a NuGet upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/": { + "get": { + "operationId": "repos_upstream_python_list", + "summary": "List Python upstream configs for this repository.", + "description": "List Python upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_python_create", + "summary": "Create a Python upstream config for this repository.", + "description": "Create a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_python_read", + "summary": "Retrieve a Python upstream config for this repository.", + "description": "Retrieve a Python upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_python_update", + "summary": "Update a Python upstream config for this repository.", + "description": "Update a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_python_partial_update", + "summary": "Partially update a Python upstream config for this repository.", + "description": "Partially update a Python upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_python_delete", + "summary": "Delete a Python upstream config for this repository.", + "description": "Delete a Python upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/": { + "get": { + "operationId": "repos_upstream_rpm_list", + "summary": "List RedHat upstream configs for this repository.", + "description": "List RedHat upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_rpm_create", + "summary": "Create a RedHat upstream config for this repository.", + "description": "Create a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_rpm_read", + "summary": "Retrieve a RedHat upstream config for this repository.", + "description": "Retrieve a RedHat upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_rpm_update", + "summary": "Update a RedHat upstream config for this repository.", + "description": "Update a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_rpm_partial_update", + "summary": "Partially update a RedHat upstream config for this repository.", + "description": "Partially update a RedHat upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_rpm_delete", + "summary": "Delete a RedHat upstream config for this repository.", + "description": "Delete a RedHat upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/": { + "get": { + "operationId": "repos_upstream_ruby_list", + "summary": "List Ruby upstream configs for this repository.", + "description": "List Ruby upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_ruby_create", + "summary": "Create a Ruby upstream config for this repository.", + "description": "Create a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_ruby_read", + "summary": "Retrieve a Ruby upstream config for this repository.", + "description": "Retrieve a Ruby upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_ruby_update", + "summary": "Update a Ruby upstream config for this repository.", + "description": "Update a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_ruby_partial_update", + "summary": "Partially update a Ruby upstream config for this repository.", + "description": "Partially update a Ruby upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_ruby_delete", + "summary": "Delete a Ruby upstream config for this repository.", + "description": "Delete a Ruby upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/": { + "get": { + "operationId": "repos_upstream_swift_list", + "summary": "List Swift upstream configs for this repository.", + "description": "List Swift upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "post": { + "operationId": "repos_upstream_swift_create", + "summary": "Create a Swift upstream config for this repository.", + "description": "Create a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_swift_read", + "summary": "Retrieve a Swift upstream config for this repository.", + "description": "Retrieve a Swift upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "put": { + "operationId": "repos_upstream_swift_update", + "summary": "Update a Swift upstream config for this repository.", + "description": "Update a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "patch": { + "operationId": "repos_upstream_swift_partial_update", + "summary": "Partially update a Swift upstream config for this repository.", + "description": "Partially update a Swift upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "delete": { + "operationId": "repos_upstream_swift_delete", + "summary": "Delete a Swift upstream config for this repository.", + "description": "Delete a Swift upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-ecdsa/": { + "get": { + "operationId": "repos_x509_ecdsa_list", + "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 ECDSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-rsa/": { + "get": { + "operationId": "repos_x509_rsa_list", + "summary": "Retrieve the active X.509 RSA certificate for the Repository.", + "description": "Retrieve the active X.509 RSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 RSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509RsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo(repo: 'Repository')", + "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/create-entitlement/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/eula/{eula}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "eula", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/invalidate-cache/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/retention/": { + "get": { + "operationId": "repo_retention_read", + "summary": "Retrieve the retention rules for the repository.", + "description": "Retrieve the retention rules for the repository.", + "responses": { + "200": { + "description": "Retrieved the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "repo_retention_partial_update", + "summary": "Update the retention rules for the repository.", + "description": "Update the retention rules for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-owner/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-region/": { + "post": { + "operationId": "repos_transfer_region", + "summary": "Transfer a repository to a different region.", + "description": "Transfer a repository to a different region.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTransferRegionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Repository region transfer initiated." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom storage regions not available on plan; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner, namespace or repository not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "repos" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Groups": { + "get": { + "operationId": "scim_v2_Groups_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Groups_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Groups/{id}": { + "get": { + "operationId": "scim_v2_Groups_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Groups_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Groups_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Groups_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ResourceTypes": { + "get": { + "operationId": "scim_v2_ResourceTypes_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ResourceTypes_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ResourceTypes/{id}": { + "get": { + "operationId": "scim_v2_ResourceTypes_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ResourceTypes_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ResourceTypes_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ResourceTypes_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/ServiceProviderConfig": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_list", + "description": "", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_ServiceProviderConfig_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/ServiceProviderConfig/{id}": { + "get": { + "operationId": "scim_v2_ServiceProviderConfig_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_ServiceProviderConfig_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_ServiceProviderConfig_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_ServiceProviderConfig_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/scim/v2/Users": { + "get": { + "operationId": "scim_v2_Users_list", + "description": "", + "parameters": [ + { + "name": "count", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "startIndex", + "in": "query", + "description": "The initial index from which to return the results.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "post": { + "operationId": "scim_v2_Users_create", + "description": "", + "responses": { + "201": { + "description": "Created" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/scim/v2/Users/{identifier}": { + "get": { + "operationId": "scim_v2_Users_read", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "put": { + "operationId": "scim_v2_Users_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "patch": { + "operationId": "scim_v2_Users_partial_update", + "description": "", + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "delete": { + "operationId": "scim_v2_Users_delete", + "description": "", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/scim+json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "scim" + ], + "security": [], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" + } + } + ] + }, + "/status/check/basic/": { + "get": { + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", + "responses": { + "200": { + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "status" + ], + "security": [], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", + "responses": { + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": false, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [] + }, + "/storage-regions/{slug}/": { + "get": { + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "storage-regions" + ], + "x-hidden": false, + "x-detail": true, + "x-anonymous": true, + "x-permissionRequired": false, + "x-objectPermissionRequired": false, + "x-maybeBadOperationId": true + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/usage/{owner}/{requested_metric}/": { + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "requested_metric", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/additional-onboarding-actions/": { + "parameters": [] + }, + "/user/default-org/": { + "parameters": [] + }, + "/user/emails/": { + "parameters": [] + }, + "/user/emails/{email}/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/emails/{email}/resend-confirmation/": { + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/": { + "parameters": [] + }, + "/user/invites/{invite_id}/accept/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/invites/{invite_id}/reject/": { + "parameters": [ + { + "name": "invite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/logins/": { + "parameters": [] + }, + "/user/logout/": { + "parameters": [] + }, + "/user/logout/other-sessions/": { + "parameters": [] + }, + "/user/password/": { + "parameters": [] + }, + "/user/permissions/check/": { + "parameters": [] + }, + "/user/profile/": { + "parameters": [] + }, + "/user/refresh-token/": { + "parameters": [] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", + "responses": { + "200": { + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "AllowAny" + ] + }, + "parameters": [] + }, + "/user/sessions/": { + "parameters": [] + }, + "/user/slug/": { + "parameters": [] + }, + "/user/soft-delete/": { + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Retrieved/created user API token/key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "403": { + "description": "Locked out.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Failed to authenticate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "security": [ + { + "basic": [] + } + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": false, + "x-objectPermissionRequired": false + }, + "parameters": [] + }, + "/user/token/restrictions/": { + "parameters": [] + }, + "/user/token/restrictions/{token}/": { + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/tokens/": { + "get": { + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", + "responses": { + "201": { + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "User has already created an API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": false, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [] + }, + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", + "responses": { + "200": { + "description": "Successfully refreshed the API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "The specified API key cannot be found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "user" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated", + "IsPrivilegeEscalated" + ], + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/totp/backup/disable/": { + "parameters": [] + }, + "/user/totp/backup/enable/": { + "parameters": [] + }, + "/user/totp/confirm/": { + "parameters": [] + }, + "/user/totp/disable/": { + "parameters": [] + }, + "/user/totp/enable/": { + "parameters": [] + }, + "/user/totp/settings/": { + "parameters": [] + }, + "/user/two-factor/": { + "parameters": [] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", + "responses": { + "200": { + "description": "Retrieved details for the specified user (or current user, if none was specified)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfile" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "users" + ], + "x-hidden": false, + "x-detail": true, + "x-nonStandardPermission": true, + "x-nonStandardPermissionClasses": [ + "IsAuthenticated" + ] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/": { + "get": { + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/": { + "get": { + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "vulnerabilities" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", + "x-objectPermissionRequired": false + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/": { + "get": { + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of webhooks", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": false, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", + "responses": { + "204": { + "description": "Deleted the specified webhook successfully." + }, + "400": { + "description": "The webhook cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": [ + "webhooks" + ], + "x-hidden": false, + "x-detail": true, + "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", + "x-objectPermissionRequired": false, + "x-privilegeEscalationRequired": true + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io" + } + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } + } + } + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } + } + } + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } + } + } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" + } + } + } + }, + "SwiftUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequest" + } + } + } + }, + "NpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequest" + } + } + } + }, + "SwiftPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUploadRequest" + } + } + } + }, + "HexUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequest" + } + } + } + }, + "RubyPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUploadRequest" + } + } + } + }, + "CargoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUploadRequest" + } + } + } + }, + "RubyUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequest" + } + } + } + }, + "RpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequest" + } + } + } + }, + "MavenUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequest" + } + } + } + }, + "OrganizationTeamMembers": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "VagrantPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUploadRequest" + } + } + } + }, + "GoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequest" + } + } + } + }, + "ConanPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUploadRequest" + } + } + } + }, + "RawPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUploadRequest" + } + } + } + }, + "HelmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequest" + } + } + } + }, + "NugetUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequest" + } + } + } + }, + "TerraformPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUploadRequest" + } + } + } + }, + "PackageFileUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUploadRequest" + } + } + } + }, + "PackageDenyPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequest" + } + } + } + }, + "ProviderSettingsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequest" + } + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" + } + } + } + }, + "AlpinePackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUploadRequest" + } + } + } + }, + "CocoapodsPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" + } + } + } + }, + "ComposerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUploadRequest" + } + } + } + }, + "CondaPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUploadRequest" + } + } + } + }, + "CranPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUploadRequest" + } + } + } + }, + "DartPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUploadRequest" + } + } + } + }, + "DebPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUploadRequest" + } + } + } + }, + "DockerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUploadRequest" + } + } + } + }, + "HelmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUploadRequest" + } + } + } + }, + "HexPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUploadRequest" + } + } + } + }, + "LuarocksPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUploadRequest" + } + } + } + }, + "MavenPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUploadRequest" + } + } + } + }, + "NpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUploadRequest" + } + } + } + }, + "NugetPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUploadRequest" + } + } + } + }, + "P2PackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUploadRequest" + } + } + } + }, + "PythonPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUploadRequest" + } + } + } + }, + "RpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUploadRequest" + } + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" + } + } + } + }, + "ComposerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequest" + } + } + } + }, + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } + } + } + }, + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } + } + } + }, + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } + } + } + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" + }, + "basic": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "ErrorDetail": { + "required": [ + "detail" + ], + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "An extended message for the response.", + "type": "string", + "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "GeoIpLocation": { + "required": [ + "city", + "continent", + "country", + "postal_code" + ], + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "minLength": 1, + "nullable": true + }, + "continent": { + "title": "Continent", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "readOnly": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "NamespaceAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "target_kind": { + "title": "Target kind", + "type": "string", + "minLength": 1 + }, + "target_slug_perm": { + "title": "Target slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "RepositoryAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "PackageVersionBadge": { + "type": "object", + "properties": {} + }, + "PlanPrice": { + "description": "List of prices for the plan", + "required": [ + "amount", + "billing_interval", + "currency" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Plan Amount", + "type": "string", + "format": "decimal" + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing", + "type": "string", + "minLength": 1 + } + } + }, + "Plan": { + "required": [ + "identifier", + "is_enterprise", + "prices" + ], + "type": "object", + "properties": { + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_enterprise": { + "title": "Is enterprise", + "description": "Is this an enterprise plan", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "prices": { + "description": "List of prices for the plan", + "type": "array", + "items": { + "$ref": "#/components/schemas/PlanPrice" + } + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + } + } + }, + "Payment": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "When was the payment created and attempted", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "failure_code": { + "title": "Failure code", + "description": "Failure Code for the payment", + "type": "string", + "minLength": 1 + }, + "failure_message": { + "title": "Failure message", + "description": "Failure message for the payment", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Payment Status", + "type": "string", + "minLength": 1 + } + } + }, + "AccountStatus": { + "required": [ + "payments" + ], + "type": "object", + "properties": { + "billing_period_end_date": { + "title": "Billing period end date", + "description": "When does the current billing period end", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "payments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Payment" + } + }, + "status": { + "title": "Status", + "description": "Current Status of account", + "type": "string", + "minLength": 1 + } + } + }, + "InvoiceItem": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the line", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Invoice": { + "type": "object", + "properties": { + "amount_due": { + "title": "Amount due", + "description": "Amount due to be paid", + "type": "integer", + "readOnly": true + }, + "amount_paid": { + "title": "Amount paid", + "description": "Amount paid", + "type": "integer", + "readOnly": true + }, + "billing_reason": { + "title": "Billing reason", + "description": "Reason for the invoice to be created", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "billing_reason_text": { + "title": "Billing reason text", + "type": "string", + "readOnly": true + }, + "created": { + "title": "Created", + "description": "When was the invoice created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "currency": { + "title": "Currency", + "description": "The currency of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoice_id": { + "title": "Invoice id", + "description": "Invoice ID", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "invoiceitems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/InvoiceItem" + }, + "readOnly": true + }, + "number": { + "title": "Number", + "description": "Invoice number", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Status of the invoice", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "InvoicePDF": { + "type": "object", + "properties": { + "invoice_pdf": { + "title": "Invoice pdf", + "description": "Link to the invoice in PDF", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "CardPaymentMethod": { + "type": "object", + "properties": { + "brand": { + "title": "Brand", + "description": "Card Brand (e.g. Visa)", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "exp_month": { + "title": "Exp month", + "description": "Expiration Month", + "type": "integer", + "readOnly": true + }, + "exp_year": { + "title": "Exp year", + "description": "Expiration Year", + "type": "integer", + "readOnly": true + }, + "last4": { + "title": "Last4", + "description": "Last 4 digits of card", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "PaymentMethod": { + "required": [ + "card" + ], + "type": "object", + "properties": { + "card": { + "$ref": "#/components/schemas/CardPaymentMethod" + }, + "created": { + "title": "Created", + "description": "When was the payment method created", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "is_default": { + "title": "Is default", + "description": "Is this the default payment method", + "type": "boolean", + "readOnly": true + }, + "type": { + "title": "Type", + "description": "Payment Method Type", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "BillingPeriod": { + "type": "object", + "properties": { + "is_current": { + "title": "Is current", + "description": "Is this the current Billing Period", + "type": "boolean", + "readOnly": true + }, + "period_end_at": { + "title": "Period End At", + "description": "The datetime usage is recorded to.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "period_start_at": { + "title": "Period Start At", + "description": "The datetime usage is recorded from.", + "type": "string", + "format": "date-time" + }, + "trial": { + "title": "Trial", + "description": "Usage period occurred during a trial.", + "type": "boolean" + } + } + }, + "PortalUrl": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "url": { + "title": "Url", + "description": "Billing Portal URL to Redirect User to", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "OnDemandUsageProduct": { + "description": "Products in the On-Demand Usage Subscription", + "required": [ + "currency", + "identifier", + "price_per_unit", + "unit" + ], + "type": "object", + "properties": { + "currency": { + "title": "Currency", + "description": "Currency used for invoicing product", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Identifier for this product", + "type": "string", + "minLength": 1 + }, + "price_per_unit": { + "title": "Price per unit", + "description": "Price per unit", + "type": "string", + "format": "decimal" + }, + "unit": { + "title": "Unit", + "description": "Unit for this product", + "type": "string", + "minLength": 1 + } + } + }, + "OnDemandUsageSubcription": { + "description": "Details of On-Demand Usage Subscription", + "required": [ + "billing_interval", + "products" + ], + "type": "object", + "properties": { + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "products": { + "description": "Products in the On-Demand Usage Subscription", + "type": "array", + "items": { + "$ref": "#/components/schemas/OnDemandUsageProduct" + } + } + } + }, + "Subscription": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Subscription Amount", + "type": "string", + "format": "decimal" + }, + "bandwidth_allowance": { + "title": "Bandwidth allowance", + "description": "Package Delivery Allowance provided by plan", + "type": "integer" + }, + "bandwidth_unit": { + "title": "Bandwidth unit", + "description": "Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "billing_interval": { + "title": "Billing interval", + "description": "Interval for billing (month or year)", + "type": "string", + "minLength": 1 + }, + "can_charge": { + "title": "Can charge", + "description": "Does the customer have payment method configured", + "type": "boolean" + }, + "cancel_at_period_end": { + "title": "Cancel at period end", + "description": "Subscription will be cancelled when billing period ends", + "type": "boolean" + }, + "currency": { + "title": "Currency", + "description": "Currency used for invoicing subscription", + "type": "string", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_delinquent": { + "title": "Is delinquent", + "description": "Does this subscription have outstanding invoices", + "type": "boolean" + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "Plan Name", + "type": "string", + "minLength": 1 + }, + "next_payment_date": { + "title": "Next payment date", + "description": "Next Invoice Payment Date", + "type": "string", + "format": "date-time" + }, + "on_demand_usage": { + "$ref": "#/components/schemas/OnDemandUsageSubcription" + }, + "oss_bandwidth_allowance": { + "title": "Oss bandwidth allowance", + "description": "OSS Package Delivery Allowance provided by plan", + "type": "integer" + }, + "oss_bandwidth_unit": { + "title": "Oss bandwidth unit", + "description": "OSS Package Delivery Unit", + "type": "string", + "minLength": 1 + }, + "oss_storage_allowance": { + "title": "Oss storage allowance", + "description": "OSS Artifact Data Allowance provided by plan", + "type": "integer" + }, + "oss_storage_unit": { + "title": "Oss storage unit", + "description": "OSS Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "status": { + "title": "Status", + "description": "Current Status of subscription", + "type": "string", + "minLength": 1 + }, + "storage_allowance": { + "title": "Storage allowance", + "description": "Artifact Data Allowance provided by plan", + "type": "integer" + }, + "storage_unit": { + "title": "Storage unit", + "description": "Artifact Data Unit", + "type": "string", + "minLength": 1 + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + }, + "trial_end_date": { + "title": "Trial end date", + "description": "Trial End Date", + "type": "string", + "format": "date-time" + } + } + }, + "TrialDays": { + "required": [ + "identifier", + "is_trialing", + "remaining_trial_days", + "trial_days" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "Plan Identifier", + "type": "string", + "minLength": 1 + }, + "is_trialing": { + "title": "Is trialing", + "description": "Is this subscription currently under trial", + "type": "boolean" + }, + "remaining_trial_days": { + "title": "Remaining trial days", + "description": "Remaining Unused Trial Days", + "type": "integer" + }, + "trial_days": { + "title": "Trial days", + "description": "Days left in Trial", + "type": "integer" + } + } + }, + "OrganizationCustomDomainNestedRepo": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "backend_kind_str": { + "title": "Backend kind str", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "domain_type_str": { + "title": "Domain type str", + "type": "string", + "readOnly": true + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PublicBroadcastsOrganization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + } + } + }, + "PublicBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "PublicBroadcastsRepository": { + "required": [ + "gpg_keys", + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string", + "maxLength": 1000 + }, + "gpg_keys": { + "type": "array", + "items": { + "type": "integer" + }, + "uniqueItems": true + }, + "is_open_source": { + "title": "Is open source", + "type": "string", + "readOnly": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "open_source_license_name": { + "title": "Open source license name", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_license_url": { + "title": "Open source license url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Total Packages", + "description": "The total number of packages in this repository.", + "type": "integer" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 50 + } + } + }, + "DistributionVersion": { + "description": "A list of the versions for this distribution", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The textual name for this version.", + "type": "string", + "maxLength": 64 + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this version", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "DistributionFull": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "versions": { + "description": "A list of the versions for this distribution", + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "readOnly": true + } + } + }, + "Eula": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "number": { + "title": "Number", + "description": "A sequential identifier that increments by one for each new commit in a repository.", + "type": "integer", + "nullable": true + } + }, + "nullable": true + }, + "RepositoryToken": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryTokenRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSyncRequest": { + "required": [ + "source" + ], + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "The source repository slug (in the same owner namespace).", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSync": { + "type": "object", + "properties": { + "tokens": { + "description": "The entitlements that have been synchronised.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + }, + "readOnly": true + } + } + }, + "RepositoryTokenRequestPatch": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenAction": { + "type": "object", + "properties": {} + }, + "RepositoryTokenRefreshRequest": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenRefresh": { + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageFileUploadRequest": { + "required": [ + "filename" + ], + "type": "object", + "properties": { + "filename": { + "title": "Filename", + "description": "Filename for the package file upload.", + "type": "string", + "minLength": 1 + }, + "md5_checksum": { + "title": "Md5 checksum", + "description": "MD5 checksum for a POST-based package file upload.", + "type": "string", + "maxLength": 32, + "minLength": 32 + }, + "method": { + "title": "Method", + "description": "The method to use for package file upload.", + "type": "string", + "enum": [ + "put_parts", + "put", + "post", + "presigned", + "unsigned_put" + ], + "default": "post" + }, + "sha256_checksum": { + "title": "Sha256 checksum", + "description": "SHA256 checksum for a PUT-based package file upload.", + "type": "string", + "maxLength": 64, + "minLength": 64 + } + } + }, + "PackageFileUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use when creating packages", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_fields": { + "title": "Upload fields", + "description": "The dictionary of fields that must be sent with POST uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_headers": { + "title": "Upload headers", + "description": "The dictionary of headers that must be sent with uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step POST or PUT upload", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step POST or PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "PackageFilePartsUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use uploading parts.", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step PUT upload.", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "Distribution": { + "description": "The distributions supported by this package format", + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + } + }, + "nullable": true + }, + "FormatSupportUpstream": { + "description": "The upstream support for the package format", + "required": [ + "auth_modes", + "caching", + "indexing", + "proxying" + ], + "type": "object", + "properties": { + "auth_modes": { + "description": "The authentication modes supported by the upstream format", + "type": "array", + "items": { + "type": "string", + "enum": [ + "Username and Password", + "Token", + "Certificate and Key" + ], + "default": "Username and Password" + } + }, + "caching": { + "title": "Caching", + "description": "If true the upstream format supports caching", + "type": "boolean" + }, + "indexing": { + "title": "Indexing", + "description": "If true the upstream format supports indexing", + "type": "boolean" + }, + "indexing_behavior": { + "title": "Indexing behavior", + "description": "The behavior of the upstream when indexing", + "type": "string", + "enum": [ + "Unsupported", + "Ahead-of-time (static) indexing", + "Just-in-time (dynamic) indexing" + ], + "default": "Unsupported" + }, + "proxying": { + "title": "Proxying", + "description": "If true the upstream format supports proxying", + "type": "boolean" + }, + "signature_verification": { + "title": "Signature verification", + "description": "The signature verification supported by the upstream format", + "type": "string", + "enum": [ + "Unsupported", + "Repository Metadata", + "Packages", + "Repository Metadata and Packages" + ], + "default": "Unsupported" + } + } + }, + "FormatSupport": { + "description": "A set of what the package format supports", + "required": [ + "dependencies", + "distributions", + "file_lists", + "metadata", + "upstreams", + "versioning" + ], + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "If true the package format supports dependencies", + "type": "boolean" + }, + "distributions": { + "title": "Distributions", + "description": "If true the package format supports distributions", + "type": "boolean" + }, + "file_lists": { + "title": "File lists", + "description": "If true the package format supports file lists", + "type": "boolean" + }, + "metadata": { + "title": "Metadata", + "description": "If true the package format supports metadata", + "type": "boolean" + }, + "upstreams": { + "$ref": "#/components/schemas/FormatSupportUpstream" + }, + "versioning": { + "title": "Versioning", + "description": "If true the package format supports versioning", + "type": "boolean" + } + } + }, + "Format": { + "required": [ + "description", + "extensions", + "name", + "premium", + "slug", + "supports" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the package format", + "type": "string", + "minLength": 1 + }, + "distributions": { + "description": "The distributions supported by this package format", + "type": "array", + "items": { + "$ref": "#/components/schemas/Distribution" + }, + "nullable": true + }, + "extensions": { + "description": "A non-exhaustive list of extensions supported", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "name": { + "title": "Name", + "description": "Name for the package format", + "type": "string", + "minLength": 1 + }, + "premium": { + "title": "Premium", + "description": "If true the package format is a premium-only feature", + "type": "boolean" + }, + "premium_plan_id": { + "title": "Premium plan id", + "description": "The minimum plan id required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "premium_plan_name": { + "title": "Premium plan name", + "description": "The minimum plan name required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug": { + "title": "Slug", + "description": "Slug for the package format", + "type": "string", + "minLength": 1 + }, + "supports": { + "$ref": "#/components/schemas/FormatSupport" + } + } + }, + "PrivilegeEscalation": { + "required": [ + "type" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password for verification.", + "type": "string", + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "description": "TOTP code for verification.", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "description": "The type of verification used.", + "type": "string", + "enum": [ + "totp", + "password" + ] + } + } + }, + "UserRequestPasswordResetRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserRequestPasswordReset": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + } + } + }, + "UserResetPasswordRequest": { + "required": [ + "key", + "password" + ], + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Password reset token.", + "type": "string", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Enter a new password.", + "type": "string", + "minLength": 1 + } + } + }, + "UserResetPassword": { + "type": "object", + "properties": {} + }, + "DeviceVerificationRequest": { + "required": [ + "device_id" + ], + "type": "object", + "properties": { + "device_id": { + "title": "Device id", + "description": "The device ID to verify.", + "type": "string", + "minLength": 1 + } + } + }, + "DeviceVerification": { + "type": "object", + "properties": {} + }, + "License": { + "type": "object", + "properties": { + "full_name": { + "title": "Full name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the license.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "spdx_identifier": { + "title": "Spdx identifier", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "CommonBandwidthMetricsValue": { + "description": "Average bandwidth usage in the specified period, e.g. a day", + "required": [ + "display", + "value" + ], + "type": "object", + "properties": { + "display": { + "title": "Display", + "description": "Bandwidth usage value", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "units": { + "title": "Units", + "description": "Unit of measurement e.g. bytes", + "type": "string", + "default": "bytes", + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "Human readable version of display value", + "type": "integer" + } + } + }, + "CommonBandwidthMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + } + } + }, + "CommonDownloadsMetricsValue": { + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "title": "Value", + "type": "integer" + } + } + }, + "CommonDownloadsMetrics": { + "required": [ + "average", + "highest", + "lowest", + "total" + ], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + } + } + }, + "CommonMetrics": { + "required": [ + "bandwidth", + "downloads" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "Number of packages with at least 1 download", + "type": "integer", + "default": 0 + }, + "bandwidth": { + "$ref": "#/components/schemas/CommonBandwidthMetrics" + }, + "downloads": { + "$ref": "#/components/schemas/CommonDownloadsMetrics" + }, + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", + "type": "integer", + "default": 0 + }, + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 + } + } + }, + "EntitlementUsageMetrics": { + "required": [ + "tokens" + ], + "type": "object", + "properties": { + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "PackageUsageMetrics": { + "required": [ + "packages" + ], + "type": "object", + "properties": { + "packages": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "type_name": { + "title": "Type name", + "type": "string", + "readOnly": true + } + } + }, + "OidcRequest": { + "required": [ + "oidc_token", + "service_slug" + ], + "type": "object", + "properties": { + "oidc_token": { + "title": "Oidc token", + "description": "Serialized OIDC token.", + "type": "string", + "minLength": 1 + }, + "service_slug": { + "title": "Service slug", + "description": "Slug for the service account.", + "type": "string", + "minLength": 1 + } + } + }, + "Oidc": { + "type": "object", + "properties": {} + }, + "Organization": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "country": { + "title": "Country", + "type": "string", + "readOnly": true, + "maxLength": 32, + "minLength": 1, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationUserTokenPolicy": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + } + } + }, + "OrganizationUserTokenPolicyRequest": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationUserTokenPolicyRequestPatch": { + "type": "object", + "properties": { + "enforce_refresh": { + "title": "Enforce automatic API key refresh", + "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", + "type": "boolean" + }, + "max_age_hours": { + "title": "Maximum permitted API key age", + "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "type": "integer", + "minimum": 24, + "nullable": true + }, + "refresh_immediately": { + "title": "Refresh immediately", + "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfig": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo_url": { + "title": "Company logo url", + "type": "string", + "readOnly": true + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequest": { + "required": [ + "color_accent", + "color_background", + "color_text" + ], + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationBroadcastsConfigRequestPatch": { + "type": "object", + "properties": { + "color_accent": { + "title": "Color accent", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_background": { + "title": "Color background", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "color_text": { + "title": "Color text", + "description": "A hexadecimal color code", + "type": "string", + "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", + "maxLength": 7, + "minLength": 1 + }, + "company_logo": { + "title": "Company logo", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "show_broadcast_description": { + "title": "Show broadcast description", + "type": "boolean" + }, + "show_broadcast_num_downloads": { + "title": "Show broadcast num downloads", + "type": "boolean" + }, + "show_broadcast_num_packages": { + "title": "Show broadcast num packages", + "type": "boolean" + }, + "show_checksums": { + "title": "Show checksums", + "type": "boolean" + }, + "show_date_modified": { + "title": "Show date modified", + "type": "boolean" + }, + "show_gpg_fingerprint": { + "title": "Show gpg fingerprint", + "type": "boolean" + }, + "show_gpg_signature": { + "title": "Show gpg signature", + "type": "boolean" + }, + "show_latest_version": { + "title": "Show latest version", + "type": "boolean" + }, + "show_license": { + "title": "Show license", + "type": "boolean" + }, + "show_package_num_downloads": { + "title": "Show package num downloads", + "type": "boolean" + }, + "show_readme": { + "title": "Show readme", + "type": "boolean" + }, + "show_size": { + "title": "Show size", + "type": "boolean" + }, + "show_status": { + "title": "Show status", + "type": "boolean" + }, + "show_tags": { + "title": "Show tags", + "type": "boolean" + }, + "show_type": { + "title": "Show type", + "type": "boolean" + }, + "show_uploaded_at": { + "title": "Show uploaded at", + "type": "boolean" + }, + "show_uploaded_by": { + "title": "Show uploaded by", + "type": "boolean" + }, + "show_vulnerability_check": { + "title": "Show vulnerability check", + "type": "boolean" + }, + "show_workspace_num_downloads": { + "title": "Show workspace num downloads", + "type": "boolean" + }, + "show_workspace_num_packages": { + "title": "Show workspace num packages", + "type": "boolean" + }, + "use_workspace_avatar": { + "title": "Use workspace avatar", + "description": "Use workspace avatar as the default logo", + "type": "boolean" + } + } + }, + "OrganizationCustomDomains": { + "required": [ + "repository" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "description": "The domain for a specific package format.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 99 + ], + "readOnly": true, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "dns_alias_value": { + "title": "Dns alias value", + "description": "The CNAME value to use to publish this domain publicly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_name": { + "title": "Dns cert name", + "description": "The CNAME name to create to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dns_cert_value": { + "title": "Dns cert value", + "description": "The CNAME value to use to allow us to generate a TLS cert.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "domain_type": { + "title": "Domain type", + "description": "The type for the custom domain.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ], + "readOnly": true, + "default": 0 + }, + "enabled": { + "title": "Enabled", + "description": "If checked, the domain is enabled.", + "type": "boolean", + "readOnly": true + }, + "host": { + "title": "Host", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "type": "integer", + "readOnly": true + }, + "primary": { + "title": "Primary", + "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", + "type": "boolean", + "readOnly": true + }, + "redirect_root": { + "title": "Redirect root", + "description": "If checked, the domain root redirects to the repository.", + "type": "boolean", + "readOnly": true + }, + "redirect_root_url": { + "title": "Redirect root url", + "description": "Where root requests should be redirected to if redirect_root is enabled.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" + }, + "repository_only": { + "title": "Repository only", + "description": "If checked, the domain applies to a specific repository only.", + "type": "boolean", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "validated": { + "title": "Validated", + "description": "If validated, the domain is ready for requests.", + "type": "boolean", + "readOnly": true + }, + "validated_at": { + "title": "Validated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationDefaultObjectPrivileges": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "OrganizationDefaultObjectPrivilegesRequest": { + "type": "object", + "properties": { + "default_object_privileges": { + "title": "Default object privileges", + "description": "The default object privileges for organization members.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + } + } + }, + "PackageDenyPolicy": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Block downloads" + ], + "readOnly": true, + "default": "Block downloads" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "In Progress" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PackageDenyPolicyRequest": { + "required": [ + "package_query_string" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "PackageDenyPolicyRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationFeatureFlags": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The human/computer readable name.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationGlobalPrivileges": { + "required": [ + "label", + "privilege", + "selected" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "type": "string", + "minLength": 1 + }, + "privilege": { + "title": "Privilege", + "type": "string", + "minLength": 1 + }, + "selected": { + "title": "Selected", + "type": "boolean" + } + } + }, + "OrganizationTeamInvite": { + "required": [ + "team" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user in the team.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationInvite": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationInviteRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationInviteUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteUpdate": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + } + } + }, + "OrganizationInviteExtend": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm of the invite to be extended.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageVulnerability": { + "required": [ + "identifier" + ], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "NestedLicensePolicy": { + "required": [ + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageLicensePolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "OrganizationPackageLicensePolicy": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageLicensePolicyRequest": { + "required": [ + "name", + "spdx_identifiers" + ], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackageLicensePolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageLicensePolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageLicensePolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationMembership": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "is_active": { + "title": "Is active", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipRequestPatch": { + "type": "object", + "properties": {} + }, + "OrganizationMembershipRoleUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + } + } + }, + "OrganizationMembershipRoleUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdateRequestPatch": { + "type": "object", + "properties": { + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": [ + "Unknown", + "Password", + "Social", + "SAML" + ], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Public" + } + } + }, + "ProviderSettings": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + }, + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "ProviderSettingsRequest": { + "required": [ + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" + ], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "ProviderSettingsRequestPatch": { + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackagePolicyViolationsLicense": { + "required": [ + "package", + "policy", + "reasons" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "NestedVulnerabilityPolicy": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NestedVulnerabilityScanResults": { + "required": [ + "identifier", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackagePolicyViolationsVulnerability": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationProductFeatures": { + "type": "object", + "properties": { + "plan": { + "title": "Plan", + "description": "Plan Name", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationSAMLAuth": { + "required": [ + "saml_auth_enabled", + "saml_auth_enforced" + ], + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationSAMLAuthRequestPatch": { + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGroupSync": { + "required": [ + "idp_key", + "idp_value", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncRequest": { + "required": [ + "idp_key", + "idp_value", + "organization", + "team" + ], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "organization": { + "title": "Organization", + "type": "string" + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncStatus": { + "type": "object", + "properties": { + "saml_group_sync_status": { + "title": "Saml group sync status", + "type": "boolean", + "readOnly": true + } + } + }, + "OrganizationSCIM": { + "required": [ + "scim_enabled" + ], + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + }, + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationSCIMRequestPatch": { + "type": "object", + "properties": { + "scim_enabled": { + "title": "Scim enabled", + "type": "boolean" + } + } + }, + "OrganizationSCIMToken": { + "type": "object", + "properties": { + "scim_token": { + "title": "Scim token", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "ServiceTeams": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The team role associated with the service", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + }, + "slug": { + "title": "Slug", + "description": "The teams associated with the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "Service": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "key": { + "title": "Key", + "description": "The API key of the service", + "type": "string", + "readOnly": true + }, + "key_expires_at": { + "title": "Key expires at", + "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "slug": { + "title": "Slug", + "description": "The slug of the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "OrganizationGeneralSettings": { + "required": [ + "email", + "name" + ], + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGeneralSettingsRequestPatch": { + "type": "object", + "properties": { + "billing_email": { + "title": "Billing email", + "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "country": { + "title": "Country", + "description": "The country your organization is based in.", + "type": "string", + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "nullable": true + }, + "default_team_visibility": { + "title": "Default team visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + }, + "email": { + "title": "Email", + "description": "The primary contact email for your organization.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "A descriptive name for your organization.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "support_email": { + "title": "Support email", + "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "email", + "maxLength": 254, + "nullable": true + }, + "support_url": { + "title": "Support url", + "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "maxLength": 80, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationRenameSlugRequest": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationRenameSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "OrganizationTeam": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": [ + "Visible", + "Hidden" + ], + "default": "Visible" + } + } + }, + "OrganizationTeamMembership": { + "description": "The team members", + "required": [ + "role", + "user" + ], + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamMembers": { + "required": [ + "members" + ], + "type": "object", + "properties": { + "members": { + "description": "The team members", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamMembership" + } + } + } + }, + "OrganizationEditTeamMemberRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationEditTeamMember": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ], + "default": "Manager" + } + } + }, + "OrganizationTeamMember": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": [ + "Manager", + "Member" + ] + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "OrganizationUsage": { + "type": "object", + "properties": { + "bandwidth_overage_limit": { + "title": "Package Delivery On-Demand Limit (GBs)", + "description": "The on-demand limit for package delivery usage (in GBs).", + "type": "integer", + "nullable": true + }, + "storage_overage_limit": { + "title": "Artifact Data On-Demand Limit (GBs)", + "description": "The on-demand limit for artifact data usage (in GBs).", + "type": "integer", + "nullable": true + } + } + }, + "OrganizationUsageUpdateRequestPatch": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "OrganizationUsageUpdate": { + "type": "object", + "properties": { + "allow_open_source_overage": { + "title": "Allow open source overage", + "type": "boolean" + }, + "bandwidth_overage_limit": { + "title": "Bandwidth overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + }, + "storage_overage_limit": { + "title": "Storage overage limit", + "type": "integer", + "minimum": 0, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyViolationLog": { + "required": [ + "package", + "policy", + "reasons", + "vulnerability_scan_results" + ], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationPackageVulnerabilityPolicy": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": [ + "Pending", + "In Progress", + "Complete", + "Cancelled", + "Errored" + ], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageVulnerabilityPolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "DockerLayerReference": { + "type": "object", + "properties": { + "command": { + "title": "Command", + "description": "The V1 command for managing the layer.", + "type": "string", + "readOnly": true + }, + "digest": { + "title": "Digest", + "description": "The digest of the layer.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_empty": { + "title": "Is empty", + "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", + "type": "boolean", + "readOnly": true + }, + "layer_type": { + "title": "Layer type", + "description": "The type of layer this is relative to image.", + "type": "string", + "enum": [ + "Base Layer", + "Intermediate Layer", + "Final Layer" + ], + "readOnly": true, + "default": "Base Layer" + }, + "mount_type": { + "title": "Mount type", + "description": "The Mount Type for the layer.", + "type": "string", + "enum": [ + "Local", + "Remote" + ], + "readOnly": true, + "default": "Local" + }, + "processed": { + "title": "Processed", + "description": "Has the layer been processed.", + "type": "boolean", + "readOnly": true + }, + "size": { + "title": "Size", + "description": "The size of the layer (in bytes).", + "type": "integer", + "readOnly": true + } + } + }, + "DockerCosign": { + "description": "The list of docker cosign attestations", + "required": [ + "created_at" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "When this cosign artifact was created", + "type": "string", + "format": "date-time" + }, + "digest": { + "title": "Digest", + "description": "The cosign artifact digest", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "description": "The package identifier of this signature.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + } + } + }, + "DockerManifest": { + "description": "The list of manifests associated with this Docker package", + "type": "object", + "properties": { + "digest": { + "title": "Digest", + "description": "The digest for the manifest.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "is_primary": { + "title": "Is primary", + "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", + "type": "boolean", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest Type", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "manifest_type_display": { + "title": "Manifest type display", + "type": "string", + "readOnly": true + } + } + }, + "DockerPackageAdditionalDetails": { + "type": "object", + "properties": { + "attestations": { + "$ref": "#/components/schemas/DockerCosign" + }, + "config_digest": { + "title": "Config digest", + "description": "The digest of the Docker image config", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "layers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerLayerReference" + }, + "readOnly": true + }, + "manifest_string": { + "title": "Manifest string", + "description": "The JSON-encoded manifest string (if any) for the docker package.", + "type": "string", + "readOnly": true + }, + "manifest_type": { + "title": "Manifest type", + "description": "The type of manifest for the image or manifest list.", + "type": "string", + "enum": [ + "Unknown", + "V1 Distribution", + "V1 Distribution (Signed)", + "V2 Distribution", + "V2 Distribution List", + "V1 OCI", + "V1 OCI Index" + ], + "readOnly": true, + "default": "Unknown" + }, + "manifests": { + "$ref": "#/components/schemas/DockerManifest" + }, + "package_type": { + "title": "Package type", + "description": "The type of the docker package i.e. a manifest or manifest list.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "sboms": { + "$ref": "#/components/schemas/DockerCosign" + }, + "signatures": { + "$ref": "#/components/schemas/DockerCosign" + } + } + }, + "MavenPackageAdditionalDetails": { + "type": "object", + "properties": { + "extended_metadata": { + "title": "Extended metadata", + "type": "string", + "readOnly": true + } + } + }, + "Architecture": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "PackageFile": { + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true, + "nullable": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_primary": { + "title": "Is primary", + "type": "boolean", + "readOnly": true + }, + "is_synchronised": { + "title": "Is synchronised", + "type": "boolean", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the file.", + "type": "integer", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "tag": { + "title": "Tag", + "description": "Freeform descriptor that describes what the file is.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "Tags": { + "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", + "type": "object", + "properties": {} + }, + "Package": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageGroup": { + "required": [ + "count", + "last_push", + "num_downloads", + "size" + ], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "type": "integer" + }, + "count": { + "title": "Count", + "type": "integer", + "nullable": true + }, + "last_push": { + "title": "Last push", + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "integer", + "nullable": true + }, + "size": { + "title": "Size", + "type": "integer", + "nullable": true + } + } + }, + "AlpinePackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "AlpinePackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CargoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CargoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CocoapodsPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CocoapodsPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ComposerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ComposerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ConanPackageUploadRequest": { + "required": [ + "info_file", + "manifest_file", + "metadata_file", + "package_file" + ], + "type": "object", + "properties": { + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "info_file": { + "title": "Info file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "manifest_file": { + "title": "Manifest file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "metadata_file": { + "title": "Metadata file", + "description": "The conan file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ConanPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CondaPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CondaPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CranPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "architecture": { + "title": "Architecture", + "description": "Binary package uploads for macOS should specify the architecture they were built for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CranPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DartPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DartPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DebPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "changes_file": { + "title": "Changes file", + "description": "The changes archive containing the changes made to the source and debian packaging files", + "type": "string", + "minLength": 1, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", + "type": "string", + "pattern": "^[-_.\\w]+$", + "default": "main", + "maxLength": 64, + "minLength": 1 + }, + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sources_file": { + "title": "Sources file", + "description": "The sources archive containing the source code for the binary", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DebPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DockerPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DockerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "GoPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "GoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HelmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provenance_file": { + "title": "Provenance file", + "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HelmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HexPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HexPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "LuarocksPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "LuarocksPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "MavenPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "extra_files": { + "description": "Extra files to include in the package. This can be a single file or multiple files.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "ivy_file": { + "title": "Ivy file", + "description": "The ivy file is an XML file describing the dependencies of the project.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "javadoc_file": { + "title": "Javadoc file", + "description": "Adds bundled Java documentation to the Maven package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "pom_file": { + "title": "Pom file", + "description": "The POM file is an XML file containing the Maven coordinates.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "sources_file": { + "title": "Sources file", + "description": "Adds bundled Java source code to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "tests_file": { + "title": "Tests file", + "description": "Adds bundled Java tests to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "MavenPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NpmPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "npm_dist_tag": { + "title": "Npm dist tag", + "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", + "type": "string", + "default": "latest", + "maxLength": 255, + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NugetPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "symbols_file": { + "title": "Symbols file", + "description": "Uploads a symbols file as a separate package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NugetPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "P2PackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "P2PackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PythonPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "PythonPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RawPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "content_type": { + "title": "Content/Media Type", + "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "RawPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RpmPackageUploadRequest": { + "required": [ + "distribution", + "package_file" + ], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RubyPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RubyPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "SwiftPackageUploadRequest": { + "required": [ + "name", + "package_file", + "scope", + "version" + ], + "type": "object", + "properties": { + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "SwiftPackageUpload": { + "required": [ + "name", + "scope", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "TerraformPackageUploadRequest": { + "required": [ + "package_file" + ], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "TerraformPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VagrantPackageUploadRequest": { + "required": [ + "name", + "package_file", + "provider", + "version" + ], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "VagrantPackageUpload": { + "required": [ + "name", + "provider", + "version" + ], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageCopyRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + } + } + }, + "PackageCopy": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be copied to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageDependency": { + "type": "object", + "properties": { + "dep_type": { + "title": "Dep type", + "type": "string", + "enum": [ + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Enhances", + "Replaces", + "Breaks", + "Built-Using", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Conflicts", + "Provides", + "Obsoletes", + "Requires", + "Runtime", + "Development", + "Compile", + "Provided", + "Test", + "System", + "Import", + "Excluded", + "Build-Requires", + "Python-Requires" + ], + "readOnly": true, + "default": "Depends" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "maxLength": 255, + "minLength": 1 + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": [ + "=", + "!=", + "<", + "<<", + "<=", + ">", + ">>", + ">=", + "~=", + "~>", + "matches" + ], + "readOnly": true, + "default": "=", + "nullable": true + }, + "version": { + "title": "Version", + "type": "string", + "readOnly": true, + "maxLength": 128, + "minLength": 1, + "nullable": true + } + } + }, + "PackageDependencies": { + "required": [ + "dependencies" + ], + "type": "object", + "properties": { + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDependency" + } + } + } + }, + "PackageMoveRequest": { + "required": [ + "destination" + ], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + } + } + }, + "PackageMove": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be moved to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageQuarantineRequest": { + "type": "object", + "properties": { + "release": { + "title": "Release", + "description": "If true, the package is released from quarantine.", + "type": "boolean" + }, + "restore": { + "title": "Restore", + "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", + "type": "boolean" + } + } + }, + "PackageQuarantine": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageResync": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageStatus": { + "type": "object", + "properties": { + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + } + } + }, + "PackageTagRequest": { + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": [ + "Add", + "Clear", + "Replace", + "Remove" + ], + "default": "Add", + "nullable": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "tags": { + "description": "A list of tags to apply the action to. Not required for clears.", + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "default": [], + "nullable": true + } + } + }, + "PackageTag": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 9 + ], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12 + ], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "Usage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageUsage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "HistoryFieldset": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/Usage" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsage" + }, + "uploaded": { + "$ref": "#/components/schemas/Usage" + } + } + }, + "UsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageUsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "HistoryFieldsetRaw": { + "required": [ + "downloaded", + "storage_used", + "uploaded" + ], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/UsageRaw" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsageRaw" + }, + "uploaded": { + "$ref": "#/components/schemas/UsageRaw" + } + } + }, + "History": { + "required": [ + "display", + "end", + "plan", + "raw", + "start" + ], + "type": "object", + "properties": { + "days": { + "title": "Days", + "type": "integer", + "default": 0 + }, + "display": { + "$ref": "#/components/schemas/HistoryFieldset" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time" + }, + "plan": { + "title": "Plan", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "raw": { + "$ref": "#/components/schemas/HistoryFieldsetRaw" + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + } + } + }, + "QuotaHistory": { + "required": [ + "history" + ], + "type": "object", + "properties": { + "history": { + "type": "array", + "items": { + "$ref": "#/components/schemas/History" + } + } + } + }, + "AllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageAllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "UsageLimits": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimit" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimit" + } + } + }, + "AllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageAllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "UsageLimitsRaw": { + "required": [ + "bandwidth", + "storage" + ], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimitRaw" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimitRaw" + } + } + }, + "UsageFieldset": { + "required": [ + "display", + "raw" + ], + "type": "object", + "properties": { + "display": { + "$ref": "#/components/schemas/UsageLimits" + }, + "raw": { + "$ref": "#/components/schemas/UsageLimitsRaw" + } + } + }, + "Quota": { + "required": [ + "usage" + ], + "type": "object", + "properties": { + "usage": { + "$ref": "#/components/schemas/UsageFieldset" + } + } + }, + "RateCheck": { + "type": "object", + "properties": { + "interval": { + "title": "Interval", + "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", + "type": "number", + "readOnly": true + }, + "limit": { + "title": "Limit", + "description": "The maximum number of requests that you are permitted to send per hour", + "type": "integer", + "readOnly": true + }, + "remaining": { + "title": "Remaining", + "description": "The number of requests that are remaining in the current rate limit window", + "type": "integer", + "readOnly": true + }, + "reset": { + "title": "Reset", + "description": "The UTC epoch timestamp at which the current rate limit window will reset", + "type": "integer", + "readOnly": true + }, + "reset_iso_8601": { + "title": "Reset iso 8601", + "description": "The ISO 8601 datetime at which the current rate limit window will reset", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "throttled": { + "title": "Throttled", + "description": "If true, throttling is currently being enforced.", + "type": "boolean", + "readOnly": true + } + } + }, + "ResourcesRateCheck": { + "type": "object", + "properties": { + "resources": { + "title": "Resources", + "description": "Rate limit values per resource", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RateCheck" + }, + "readOnly": true + } + } + }, + "RepositoryEcdsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryGpgKey": { + "required": [ + "comment" + ], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by GPG for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Repository": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "readOnly": true, + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreateRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryCreate": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [ + 1, + 2, + 3 + ], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryRequestPatch": { + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": [ + "Standard", + "Distribution", + "Upstream" + ], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read", + "None" + ], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": [ + "Public", + "Private", + "Open-Source" + ], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": [ + "Admin", + "Write" + ], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ], + "default": "Read" + } + } + }, + "RepositoryEcdsaKeyCreate": { + "required": [ + "ecdsa_private_key" + ], + "type": "object", + "properties": { + "ecdsa_passphrase": { + "title": "Ecdsa passphrase", + "description": "The ECDSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "ecdsa_private_key": { + "title": "Ecdsa private key", + "description": "The ECDSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpCidr": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed CIDRs for this repository", + "type": "array", + "items": { + "description": "The allowed CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied CIDRs for this repository", + "type": "array", + "items": { + "description": "The denied CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpCountryCode": { + "required": [ + "allow", + "deny" + ], + "type": "object", + "properties": { + "allow": { + "description": "The allowed country codes for this repository", + "type": "array", + "items": { + "description": "The allowed country codes for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied country codes for this repository", + "type": "array", + "items": { + "description": "The denied country codes for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpRules": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequest": { + "required": [ + "cidr", + "country_code" + ], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "type": "object", + "properties": {} + }, + "RespositoryGeoIpEnableDisable": { + "type": "object", + "properties": {} + }, + "RepositoryGeoIpStatus": { + "type": "object", + "properties": { + "geoip_enabled": { + "title": "Geo/IP Restriction Enabled?", + "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", + "type": "boolean", + "readOnly": true + } + } + }, + "RepositoryGeoIpTestAddress": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP addresses to test against this repository", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "RepositoryGeoIpTestAddressResponseDict": { + "required": [ + "allowed", + "country_code", + "ip_address", + "reason" + ], + "type": "object", + "properties": { + "allowed": { + "title": "Allowed", + "description": "The result of the IP test", + "type": "boolean" + }, + "country_code": { + "title": "Country code", + "description": "The country code of the tested IP address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "ip_address": { + "title": "Ip address", + "description": "The IP address that was tested", + "type": "string", + "minLength": 1 + }, + "reason": { + "title": "Reason", + "description": "The reason for the result", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpTestAddressResponse": { + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "description": "The IP address test results ordered by allowed", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" + } + } + } + }, + "RepositoryGpgKeyCreate": { + "required": [ + "gpg_private_key" + ], + "type": "object", + "properties": { + "gpg_passphrase": { + "title": "Gpg passphrase", + "description": "The GPG passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "gpg_private_key": { + "title": "Gpg private key", + "description": "The GPG private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeDict": { + "required": [ + "privilege" + ], + "type": "object", + "properties": { + "privilege": { + "title": "Privilege", + "description": "The level of privilege that the user or team should be granted to the specified repository.", + "type": "string", + "enum": [ + "Admin", + "Write", + "Read" + ] + }, + "service": { + "title": "Service", + "description": "The service identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "user": { + "title": "User", + "description": "The user identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeInput": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequest": { + "required": [ + "privileges" + ], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequestPatch": { + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryRsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by RSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by RSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryRsaKeyCreate": { + "required": [ + "rsa_private_key" + ], + "type": "object", + "properties": { + "rsa_passphrase": { + "title": "Rsa passphrase", + "description": "The RSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "rsa_private_key": { + "title": "Rsa private key", + "description": "The RSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "CargoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstream": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequest": { + "required": [ + "distro_versions", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Certificate and Key" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy", + "Cache Only" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password", + "Token" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstream": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequest": { + "required": [ + "distro_version", + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstream": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequest": { + "required": [ + "name", + "upstream_url" + ], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": [ + "None", + "Username and Password" + ], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RepositoryX509EcdsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "EulaCreate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "EulaCreateRequest": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdateRequestPatch": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + } + } + }, + "EulaUpdate": { + "required": [ + "content" + ], + "type": "object", + "properties": { + "checksum_sha256": { + "title": "Checksum sha256", + "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content": { + "title": "Content", + "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", + "type": "string", + "maxLength": 102400, + "minLength": 1 + }, + "content_size": { + "title": "Content size", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the EULA was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "description": "The actor that created the EULA.", + "type": "string", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the EULA was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "description": "The actor that updated the EULA.", + "type": "string", + "readOnly": true + } + } + }, + "RepositoryTransferOwnerRequest": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTransferOwner": { + "required": [ + "destination_org" + ], + "type": "object", + "properties": { + "destination_org": { + "title": "Destination org", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryRetentionRules": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", + "type": "string", + "readOnly": true, + "default": "0.0.0", + "minLength": 1 + } + } + }, + "StorageRegion": { + "required": [ + "label", + "slug" + ], + "type": "object", + "properties": { + "label": { + "title": "Label", + "description": "Name of the storage region", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "Slug for the storage region", + "type": "string", + "minLength": 1 + } + } + }, + "MetricsRequest": { + "type": "object", + "properties": { + "backend_type": { + "title": "Backend type", + "type": "string", + "enum": [ + "DEB", + "RPM", + "RUBY", + "PYTHON", + "MAVEN", + "BOWER", + "DOCKER", + "RAW", + "CHOCOLATEY", + "NPM", + "NUGET", + "VAGRANT", + "COMPOSER", + "ALPINE", + "HELM", + "CONAN", + "CARGO", + "LUAROCKS", + "CRAN", + "GO", + "DART", + "COCOAPODS", + "TERRAFORM", + "P2", + "CONDA", + "HEX", + "SWIFT", + "DEFAULT" + ] + }, + "end_time": { + "title": "End time", + "type": "string", + "format": "date" + }, + "interval": { + "title": "Interval", + "type": "string", + "enum": [ + "day", + "week", + "month" + ], + "default": "day" + }, + "repository_slugs": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "repository_type": { + "title": "Repository type", + "type": "string", + "enum": [ + "PUBLIC", + "PRIVATE", + "OPEN_SOURCE" + ] + }, + "start_time": { + "title": "Start time", + "type": "string", + "format": "date" + }, + "user_type": { + "title": "User type", + "type": "string", + "enum": [ + "USER", + "SERVICE" + ] + } + } + }, + "AdditionalOnboardingActions": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "type": "string", + "readOnly": true + }, + "kind": { + "title": "Kind", + "type": "string", + "readOnly": true + }, + "label": { + "title": "Label", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "verb": { + "title": "Verb", + "type": "string", + "readOnly": true + } + } + }, + "AdditionalOnboardingActionsRequestPatch": { + "type": "object", + "properties": { + "action_type": { + "title": "Action type", + "type": "string", + "enum": [ + 401, + 402, + 501, + 601, + 602, + 603 + ] + }, + "completed": { + "title": "Completed", + "type": "boolean" + } + } + }, + "UserDefaultOrg": { + "required": [ + "org_slug" + ], + "type": "object", + "properties": { + "org_name": { + "title": "Org name", + "description": "The descriptive name for the user's default organization.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "org_slug_perm": { + "title": "Org slug perm", + "description": "The slug_perm of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserDefaultOrgRequestPatch": { + "type": "object", + "properties": { + "org_slug": { + "title": "Org slug", + "description": "The slug of the user's default organization.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "EmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddressRequest": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "CreateEmailAddress": { + "required": [ + "email" + ], + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "format": "email", + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean" + } + } + }, + "UpdatePrimaryEmail": { + "type": "object", + "properties": { + "email": { + "title": "Email address", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1 + }, + "identifier": { + "title": "Identifier", + "type": "string", + "readOnly": true + }, + "primary": { + "title": "Primary", + "type": "boolean" + }, + "verified": { + "title": "Verified", + "type": "boolean", + "readOnly": true + } + } + }, + "EmailAddressResendConfirmation": { + "type": "object", + "properties": {} + }, + "UserOrganizationInvite": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "UserOrganizationInviteRequest": { + "type": "object", + "properties": { + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time" + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": [ + "Owner", + "Manager", + "Member", + "Collaborator" + ], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + } + } + }, + "Location": { + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "readOnly": true + }, + "country": { + "title": "Country", + "type": "string", + "readOnly": true + } + } + }, + "UserLoginHistory": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "method": { + "title": "Method", + "type": "string", + "readOnly": true + }, + "method_context": { + "title": "Method context", + "type": "string", + "readOnly": true, + "nullable": true + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserLogoutOtherSessions": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserPasswordRequest": { + "required": [ + "confirm_new_password", + "current_password", + "new_password" + ], + "type": "object", + "properties": { + "confirm_new_password": { + "title": "Confirm new password", + "description": "Confirming the new password for the current user.", + "type": "string", + "minLength": 1 + }, + "current_password": { + "title": "Current password", + "description": "The current user's password.", + "type": "string", + "minLength": 1 + }, + "new_password": { + "title": "New password", + "description": "The new password for the current user.", + "type": "string", + "minLength": 1 + } + } + }, + "UserPassword": { + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Permission": { + "description": "A list of permissions to check if permissible.", + "required": [ + "name" + ], + "type": "object", + "properties": { + "args": { + "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "context": { + "title": "Context", + "description": "Any additional context for why a permission check failed.", + "type": "string", + "readOnly": true, + "maxLength": 512, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The qualified name of the permission; e.g. package.upload_packages", + "type": "string", + "maxLength": 256, + "minLength": 1 + }, + "permissible": { + "title": "Permissible", + "description": "If permissible is true, then the user has the specified permission.", + "type": "boolean", + "readOnly": true, + "default": false + } + } + }, + "Permissions": { + "required": [ + "permissions" + ], + "type": "object", + "properties": { + "permissions": { + "description": "A list of permissions to check if permissible.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Permission" + } + } + } + }, + "User": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "onboarding_actions": { + "title": "Onboarding actions", + "type": "string", + "readOnly": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRequestPatch": { + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1, + "nullable": true + }, + "location": { + "title": "Location", + "description": "The city/town/area you are based in.", + "type": "string", + "maxLength": 60, + "nullable": true + }, + "show_onboarding_guide": { + "title": "Show onboarding guide", + "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", + "type": "boolean", + "nullable": true + }, + "subscribe_all": { + "title": "Subscribe to Everything", + "type": "boolean", + "nullable": true + }, + "subscribe_blog": { + "title": "Subscribe to Blog", + "type": "boolean", + "nullable": true + }, + "subscribe_newsletter": { + "title": "Subscribe to Newsletter", + "type": "boolean", + "nullable": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "use_real_name": { + "title": "Use real name", + "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "type": "boolean", + "nullable": true + }, + "visibility": { + "title": "Visibility", + "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "type": "string", + "enum": [ + "Public", + "Private" + ], + "default": "Private" + } + } + }, + "UserRefreshWebTokenRequest": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserRefreshWebToken": { + "required": [ + "refresh_token" + ], + "type": "object", + "properties": { + "access_token": { + "title": "Access token", + "description": "The JWT to use for authentication.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_token": { + "title": "Refresh token", + "description": "The JWT to use for refreshing the authentication.", + "type": "string", + "minLength": 1 + } + } + }, + "UserBrief": { + "type": "object", + "properties": { + "authenticated": { + "title": "Authenticated", + "description": "If true then you're logged in as a user.", + "type": "boolean", + "readOnly": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSession": { + "type": "object", + "properties": { + "browser": { + "title": "Browser", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "device_name": { + "title": "Device name", + "type": "string", + "readOnly": true + }, + "ip_address": { + "title": "IP Address", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "location": { + "$ref": "#/components/schemas/Location" + }, + "operating_system": { + "title": "Operating system", + "type": "string", + "readOnly": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "user_agent": { + "title": "User agent", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserSlugRequestPatch": { + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "UserSlug": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + } + } + }, + "SoftDeleteUser": { + "type": "object", + "properties": {} + }, + "UserAuthTokenRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "Email address to authenticate with", + "type": "string", + "format": "email", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password to authenticate with", + "type": "string", + "minLength": 1 + }, + "totp_token": { + "title": "Two-factor code", + "description": "Two-factor authentication code", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthToken": { + "type": "object", + "properties": { + "token": { + "title": "Token", + "description": "API token for the authenticated user", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "two_factor_required": { + "title": "Two factor required", + "description": "Flag indicating whether a 2FA code is required to complete authentication", + "type": "boolean", + "readOnly": true + }, + "two_factor_token": { + "title": "Two factor token", + "description": "Token to use when providing 2FA code", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserApiCidr": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "An auto-generated id that uniquely identifies the object.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1, + "nullable": true + } + } + }, + "UserApiCidrRequest": { + "required": [ + "cidr" + ], + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserApiCidrRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "title": "CIDR", + "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthenticationToken": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "The time at which the API key was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm for token.", + "type": "string", + "readOnly": true + } + } + }, + "TOTPRequest": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + }, + "token": { + "title": "Token", + "description": "Token for TOTP Device confirmation", + "type": "string", + "minLength": 1 + } + } + }, + "TOTP": { + "type": "object", + "properties": { + "confirmed": { + "title": "Confirmed", + "description": "Is this device ready for use?", + "type": "boolean" + }, + "digits": { + "title": "Digits", + "description": "The number of digits to expect in a token.", + "type": "integer", + "enum": [ + 6, + 8 + ] + }, + "qr_code_encoded_image": { + "title": "Qr code encoded image", + "description": "Base64 Encoded QR Image", + "type": "string", + "readOnly": true + }, + "secret_key": { + "title": "Secret key", + "description": "TOTP Secret Key", + "type": "string", + "readOnly": true + }, + "step": { + "title": "Step", + "description": "The time step in seconds.", + "type": "integer" + } + } + }, + "TOTPSettings": { + "required": [ + "enforce_saml_2fa" + ], + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + }, + "is_2fa_backup_codes_enabled": { + "title": "Is 2fa backup codes enabled", + "description": "Is 2FA Backup Codes enabled for the authenticated user", + "type": "boolean", + "readOnly": true + }, + "is_2fa_enabled": { + "title": "Is 2fa enabled", + "description": "Is 2FA enabled for the authenticated user", + "type": "boolean", + "readOnly": true + } + } + }, + "TOTPSettingsRequestPatch": { + "type": "object", + "properties": { + "enforce_saml_2fa": { + "title": "Enforce saml 2fa", + "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "type": "boolean" + } + } + }, + "UserProfile": { + "required": [ + "first_name", + "last_name" + ], + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time" + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VulnerabilityScanResultsList": { + "required": [ + "identifier", + "package", + "scan_id" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + } + } + }, + "VulnerabilityScanVersion": { + "required": [ + "major", + "minor", + "patch" + ], + "type": "object", + "properties": { + "major": { + "title": "Major", + "type": "integer" + }, + "minor": { + "title": "Minor", + "type": "integer" + }, + "operator": { + "title": "Operator", + "type": "string", + "default": "", + "maxLength": 32, + "minLength": 1 + }, + "patch": { + "title": "Patch", + "type": "integer" + }, + "raw_version": { + "title": "Raw version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + }, + "version": { + "title": "Version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + } + } + }, + "Vulnerability": { + "required": [ + "affected_version", + "description", + "fixed_version", + "package_name", + "references", + "severity_source", + "title", + "vulnerability_id" + ], + "type": "object", + "properties": { + "affected_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 1028, + "minLength": 1 + }, + "fixed_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "package_name": { + "title": "Package name", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "references": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "severity_source": { + "title": "Severity source", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "vulnerability_id": { + "title": "Vulnerability id", + "type": "string", + "maxLength": 13, + "minLength": 1 + } + } + }, + "VulnerabilityScan": { + "required": [ + "results", + "target", + "type" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Vulnerability" + } + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "minLength": 1 + } + } + }, + "VulnerabilityScanResults": { + "required": [ + "identifier", + "package", + "scan_id", + "scans" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScan" + } + } + } + }, + "WebhookTemplate": { + "required": [ + "event" + ], + "type": "object", + "properties": { + "event": { + "title": "Event", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "template": { + "title": "Template", + "type": "string", + "maxLength": 4096, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryWebhook": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "readOnly": true + }, + "disable_reason_str": { + "title": "Disable reason str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "is_last_response_bad": { + "title": "Is last response bad", + "type": "boolean", + "readOnly": true + }, + "last_response_status": { + "title": "Last response status", + "type": "integer", + "readOnly": true + }, + "last_response_status_str": { + "title": "Last response status str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "num_sent": { + "title": "Num sent", + "type": "integer", + "readOnly": true + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_format_str": { + "title": "Request body format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_body_template_format_str": { + "title": "Request body template format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequest": { + "required": [ + "events", + "target_url", + "templates" + ], + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequestPatch": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + } + } + } +} diff --git a/src/content/access-control/index.mdx b/src/content/access-control/index.mdx deleted file mode 100644 index d16f9778..00000000 --- a/src/content/access-control/index.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# Securing your Workspace - -Placeholder \ No newline at end of file diff --git a/src/content/accounts-and-teams/about-privileges.mdx b/src/content/accounts-and-teams/about-privileges.mdx new file mode 100644 index 00000000..b65ae5c3 --- /dev/null +++ b/src/content/accounts-and-teams/about-privileges.mdx @@ -0,0 +1,83 @@ +# Teams and Accounts Privileges + +Cloudsmith provides a powerful and flexible permissions system to ensure you can implement a least-privilege approach for your software supply chain. Access control is managed at three distinct levels: the Workspace, Teams, and individual Repositories. + +This page provides a high-level overview of these layers, how they interact, and how they combine to define a user's ultimate permissions. + +## The Hierarchy of Permissions + +It is helpful to think of Cloudsmith's permissions as a top-down hierarchy, where settings at a higher level provide defaults that can be refined or overridden by settings at a more specific level. + +- **Workspace Level:** The broadest level of control. It defines user roles for the entire workspace and sets default permissions that apply to all repositories within it. +- **Team-Based Permissions:** Teams are groups of workspace users. You don't assign privileges to a team directly; instead, you grant a team specific access to a repository. All members of that team then inherit those repository privileges. This is the primary mechanism for managing access for groups of users. +- **Repository Level:** The most granular level of control. Here, you can override workspace defaults for a specific repository, grant unique permissions to specific users and teams, and fine-tune what actions are permissible within that repository. + +A user's final, **effective privilege** is the greatest privilege granted to them from any of these levels. + +--- + +## Workspace-Level Privileges + +These are the foundational settings that apply across your entire workspace. They are configured in **Workspace Settings > Privileges**. + +### Workspace User Roles + +Every user in a workspace has one of four roles, which defines their fundamental capabilities. + +| Role | Permissions | +| :------------ | :------------------------------------------------------------------------------------------------------------------ | +| **Owner** | Full "root" access. Can manage all workspace settings, billing, other owners, and has full access to all repositories. | +| **Manager** | Can manage workspace settings and all non-owner users and teams. Has no repository access by default. | +| **Member** | A standard user who inherits privileges from workspace defaults and team memberships. | +| **Collaborator** | A limited user who can only inherit privileges from their teams. Cannot access general Workspace or Repository settings. | + +### Global and Default Privileges + +The workspace settings also allow you to define two types of default permissions: + +* **Global Privileges:** You can grant **Members** the ability to perform workspace-level actions like creating new teams, inviting users, or creating new repositories. +* **Default Object Privileges:** You can set the default repository access (`Admin`, `Write`, `Read`, or `None`) that **Members** and **Managers** receive for all repositories in the workspace. **Collaborators** do not inherit these. + +For a complete breakdown of these settings, please see the **Workspace Privileges** documentation. + +## Team-Based Permissions + +Teams are the most efficient way to manage repository access for groups of users. Users can be added to a team as either a **Manager** (can manage the team itself) or a **Member**. + +The team itself does not have inherent privileges. Instead, you grant the **Team** a specific privilege level (e.g., `Read` or `Write`) on a particular repository. Every user in that team then inherits that level of access for that repository. + +This is configured at the repository level, under **Repository Settings > Access Control**. + +For more info on creating and managing teams, see the **Repository Privileges** documentation. + +## Repository-Level Privileges + +This is the most specific level of control, configured under **Repository Settings > Access Controls**. These settings apply only to the individual repository and can override the workspace defaults. + +### Repository Access Control + +| Setting | Description | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Default Privileges** | Sets the default privilege (`Admin`, `Write`, `Read`, `None`) for all workspace **Members** on *this specific repository*, overriding the workspace-wide default. | +| **User/Team/Service Privileges** | You can grant a higher level of privilege to specific users, services, or teams, beyond the default. For example, you could give the "CI/CD" team `Write` access while the default for everyone else is `Read`. | +| **Repository Privileges** | Fine-tune the *minimum privilege level* required to perform specific actions like `Copy`, `Delete`, or `Resync` packages within this repository. | +| **Self Privileges** | Define actions that users can *always* perform on their own packages, regardless of other permissions. | + +For a detailed explanation of these settings, please see the **Repository Privileges** documentation. + +## Putting It All Together: Effective Privilege + +The final, or "effective," privilege for any user is the **greatest privilege** they are granted through any of these mechanisms. The system checks for permissions in this order: + +1. Privileges assigned directly to the **User** on a repository. +2. Privileges inherited from any **Team** the user is a member of. +3. The **Default Privilege** set on the repository. +4. The workspace-wide **Default Object Privilege**. + +For example, if the workspace default is `Read`, but a user is on a team that has `Write` access to a repository, that user will have `Write` access. + +## External Access: Entitlement Tokens + +The permissions described above apply to authenticated Cloudsmith users within your workspace. For providing read-only, programmatic access to external users or automated systems (like CI/CD pipelines or end-user clients), you should use **Entitlement Tokens**. These tokens provide access to a repository without requiring a Cloudsmith user account. + +For more information, please see the **Entitlement Tokens Documentation**. \ No newline at end of file diff --git a/src/content/accounts-and-teams/access-controls.mdx b/src/content/accounts-and-teams/access-controls.mdx deleted file mode 100644 index 62286e9e..00000000 --- a/src/content/accounts-and-teams/access-controls.mdx +++ /dev/null @@ -1,41 +0,0 @@ -import { BlockImage, Video } from '@/components' -import img_repo_access_controls from './images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png' - -# Access Controls - - - -Access Controls allow you to configure which organization services, teams, or individual Cloudsmith users have access to the repository, and what permission levels they have for the repository. - -You can also configure default privileges for any member of an organization. - -Please see the [Teams](/accounts-and-teams/teams) documentation for further information on creating teams in an organization. - - - -The privilege for a user is the greatest privilege granted to them via: - -- Assignment to them directly, via "Privileges for Specific Users". -- Derived from their team membership via "Privileges for Specific Teams". -- By default on the repository, via "Default Privileges". -- By default on the organization, via the org-wide "Default Object Privileges" (see [Organization Settings](/getting-started/workspaces#object-privileges)). - -When granting a Team or User access to a repository, you can select from the following privilege levels. - -## Privilege Levels - -| Privilege | Description | -| :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Admin** | Users, or members of Teams, granted Admin access to the repository can manage entitlements, privileges, and settings, in addition to those permissions granted by Write and Read access. | -| **Write** | Users, or members of Teams, granted Write access to the repository can upload packages and edit existing packages, in addition to those permissions granted by Read access. | -| **Read** | Users, or members of Teams, granted Read access to the repository can view and download packages. | - -The privilege level required to perform specific operations on a repository can be further defined in the repository [Main Settings](/repositories/repository-settings) . - -## Default Privileges (per repository) - -This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings - -## External User Access - -To allow external (non-Cloudsmith) users access to a repository, please see our [Entitlements](/software-distribution/entitlement-tokens) documentation. diff --git a/src/content/accounts-and-teams/index.mdx b/src/content/accounts-and-teams/index.mdx index bf9ca70b..b6bd2d86 100644 --- a/src/content/accounts-and-teams/index.mdx +++ b/src/content/accounts-and-teams/index.mdx @@ -1,3 +1,14 @@ -# Managing Teams and Accounts +# Teams and Accounts -Placeholder \ No newline at end of file +In Cloudsmith, you can define the identities (Accounts and Teams) and their privileges within your Workspaces with a high level of detail. + +There are two different types of **accounts**: +- **Members**: use them to give access to humans in your organization. +- **Services**: for any automation or agents that might require access to your Workspaces. + +Effective account **privileges** are divided into three main levels: +- Workspace +- Team +- Repository + +Learn more about them in the [Teams and Account's privileges](/accounts-and-teams/about-privileges) documentation or in the Workspace or Repository settings. \ No newline at end of file diff --git a/src/content/accounts-and-teams/permissions.mdx b/src/content/accounts-and-teams/permissions.mdx deleted file mode 100644 index 5f5080a2..00000000 --- a/src/content/accounts-and-teams/permissions.mdx +++ /dev/null @@ -1,56 +0,0 @@ -import { BlockImage } from '@/components' -import img_Screenshot_2024_11_08_at_3_16_55_PM from './images/permissions/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png' -import img_Screenshot_2024_11_08_at_3_15_38_PM from './images/permissions/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png' -import img_Screenshot_2024_11_08_at_3_23_22_PM from './images/permissions/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png' -import img_Screenshot_2024_11_08_at_3_28_38_PM from './images/permissions/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png' - -# Permissions - -Setting up an _Organization_ in Cloudsmith allows you to set up clear access to teams, individuals and machines that map to your company's organizational structure. - -Building security and resilience into managing teams and workflows is essential in today's ecosystem. Below is a quick start guide to the powerful permission system within Cloudsmith. - -Permissions are divided into three levels: Organization, Team and Repository-specific. - -The best way to see what the permissions can do (at a broad level) is to navigate to the "Accounts" tab in Cloudsmith, then hover your mouse over the question mark icon. When inviting a user to your Cloudsmith organization, select the permission level dropdown in the views (described/shown below). - -## Organization Permissions - -Privileges for a member within an Organization: - - - - - - -
- -
- -An "Owner" is the "root" of the organization, and is the only user that can manage other users or delete the organization. - -All members inherit some permissions from the Organization that determine what they can and can't do (e.g. create repositories). - -In addition to that, you can give a "standard" level of repository privilege to members (this is "None" by default). - -## Team Permissions - -Privileges for a member of a team can be viewed by hovering your mouse over the question mark icon next to the selected role. - - - -## Repository Permissions - -Privileges on repositories given to teams or users can be found within your repository settings. Hover your mouse over the question mark icon to view the repository permissions for each privilege. - - - -
- -## Getting Started! - -The normal setup for customers is to invite all employees/staff as members to the Organization. - -Then add them to teams based on their roles/function/software (e.g. "operations", or maybe "frontend"). - -Then add teams to the repositories with the relevant permissions depending on what they need (e.g. "operations" might have "Admin" access on the "production" repository). diff --git a/src/content/administration/index.mdx b/src/content/administration/index.mdx new file mode 100644 index 00000000..00bb4731 --- /dev/null +++ b/src/content/administration/index.mdx @@ -0,0 +1,49 @@ +import { Card, Flex } from '@/components'; + +# System Administration & Configuration + +This section provides an index of topics related to the administration, configuration, and management of the platform. Here you can learn how to configure your workspace, create new repositories, or define a custom set of roles and permissions tailored to your organizational needs. + + + + + + + +

+ + +## Authentication +- **[Authentication](./authentication)**: Configuration of authentication methods for user identity verification, including Single Sign-On (SSO) and Multi-Factor Authentication (MFA). \ No newline at end of file diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index d04e7d0d..0ec70d60 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -1,9 +1,18 @@ ---- -title: API Documentation -description: This is the API page -lastUpdated: 2025-01-01 ---- +# API intro -# API +The Cloudsmith REST (REpresentational State Transfer) API (Application Programming Interface) provides everything you love about Cloudsmith but in a programmatic machine-accessible RESTful format. We believe in providing a rich API to enable exciting and powerful integrations, hopefully in ways that we couldn't imagine - just like your favourite brick-like toys! -Content goes here... +## Versioning + +The API is versioned to help reduce future compatibility issues if we need to change the API. The following is a list of the current API versions and their URI endpoints: + +### v1 (Version 1.0) https://api.cloudsmith.io/v1/ +### v2 (Version 2.0) https://api.cloudsmith.io/v2/ + +If no explicit version has been specified then the latest version of the API will always be accessible at https://api.cloudsmith.io/ - so for example if the latest version is v1 then this will point to the v1 API. If we release a new v2 API then https://api.cloudsmith.io/ will automatically point to the v2 API, which may break clients that don't expect it. In order to maximise compatibility (if you need it), you should consider pointing at the fully-qualified endpoint for the version you need, such as https://api.cloudsmith.io/v1/, or use one of the alternative methods (see below) for specifying the version. + +In addition to explicitly specifying the endpoint in the URI, the following methods of specifying the version are supported by the Cloudsmith API: + +Method Description Example +Accept Header Specify the version in the Accept header when making requests. Accept: application/json; version=v1 +Query String Specify the version in the query string when making requests. https://api.cloudsmith.io/user/self/?version=v1 \ No newline at end of file diff --git a/src/content/artifact-management/index.mdx b/src/content/artifact-management/index.mdx index f36875e3..bcea39d2 100644 --- a/src/content/artifact-management/index.mdx +++ b/src/content/artifact-management/index.mdx @@ -1,3 +1,82 @@ +import { Note } from '@/components' + # Artifact Management -Placeholder \ No newline at end of file +With Cloudsmith's our code **Artifact Management** capabilities, you can control the flow of all software components throughout your software development lifecycle. Artifact Management includes operations with both: +- the artifacts your teams **generate** (like binaries and container images) +- and the dependencies they **consume** from internal and third-party sources. + +These software components and their corresponding metadata are collectively known as **artifacts**. Effective artifact management ensures these critical assets are versioned, secured, and reliably accessible, forming the backbone of a modern software supply chain. + +As complexity grows, particularly with popular formats such as Maven and npm, it becomes important to manage packages through a package management system such as Cloudsmith. + +## What's a package? + +Packages are a logical grouping of files containing software and metadata about the software and its dependencies. Packages are typically versioned to provide a better and more manageable understanding of what software is being deployed. + + +While related, there's a key difference between artifacts and packages. + +An **artifact** is a raw output, like a `.jar` file or a Docker image. A **package** is an artifact bundled with metadata (name, version, dependencies) that tools can understand. Essentially, **all packages are artifacts, but not all artifacts are packages.** This structured metadata is crucial for reliable software deployment. For a more detailed comparison, please see our blog post: [Artifacts vs. Packages: What Is the Difference?](https://cloudsmith.com/blog/artifacts-vs-packages-what-is-the-difference) + + +Cloudsmith supports packages (and containers) of many types, supporting their native tooling and most popular upstreams. With Cloudsmith, you can automate the publishing and delivery of packages through native interface (e.g using "maven publish"), or through the Cloudsmith CLI, API or manually through the UI. + +## What package types are supported? + +Our mission is to support the developer community with a best-in-class package management solution that doesn't just cater to the most used formats for development and deployment but brings the same level of control, management, and visibility for every format we add. + +For an exaustive list, visit our [Supported Formats](/package-formats) page. + +## Search Query Syntax + +Quickly locate any package using Cloudsmith's advanced search functionality: [Search Query Syntax](/artifact-management/search-filter-sort-packages). The flexible query syntax allows you to combine multiple criteria, such as name, version, and dependencies, to build highly targeted searches. + +## Package Actions + +You can manage your packages using different tools: +- Cloudsmith CLI +- Cloudsmith web app +- Native tooling (docker, pip, npm, etc.) +- Cloudsmith API + +Here's a list of supported actions with references to learn more about each of them. + +| Action | Description | +| :------------------------------------ | :------------------------------------------------------------------------- | +| [Identification](/artifact-management/identifying-a-package) | Get package ID | +| [Upload](/artifact-management/package-upload) | Publish from your development environment or CI pipeline | +| [Download](/artifact-management/download-a-package) | Download packages and dependencies to any environment | +| [Tag](/artifact-management/tag-a-package) | Tag a package | +| [Copy](/artifact-management/copy-a-package) | Copy a package from one repository to another | +| [Move](/artifact-management/package-move) | Move a package from one repository to another | +| [Delete](/artifact-management/delete-a-package) | Delete a package from a repository | +| [Quarantine](/artifact-management/quarantine-a-package)| Package Quarantine | +| [Resynchronize](/artifact-management/resync-a-package) | Republish (delete/add) a package (usually to retry a package sync failure) | +| [Share Private](/artifact-management/) | Share a private package | + + +📘 **Promote Packages** +Cloudsmith allows you to "promote" packages between repositories through either a [move](/artifact-management/package-move) or [copy](/artifact-management/copy-a-package) function, preventing unnecessary uploads/downloads, for an accelerated pipeline. + + +{/* ## Package Recycle Bin */} + +## Package groups + +[Package Groups](artifact-management/package-groups) provide a streamlined, high-level overview of your repository by consolidating all component versions into a single entry for each package. + +## Retention rules + +[Retention rules](artifact-management/retention-rules) automate repository storage management by systematically deleting packages based on configurable criteria for count, size, age, or a filtered search query. + +## Artifact Management Policies + +### Package Deny policies + + +### Block Until Scan + +[Block Until Scan](/policy-management/block-until-scan) is a security feature designed to enhance the integrity and security of software packages served by Cloudsmith, guaranteeing that all relevant security and compliance policy checks (licenses, vulnerabilities, package deny policies) are fully completed before a package is made available for download. + +To learn more about it, browse to [Supply Chain Security > Policies > Block Until Scan](/policy-management/block-until-scan). \ No newline at end of file diff --git a/src/content/artifact-management/package-groups.mdx b/src/content/artifact-management/package-groups.mdx index cd1bc2a9..e9e1509b 100644 --- a/src/content/artifact-management/package-groups.mdx +++ b/src/content/artifact-management/package-groups.mdx @@ -3,8 +3,7 @@ import package_groups from './images/package-groups/package_groups.gif' # Package Groups ---- -Package Groups provides a per package view of a repository, as opposed to the default view for a repository which shows each individual version of every package. This can be useful to give you an overview of the packages contained within your repository, especially if you have a large number of versions for each package. +Package Groups provides a per package view of a repository, as opposed to the default view for a repository which shows each individual version of every package. This can be useful to give you an overview of the packages contained within your repository, especially if you have a large number of versions for each package. The Package Groups view groups packages by package format and package name: diff --git a/src/content/artifact-management/search-filter-sort-packages.mdx b/src/content/artifact-management/search-filter-sort-packages.mdx index a7655862..47a3026e 100644 --- a/src/content/artifact-management/search-filter-sort-packages.mdx +++ b/src/content/artifact-management/search-filter-sort-packages.mdx @@ -6,9 +6,13 @@ import imga2f0d45_search_pkgs_cli_tag_and from './images/search-filter-sort-pack import imgac51e3f_search_pkgs_cli_size_dls from './images/search-filter-sort-packages/ac51e3f-search_pkgs_cli_size_dls.png' import img48c5e893304d7a8fbac85d7a4b1eea00afca6e145f4b0914ccd9a2ba0d1b334d_repo_sort from './images/search-filter-sort-packages/48c5e893304d7a8fbac85d7a4b1eea00afca6e145f4b0914ccd9a2ba0d1b334d-repo-sort.png' -# Searching Packages +# Package Search Syntax -Searching for packages is simple and powerful with Cloudsmith. The search syntax is fully "boolean", in that you can combine queries together with `AND` (i.e. find this AND that), or `OR` (i.e. find this OR that), or `NOT` (i.e. find NOT this). This is optional, if you don't put any boolean operators (AND/OR) in, we'll just assume that you want `AND` by default. +Cloudsmith provides a powerful and flexible query language that enables you to instantly find any package, in any repository, based on a comprehensive set of attributes. This syntax can be used in multiple areas of the product. + +Our search syntax allows you to move beyond simple name-based searches and build highly specific queries using a wide range of criteria, including package format, version, size, upload date, dependencies, and even policy violation status. By combining these terms with boolean operators (AND, OR, NOT) and advanced matching logic, you can construct precise filters to isolate the exact artifacts you need, directly from the Web UI, API, or CLI. + +📘 The search syntax is fully "boolean", in that you can combine queries together with `AND` (i.e. find this AND that), or `OR` (i.e. find this OR that), or `NOT` (i.e. find NOT this). This is optional, if you don't put any boolean operators (AND/OR) in, we'll just assume that you want `AND` by default. ## Search Terms diff --git a/src/content/getting-started/images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png b/src/content/authentication/images/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png similarity index 100% rename from src/content/getting-started/images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png rename to src/content/authentication/images/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png diff --git a/src/content/getting-started/images/workspaces/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png b/src/content/authentication/images/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png similarity index 100% rename from src/content/getting-started/images/workspaces/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png rename to src/content/authentication/images/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png diff --git a/src/content/getting-started/images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png b/src/content/authentication/images/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png similarity index 100% rename from src/content/getting-started/images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png rename to src/content/authentication/images/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png diff --git a/src/content/getting-started/images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png b/src/content/authentication/images/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png similarity index 100% rename from src/content/getting-started/images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png rename to src/content/authentication/images/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png diff --git a/src/content/access-control/images/openid-connect/2065557e5fdb762669dd32fa648efab1def4ff7a918e3e728674ca97099f6a04-annotated-openidconnect.png b/src/content/authentication/images/openid-connect/2065557e5fdb762669dd32fa648efab1def4ff7a918e3e728674ca97099f6a04-annotated-openidconnect.png similarity index 100% rename from src/content/access-control/images/openid-connect/2065557e5fdb762669dd32fa648efab1def4ff7a918e3e728674ca97099f6a04-annotated-openidconnect.png rename to src/content/authentication/images/openid-connect/2065557e5fdb762669dd32fa648efab1def4ff7a918e3e728674ca97099f6a04-annotated-openidconnect.png diff --git a/src/content/access-control/images/openid-connect/e031ac566d5d50d46982aebe44f8b30ce6ce4fba647aad0678ac3466414dde82-provider-settings.png b/src/content/authentication/images/openid-connect/e031ac566d5d50d46982aebe44f8b30ce6ce4fba647aad0678ac3466414dde82-provider-settings.png similarity index 100% rename from src/content/access-control/images/openid-connect/e031ac566d5d50d46982aebe44f8b30ce6ce4fba647aad0678ac3466414dde82-provider-settings.png rename to src/content/authentication/images/openid-connect/e031ac566d5d50d46982aebe44f8b30ce6ce4fba647aad0678ac3466414dde82-provider-settings.png diff --git a/src/content/access-control/images/openid-connect/e0b23d4-Group_2554.png b/src/content/authentication/images/openid-connect/e0b23d4-Group_2554.png similarity index 100% rename from src/content/access-control/images/openid-connect/e0b23d4-Group_2554.png rename to src/content/authentication/images/openid-connect/e0b23d4-Group_2554.png diff --git a/src/content/access-control/images/scim-with-google/c2370ff90f8533154dc129aa4094c6c2a609c6c915382adb9d3e645610cfa826-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_5.png b/src/content/authentication/images/scim-with-google/c2370ff90f8533154dc129aa4094c6c2a609c6c915382adb9d3e645610cfa826-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_5.png similarity index 100% rename from src/content/access-control/images/scim-with-google/c2370ff90f8533154dc129aa4094c6c2a609c6c915382adb9d3e645610cfa826-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_5.png rename to src/content/authentication/images/scim-with-google/c2370ff90f8533154dc129aa4094c6c2a609c6c915382adb9d3e645610cfa826-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_5.png diff --git a/src/content/access-control/images/scim-with-google/cf166e95d48f2069f263ad8e318d5257155954738c98136eda1f581b83d01db3-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_4.png b/src/content/authentication/images/scim-with-google/cf166e95d48f2069f263ad8e318d5257155954738c98136eda1f581b83d01db3-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_4.png similarity index 100% rename from src/content/access-control/images/scim-with-google/cf166e95d48f2069f263ad8e318d5257155954738c98136eda1f581b83d01db3-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_4.png rename to src/content/authentication/images/scim-with-google/cf166e95d48f2069f263ad8e318d5257155954738c98136eda1f581b83d01db3-app.cloudsmith.com_demo_examples-repo_settingsiPad_Pro_4.png diff --git a/src/content/access-control/images/scim-with-jumpcloud/33a9e7ca325096db9b79c309c47d0ee3fd2741eeac422518b5790d964051833a-scim-steps.png b/src/content/authentication/images/scim-with-jumpcloud/33a9e7ca325096db9b79c309c47d0ee3fd2741eeac422518b5790d964051833a-scim-steps.png similarity index 100% rename from src/content/access-control/images/scim-with-jumpcloud/33a9e7ca325096db9b79c309c47d0ee3fd2741eeac422518b5790d964051833a-scim-steps.png rename to src/content/authentication/images/scim-with-jumpcloud/33a9e7ca325096db9b79c309c47d0ee3fd2741eeac422518b5790d964051833a-scim-steps.png diff --git a/src/content/access-control/images/scim-with-microsoft-entra-id/ef96dfb04a805ababf1ccb6d14708e2111d16f5f1a637beea546546b4bd9d409-scim-steps.png b/src/content/authentication/images/scim-with-microsoft-entra-id/ef96dfb04a805ababf1ccb6d14708e2111d16f5f1a637beea546546b4bd9d409-scim-steps.png similarity index 100% rename from src/content/access-control/images/scim-with-microsoft-entra-id/ef96dfb04a805ababf1ccb6d14708e2111d16f5f1a637beea546546b4bd9d409-scim-steps.png rename to src/content/authentication/images/scim-with-microsoft-entra-id/ef96dfb04a805ababf1ccb6d14708e2111d16f5f1a637beea546546b4bd9d409-scim-steps.png diff --git a/src/content/access-control/images/scim-with-okta/039ea4c884315e862a79be98f12717b08e6d8092fc23f79beb23dfc7c4cc2550-scim-steps.png b/src/content/authentication/images/scim-with-okta/039ea4c884315e862a79be98f12717b08e6d8092fc23f79beb23dfc7c4cc2550-scim-steps.png similarity index 100% rename from src/content/access-control/images/scim-with-okta/039ea4c884315e862a79be98f12717b08e6d8092fc23f79beb23dfc7c4cc2550-scim-steps.png rename to src/content/authentication/images/scim-with-okta/039ea4c884315e862a79be98f12717b08e6d8092fc23f79beb23dfc7c4cc2550-scim-steps.png diff --git a/src/content/access-control/images/scim-with-okta/93fc9ed-To_app.png b/src/content/authentication/images/scim-with-okta/93fc9ed-To_app.png similarity index 100% rename from src/content/access-control/images/scim-with-okta/93fc9ed-To_app.png rename to src/content/authentication/images/scim-with-okta/93fc9ed-To_app.png diff --git a/src/content/access-control/images/scim-with-okta/a4625db-Provisioning.png b/src/content/authentication/images/scim-with-okta/a4625db-Provisioning.png similarity index 100% rename from src/content/access-control/images/scim-with-okta/a4625db-Provisioning.png rename to src/content/authentication/images/scim-with-okta/a4625db-Provisioning.png diff --git a/src/content/access-control/images/scim-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png b/src/content/authentication/images/scim-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png similarity index 100% rename from src/content/access-control/images/scim-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png rename to src/content/authentication/images/scim-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png diff --git a/src/content/access-control/images/scim-with-onelogin/821b638351f176305f092a4ab1f6c763359b7c5c5808155d2150217305b559db-scim-steps.png b/src/content/authentication/images/scim-with-onelogin/821b638351f176305f092a4ab1f6c763359b7c5c5808155d2150217305b559db-scim-steps.png similarity index 100% rename from src/content/access-control/images/scim-with-onelogin/821b638351f176305f092a4ab1f6c763359b7c5c5808155d2150217305b559db-scim-steps.png rename to src/content/authentication/images/scim-with-onelogin/821b638351f176305f092a4ab1f6c763359b7c5c5808155d2150217305b559db-scim-steps.png diff --git a/src/content/access-control/images/scim-with-pingfederate/d09aad44bccec4d78046752b2e2c223729431e2f5075cf2cefb78c8310bc9fa3-scim-steps.png b/src/content/authentication/images/scim-with-pingfederate/d09aad44bccec4d78046752b2e2c223729431e2f5075cf2cefb78c8310bc9fa3-scim-steps.png similarity index 100% rename from src/content/access-control/images/scim-with-pingfederate/d09aad44bccec4d78046752b2e2c223729431e2f5075cf2cefb78c8310bc9fa3-scim-steps.png rename to src/content/authentication/images/scim-with-pingfederate/d09aad44bccec4d78046752b2e2c223729431e2f5075cf2cefb78c8310bc9fa3-scim-steps.png diff --git a/src/content/access-control/images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png b/src/content/authentication/images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png similarity index 100% rename from src/content/access-control/images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png rename to src/content/authentication/images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/0235d82-Screenshot_2023-04-04_at_13.38.39.png b/src/content/authentication/images/single-sign-on-with-azure-ad/0235d82-Screenshot_2023-04-04_at_13.38.39.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/0235d82-Screenshot_2023-04-04_at_13.38.39.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/0235d82-Screenshot_2023-04-04_at_13.38.39.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/043acd5-Screenshot_2023-03-28_at_16.37.32.png b/src/content/authentication/images/single-sign-on-with-azure-ad/043acd5-Screenshot_2023-03-28_at_16.37.32.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/043acd5-Screenshot_2023-03-28_at_16.37.32.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/043acd5-Screenshot_2023-03-28_at_16.37.32.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/19dfed2-cloudsmith-azure-ad-5.png b/src/content/authentication/images/single-sign-on-with-azure-ad/19dfed2-cloudsmith-azure-ad-5.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/19dfed2-cloudsmith-azure-ad-5.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/19dfed2-cloudsmith-azure-ad-5.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/1b6c2ec-Screenshot_2023-04-04_at_13.24.50.png b/src/content/authentication/images/single-sign-on-with-azure-ad/1b6c2ec-Screenshot_2023-04-04_at_13.24.50.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/1b6c2ec-Screenshot_2023-04-04_at_13.24.50.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/1b6c2ec-Screenshot_2023-04-04_at_13.24.50.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/236c28f-Screenshot_2023-04-04_at_13.36.48.png b/src/content/authentication/images/single-sign-on-with-azure-ad/236c28f-Screenshot_2023-04-04_at_13.36.48.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/236c28f-Screenshot_2023-04-04_at_13.36.48.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/236c28f-Screenshot_2023-04-04_at_13.36.48.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/23729bf-Screenshot_2023-03-28_at_16.42.10.png b/src/content/authentication/images/single-sign-on-with-azure-ad/23729bf-Screenshot_2023-03-28_at_16.42.10.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/23729bf-Screenshot_2023-03-28_at_16.42.10.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/23729bf-Screenshot_2023-03-28_at_16.42.10.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/423b58384411ad1aedae0d14f42f8901b4b228d5b88b0751d4ce9eae0c745b62-app.cloudsmith.com_demo_logsiPad_Pro_3.png b/src/content/authentication/images/single-sign-on-with-azure-ad/423b58384411ad1aedae0d14f42f8901b4b228d5b88b0751d4ce9eae0c745b62-app.cloudsmith.com_demo_logsiPad_Pro_3.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/423b58384411ad1aedae0d14f42f8901b4b228d5b88b0751d4ce9eae0c745b62-app.cloudsmith.com_demo_logsiPad_Pro_3.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/423b58384411ad1aedae0d14f42f8901b4b228d5b88b0751d4ce9eae0c745b62-app.cloudsmith.com_demo_logsiPad_Pro_3.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/482a011-cloudsmith-azure-ad-6.png b/src/content/authentication/images/single-sign-on-with-azure-ad/482a011-cloudsmith-azure-ad-6.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/482a011-cloudsmith-azure-ad-6.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/482a011-cloudsmith-azure-ad-6.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/4934353-Screenshot_2023-03-28_at_16.56.27.png b/src/content/authentication/images/single-sign-on-with-azure-ad/4934353-Screenshot_2023-03-28_at_16.56.27.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/4934353-Screenshot_2023-03-28_at_16.56.27.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/4934353-Screenshot_2023-03-28_at_16.56.27.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/4995811-Screenshot_2023-03-28_at_16.44.01.png b/src/content/authentication/images/single-sign-on-with-azure-ad/4995811-Screenshot_2023-03-28_at_16.44.01.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/4995811-Screenshot_2023-03-28_at_16.44.01.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/4995811-Screenshot_2023-03-28_at_16.44.01.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/5aabb6f-cloudsmith-azure-ad-8.png b/src/content/authentication/images/single-sign-on-with-azure-ad/5aabb6f-cloudsmith-azure-ad-8.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/5aabb6f-cloudsmith-azure-ad-8.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/5aabb6f-cloudsmith-azure-ad-8.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/66f29c5-cloudsmith-azure-ad-7.png b/src/content/authentication/images/single-sign-on-with-azure-ad/66f29c5-cloudsmith-azure-ad-7.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/66f29c5-cloudsmith-azure-ad-7.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/66f29c5-cloudsmith-azure-ad-7.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/6a260ed-cloudsmith-azure-ad-11.png b/src/content/authentication/images/single-sign-on-with-azure-ad/6a260ed-cloudsmith-azure-ad-11.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/6a260ed-cloudsmith-azure-ad-11.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/6a260ed-cloudsmith-azure-ad-11.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/6a5ba58-cloudsmith-azure-ad-9.png b/src/content/authentication/images/single-sign-on-with-azure-ad/6a5ba58-cloudsmith-azure-ad-9.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/6a5ba58-cloudsmith-azure-ad-9.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/6a5ba58-cloudsmith-azure-ad-9.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/6e7cf72-Screenshot_2023-03-28_at_16.36.00.png b/src/content/authentication/images/single-sign-on-with-azure-ad/6e7cf72-Screenshot_2023-03-28_at_16.36.00.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/6e7cf72-Screenshot_2023-03-28_at_16.36.00.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/6e7cf72-Screenshot_2023-03-28_at_16.36.00.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/76a302f-cloudsmith-azure-ad-4.png b/src/content/authentication/images/single-sign-on-with-azure-ad/76a302f-cloudsmith-azure-ad-4.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/76a302f-cloudsmith-azure-ad-4.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/76a302f-cloudsmith-azure-ad-4.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/7b4aac5-Screenshot_2023-04-04_at_13.36.03.png b/src/content/authentication/images/single-sign-on-with-azure-ad/7b4aac5-Screenshot_2023-04-04_at_13.36.03.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/7b4aac5-Screenshot_2023-04-04_at_13.36.03.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/7b4aac5-Screenshot_2023-04-04_at_13.36.03.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/8172851-Screenshot_2023-03-28_at_16.34.31.png b/src/content/authentication/images/single-sign-on-with-azure-ad/8172851-Screenshot_2023-03-28_at_16.34.31.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/8172851-Screenshot_2023-03-28_at_16.34.31.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/8172851-Screenshot_2023-03-28_at_16.34.31.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/83b07ab-Screenshot_2023-04-04_at_13.42.02.png b/src/content/authentication/images/single-sign-on-with-azure-ad/83b07ab-Screenshot_2023-04-04_at_13.42.02.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/83b07ab-Screenshot_2023-04-04_at_13.42.02.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/83b07ab-Screenshot_2023-04-04_at_13.42.02.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/8bac474-cloudsmith-azure-ad-3.png b/src/content/authentication/images/single-sign-on-with-azure-ad/8bac474-cloudsmith-azure-ad-3.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/8bac474-cloudsmith-azure-ad-3.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/8bac474-cloudsmith-azure-ad-3.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/9259a0d-Screenshot_2023-04-04_at_13.43.25.png b/src/content/authentication/images/single-sign-on-with-azure-ad/9259a0d-Screenshot_2023-04-04_at_13.43.25.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/9259a0d-Screenshot_2023-04-04_at_13.43.25.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/9259a0d-Screenshot_2023-04-04_at_13.43.25.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/97a8b842ef1d4f9591593e89e33727e0dd89279dc81ef9a4ea51dee493ee2df0-app.cloudsmith.com_demo_logsiPad_Pro_2.png b/src/content/authentication/images/single-sign-on-with-azure-ad/97a8b842ef1d4f9591593e89e33727e0dd89279dc81ef9a4ea51dee493ee2df0-app.cloudsmith.com_demo_logsiPad_Pro_2.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/97a8b842ef1d4f9591593e89e33727e0dd89279dc81ef9a4ea51dee493ee2df0-app.cloudsmith.com_demo_logsiPad_Pro_2.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/97a8b842ef1d4f9591593e89e33727e0dd89279dc81ef9a4ea51dee493ee2df0-app.cloudsmith.com_demo_logsiPad_Pro_2.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/9bcf573-Screenshot_2023-04-04_at_13.31.53.png b/src/content/authentication/images/single-sign-on-with-azure-ad/9bcf573-Screenshot_2023-04-04_at_13.31.53.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/9bcf573-Screenshot_2023-04-04_at_13.31.53.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/9bcf573-Screenshot_2023-04-04_at_13.31.53.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/c5faa5f-cloudsmith-azure-ad-2.png b/src/content/authentication/images/single-sign-on-with-azure-ad/c5faa5f-cloudsmith-azure-ad-2.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/c5faa5f-cloudsmith-azure-ad-2.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/c5faa5f-cloudsmith-azure-ad-2.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/d168a64-cloudsmith-azure-ad-10.png b/src/content/authentication/images/single-sign-on-with-azure-ad/d168a64-cloudsmith-azure-ad-10.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/d168a64-cloudsmith-azure-ad-10.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/d168a64-cloudsmith-azure-ad-10.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/dff57a3-Screenshot_2023-03-28_at_16.39.27.png b/src/content/authentication/images/single-sign-on-with-azure-ad/dff57a3-Screenshot_2023-03-28_at_16.39.27.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/dff57a3-Screenshot_2023-03-28_at_16.39.27.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/dff57a3-Screenshot_2023-03-28_at_16.39.27.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/eed4fe7-cloudsmith-azure-ad-1.png b/src/content/authentication/images/single-sign-on-with-azure-ad/eed4fe7-cloudsmith-azure-ad-1.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/eed4fe7-cloudsmith-azure-ad-1.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/eed4fe7-cloudsmith-azure-ad-1.png diff --git a/src/content/access-control/images/single-sign-on-with-azure-ad/fc07a79-cloudsmith-azure-ad-12.png b/src/content/authentication/images/single-sign-on-with-azure-ad/fc07a79-cloudsmith-azure-ad-12.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-azure-ad/fc07a79-cloudsmith-azure-ad-12.png rename to src/content/authentication/images/single-sign-on-with-azure-ad/fc07a79-cloudsmith-azure-ad-12.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/0a5217f-google_saml_10.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/0a5217f-google_saml_10.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/0a5217f-google_saml_10.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/0a5217f-google_saml_10.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/203582c-google_saml_5.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/203582c-google_saml_5.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/203582c-google_saml_5.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/203582c-google_saml_5.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/3ba9431-google_saml_4.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/3ba9431-google_saml_4.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/3ba9431-google_saml_4.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/3ba9431-google_saml_4.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/4cd854e-google_saml_1.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/4cd854e-google_saml_1.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/4cd854e-google_saml_1.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/4cd854e-google_saml_1.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/6a3220e-google_saml_3.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/6a3220e-google_saml_3.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/6a3220e-google_saml_3.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/6a3220e-google_saml_3.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/728af64-google_saml_8.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/728af64-google_saml_8.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/728af64-google_saml_8.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/728af64-google_saml_8.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/cefc6ab-google_saml_2.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/cefc6ab-google_saml_2.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/cefc6ab-google_saml_2.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/cefc6ab-google_saml_2.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/eefccf6-google_saml_6.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/eefccf6-google_saml_6.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/eefccf6-google_saml_6.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/eefccf6-google_saml_6.png diff --git a/src/content/access-control/images/single-sign-on-with-google-g-suite/f9643b3-google_saml_7.png b/src/content/authentication/images/single-sign-on-with-google-g-suite/f9643b3-google_saml_7.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-google-g-suite/f9643b3-google_saml_7.png rename to src/content/authentication/images/single-sign-on-with-google-g-suite/f9643b3-google_saml_7.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/010954d-HngkhoO.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/010954d-HngkhoO.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/010954d-HngkhoO.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/010954d-HngkhoO.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/12f15d0-eyaqxsG.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/12f15d0-eyaqxsG.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/12f15d0-eyaqxsG.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/12f15d0-eyaqxsG.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/14d937d-Screen_Shot_2019-07-31_at_09.29.21.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/14d937d-Screen_Shot_2019-07-31_at_09.29.21.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/14d937d-Screen_Shot_2019-07-31_at_09.29.21.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/14d937d-Screen_Shot_2019-07-31_at_09.29.21.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/4b4ae82-f5U5xlF.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/4b4ae82-f5U5xlF.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/4b4ae82-f5U5xlF.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/4b4ae82-f5U5xlF.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/4bbef67-9T6Ib4y.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/4bbef67-9T6Ib4y.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/4bbef67-9T6Ib4y.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/4bbef67-9T6Ib4y.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/4f06940-YNKiBAY.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/4f06940-YNKiBAY.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/4f06940-YNKiBAY.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/4f06940-YNKiBAY.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/5705a68-EvV1GHE.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/5705a68-EvV1GHE.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/5705a68-EvV1GHE.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/5705a68-EvV1GHE.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/6807aa0-HVGiBNc.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/6807aa0-HVGiBNc.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/6807aa0-HVGiBNc.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/6807aa0-HVGiBNc.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/6ac1691-dne84If.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/6ac1691-dne84If.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/6ac1691-dne84If.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/6ac1691-dne84If.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/78a10a8-MJw13iE.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/78a10a8-MJw13iE.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/78a10a8-MJw13iE.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/78a10a8-MJw13iE.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/7fddf0b-RaB77x7.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/7fddf0b-RaB77x7.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/7fddf0b-RaB77x7.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/7fddf0b-RaB77x7.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/8e49768-hAcXDjT.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/8e49768-hAcXDjT.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/8e49768-hAcXDjT.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/8e49768-hAcXDjT.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/b5ded7f-gSKo4qI.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/b5ded7f-gSKo4qI.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/b5ded7f-gSKo4qI.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/b5ded7f-gSKo4qI.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/c1598b2-pipFfKJ.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/c1598b2-pipFfKJ.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/c1598b2-pipFfKJ.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/c1598b2-pipFfKJ.png diff --git a/src/content/access-control/images/single-sign-on-with-jumpcloud/c7d5fa2-tCKJUzh.png b/src/content/authentication/images/single-sign-on-with-jumpcloud/c7d5fa2-tCKJUzh.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-jumpcloud/c7d5fa2-tCKJUzh.png rename to src/content/authentication/images/single-sign-on-with-jumpcloud/c7d5fa2-tCKJUzh.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/03aa91ea5a1b2107d0582299e5bbc1e9904eea098733f1dbec45afd5ab65009b-sso-okta-scim-edited.png b/src/content/authentication/images/single-sign-on-with-okta/03aa91ea5a1b2107d0582299e5bbc1e9904eea098733f1dbec45afd5ab65009b-sso-okta-scim-edited.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/03aa91ea5a1b2107d0582299e5bbc1e9904eea098733f1dbec45afd5ab65009b-sso-okta-scim-edited.png rename to src/content/authentication/images/single-sign-on-with-okta/03aa91ea5a1b2107d0582299e5bbc1e9904eea098733f1dbec45afd5ab65009b-sso-okta-scim-edited.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/04b7376-image.png b/src/content/authentication/images/single-sign-on-with-okta/04b7376-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/04b7376-image.png rename to src/content/authentication/images/single-sign-on-with-okta/04b7376-image.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/1430b35-image.png b/src/content/authentication/images/single-sign-on-with-okta/1430b35-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/1430b35-image.png rename to src/content/authentication/images/single-sign-on-with-okta/1430b35-image.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/3d740f0-okta-create-app-integration-sttribute-statements.png b/src/content/authentication/images/single-sign-on-with-okta/3d740f0-okta-create-app-integration-sttribute-statements.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/3d740f0-okta-create-app-integration-sttribute-statements.png rename to src/content/authentication/images/single-sign-on-with-okta/3d740f0-okta-create-app-integration-sttribute-statements.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/48b6395-okta-create-app-integration-step1.png b/src/content/authentication/images/single-sign-on-with-okta/48b6395-okta-create-app-integration-step1.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/48b6395-okta-create-app-integration-step1.png rename to src/content/authentication/images/single-sign-on-with-okta/48b6395-okta-create-app-integration-step1.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/4e5b80b-okta-create-app-integration-step2.png b/src/content/authentication/images/single-sign-on-with-okta/4e5b80b-okta-create-app-integration-step2.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/4e5b80b-okta-create-app-integration-step2.png rename to src/content/authentication/images/single-sign-on-with-okta/4e5b80b-okta-create-app-integration-step2.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/636281f-okta-saml-metadata.png b/src/content/authentication/images/single-sign-on-with-okta/636281f-okta-saml-metadata.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/636281f-okta-saml-metadata.png rename to src/content/authentication/images/single-sign-on-with-okta/636281f-okta-saml-metadata.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/6476b61-okta-create-app-integration-modal.png b/src/content/authentication/images/single-sign-on-with-okta/6476b61-okta-create-app-integration-modal.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/6476b61-okta-create-app-integration-modal.png rename to src/content/authentication/images/single-sign-on-with-okta/6476b61-okta-create-app-integration-modal.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/93fc9ed-To_app.png b/src/content/authentication/images/single-sign-on-with-okta/93fc9ed-To_app.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/93fc9ed-To_app.png rename to src/content/authentication/images/single-sign-on-with-okta/93fc9ed-To_app.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/a4625db-Provisioning.png b/src/content/authentication/images/single-sign-on-with-okta/a4625db-Provisioning.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/a4625db-Provisioning.png rename to src/content/authentication/images/single-sign-on-with-okta/a4625db-Provisioning.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/aa6b34a-image.png b/src/content/authentication/images/single-sign-on-with-okta/aa6b34a-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/aa6b34a-image.png rename to src/content/authentication/images/single-sign-on-with-okta/aa6b34a-image.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png b/src/content/authentication/images/single-sign-on-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png rename to src/content/authentication/images/single-sign-on-with-okta/ae20261-Screenshot_2022-11-15_at_10.00.08.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/c6fa9a9-okta-create-app-integration.png b/src/content/authentication/images/single-sign-on-with-okta/c6fa9a9-okta-create-app-integration.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/c6fa9a9-okta-create-app-integration.png rename to src/content/authentication/images/single-sign-on-with-okta/c6fa9a9-okta-create-app-integration.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/d1568be-image.png b/src/content/authentication/images/single-sign-on-with-okta/d1568be-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/d1568be-image.png rename to src/content/authentication/images/single-sign-on-with-okta/d1568be-image.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/d48b24a-okta-assign-people.png b/src/content/authentication/images/single-sign-on-with-okta/d48b24a-okta-assign-people.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/d48b24a-okta-assign-people.png rename to src/content/authentication/images/single-sign-on-with-okta/d48b24a-okta-assign-people.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/e16e76b-okta-create-app-integration-step3.png b/src/content/authentication/images/single-sign-on-with-okta/e16e76b-okta-create-app-integration-step3.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/e16e76b-okta-create-app-integration-step3.png rename to src/content/authentication/images/single-sign-on-with-okta/e16e76b-okta-create-app-integration-step3.png diff --git a/src/content/access-control/images/single-sign-on-with-okta/f644e56a69fe3fea8d0371a39d146a7ce36412a4fc498f1dfd88f5633b7bb368-sso-with-okta-screenshot4.png b/src/content/authentication/images/single-sign-on-with-okta/f644e56a69fe3fea8d0371a39d146a7ce36412a4fc498f1dfd88f5633b7bb368-sso-with-okta-screenshot4.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-okta/f644e56a69fe3fea8d0371a39d146a7ce36412a4fc498f1dfd88f5633b7bb368-sso-with-okta-screenshot4.png rename to src/content/authentication/images/single-sign-on-with-okta/f644e56a69fe3fea8d0371a39d146a7ce36412a4fc498f1dfd88f5633b7bb368-sso-with-okta-screenshot4.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/0027387-cloudsmith-one-login-4.png b/src/content/authentication/images/single-sign-on-with-onelogin/0027387-cloudsmith-one-login-4.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/0027387-cloudsmith-one-login-4.png rename to src/content/authentication/images/single-sign-on-with-onelogin/0027387-cloudsmith-one-login-4.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/08c9329-image.png b/src/content/authentication/images/single-sign-on-with-onelogin/08c9329-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/08c9329-image.png rename to src/content/authentication/images/single-sign-on-with-onelogin/08c9329-image.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/21f39b8-Screen_Shot_2019-07-16_at_00.26.21.png b/src/content/authentication/images/single-sign-on-with-onelogin/21f39b8-Screen_Shot_2019-07-16_at_00.26.21.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/21f39b8-Screen_Shot_2019-07-16_at_00.26.21.png rename to src/content/authentication/images/single-sign-on-with-onelogin/21f39b8-Screen_Shot_2019-07-16_at_00.26.21.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/24cfb10-1.png b/src/content/authentication/images/single-sign-on-with-onelogin/24cfb10-1.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/24cfb10-1.png rename to src/content/authentication/images/single-sign-on-with-onelogin/24cfb10-1.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/32b32f1-cloudsmith-one-login-14.png b/src/content/authentication/images/single-sign-on-with-onelogin/32b32f1-cloudsmith-one-login-14.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/32b32f1-cloudsmith-one-login-14.png rename to src/content/authentication/images/single-sign-on-with-onelogin/32b32f1-cloudsmith-one-login-14.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/34b72c5-cloudsmith-one-login-2.png b/src/content/authentication/images/single-sign-on-with-onelogin/34b72c5-cloudsmith-one-login-2.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/34b72c5-cloudsmith-one-login-2.png rename to src/content/authentication/images/single-sign-on-with-onelogin/34b72c5-cloudsmith-one-login-2.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/3e15f56-cloudsmith-one-login-6.png b/src/content/authentication/images/single-sign-on-with-onelogin/3e15f56-cloudsmith-one-login-6.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/3e15f56-cloudsmith-one-login-6.png rename to src/content/authentication/images/single-sign-on-with-onelogin/3e15f56-cloudsmith-one-login-6.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/43482ad-cloudsmith-one-login-13.png b/src/content/authentication/images/single-sign-on-with-onelogin/43482ad-cloudsmith-one-login-13.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/43482ad-cloudsmith-one-login-13.png rename to src/content/authentication/images/single-sign-on-with-onelogin/43482ad-cloudsmith-one-login-13.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/82cb58d-cloudsmith-one-login-1.png b/src/content/authentication/images/single-sign-on-with-onelogin/82cb58d-cloudsmith-one-login-1.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/82cb58d-cloudsmith-one-login-1.png rename to src/content/authentication/images/single-sign-on-with-onelogin/82cb58d-cloudsmith-one-login-1.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/86bddab-cloudsmith-one-login-3.png b/src/content/authentication/images/single-sign-on-with-onelogin/86bddab-cloudsmith-one-login-3.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/86bddab-cloudsmith-one-login-3.png rename to src/content/authentication/images/single-sign-on-with-onelogin/86bddab-cloudsmith-one-login-3.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/9e74fe9-cloudsmith-one-login-9.png b/src/content/authentication/images/single-sign-on-with-onelogin/9e74fe9-cloudsmith-one-login-9.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/9e74fe9-cloudsmith-one-login-9.png rename to src/content/authentication/images/single-sign-on-with-onelogin/9e74fe9-cloudsmith-one-login-9.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/adeced6-cloudsmith-one-login-7.png b/src/content/authentication/images/single-sign-on-with-onelogin/adeced6-cloudsmith-one-login-7.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/adeced6-cloudsmith-one-login-7.png rename to src/content/authentication/images/single-sign-on-with-onelogin/adeced6-cloudsmith-one-login-7.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/af16926-11.png b/src/content/authentication/images/single-sign-on-with-onelogin/af16926-11.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/af16926-11.png rename to src/content/authentication/images/single-sign-on-with-onelogin/af16926-11.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/fa71597-cloudsmith-one-login-12.png b/src/content/authentication/images/single-sign-on-with-onelogin/fa71597-cloudsmith-one-login-12.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/fa71597-cloudsmith-one-login-12.png rename to src/content/authentication/images/single-sign-on-with-onelogin/fa71597-cloudsmith-one-login-12.png diff --git a/src/content/access-control/images/single-sign-on-with-onelogin/faf1d96-cloudsmith-one-login-11.png b/src/content/authentication/images/single-sign-on-with-onelogin/faf1d96-cloudsmith-one-login-11.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-onelogin/faf1d96-cloudsmith-one-login-11.png rename to src/content/authentication/images/single-sign-on-with-onelogin/faf1d96-cloudsmith-one-login-11.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/037b994-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/037b994-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/037b994-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/037b994-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/369108b-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/369108b-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/369108b-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/369108b-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/3ee4f20-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/3ee4f20-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/3ee4f20-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/3ee4f20-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/46c256b-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/46c256b-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/46c256b-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/46c256b-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/7b732ce-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/7b732ce-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/7b732ce-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/7b732ce-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/9d8334a-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/9d8334a-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/9d8334a-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/9d8334a-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/a994b78-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/a994b78-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/a994b78-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/a994b78-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/cd3fbde-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/cd3fbde-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/cd3fbde-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/cd3fbde-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/f51a2c5-image.png b/src/content/authentication/images/single-sign-on-with-pingidentity/f51a2c5-image.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/f51a2c5-image.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/f51a2c5-image.png diff --git a/src/content/access-control/images/single-sign-on-with-pingidentity/groups.png b/src/content/authentication/images/single-sign-on-with-pingidentity/groups.png similarity index 100% rename from src/content/access-control/images/single-sign-on-with-pingidentity/groups.png rename to src/content/authentication/images/single-sign-on-with-pingidentity/groups.png diff --git a/src/content/access-control/images/single-sign-on/0cbfea8-SAML-Group-Sync-Enable.png b/src/content/authentication/images/single-sign-on/0cbfea8-SAML-Group-Sync-Enable.png similarity index 100% rename from src/content/access-control/images/single-sign-on/0cbfea8-SAML-Group-Sync-Enable.png rename to src/content/authentication/images/single-sign-on/0cbfea8-SAML-Group-Sync-Enable.png diff --git a/src/content/access-control/images/single-sign-on/3025e50-create-mapping-form.png b/src/content/authentication/images/single-sign-on/3025e50-create-mapping-form.png similarity index 100% rename from src/content/access-control/images/single-sign-on/3025e50-create-mapping-form.png rename to src/content/authentication/images/single-sign-on/3025e50-create-mapping-form.png diff --git a/src/content/access-control/images/single-sign-on/d13efaf-SAML-Group-Sync-Create.png b/src/content/authentication/images/single-sign-on/d13efaf-SAML-Group-Sync-Create.png similarity index 100% rename from src/content/access-control/images/single-sign-on/d13efaf-SAML-Group-Sync-Create.png rename to src/content/authentication/images/single-sign-on/d13efaf-SAML-Group-Sync-Create.png diff --git a/src/content/access-control/images/single-sign-on/f5f6a37-Saml-setup.png b/src/content/authentication/images/single-sign-on/f5f6a37-Saml-setup.png similarity index 100% rename from src/content/access-control/images/single-sign-on/f5f6a37-Saml-setup.png rename to src/content/authentication/images/single-sign-on/f5f6a37-Saml-setup.png diff --git a/src/content/access-control/images/two-factor-authentication/18eba4db98546831e2b0ff8daf7f41b058b27c656b6fc8b417973d037b40fcd0-Screenshot_2024-10-18_at_22.41.19.png b/src/content/authentication/images/two-factor-authentication/18eba4db98546831e2b0ff8daf7f41b058b27c656b6fc8b417973d037b40fcd0-Screenshot_2024-10-18_at_22.41.19.png similarity index 100% rename from src/content/access-control/images/two-factor-authentication/18eba4db98546831e2b0ff8daf7f41b058b27c656b6fc8b417973d037b40fcd0-Screenshot_2024-10-18_at_22.41.19.png rename to src/content/authentication/images/two-factor-authentication/18eba4db98546831e2b0ff8daf7f41b058b27c656b6fc8b417973d037b40fcd0-Screenshot_2024-10-18_at_22.41.19.png diff --git a/src/content/access-control/images/two-factor-authentication/24f0bbc76e7cafb2884c549324b3afc3de9b9ebccb6fec9cef8f4dd3cbe64bd4-Screenshot_2024-10-18_at_22.39.03.png b/src/content/authentication/images/two-factor-authentication/24f0bbc76e7cafb2884c549324b3afc3de9b9ebccb6fec9cef8f4dd3cbe64bd4-Screenshot_2024-10-18_at_22.39.03.png similarity index 100% rename from src/content/access-control/images/two-factor-authentication/24f0bbc76e7cafb2884c549324b3afc3de9b9ebccb6fec9cef8f4dd3cbe64bd4-Screenshot_2024-10-18_at_22.39.03.png rename to src/content/authentication/images/two-factor-authentication/24f0bbc76e7cafb2884c549324b3afc3de9b9ebccb6fec9cef8f4dd3cbe64bd4-Screenshot_2024-10-18_at_22.39.03.png diff --git a/src/content/access-control/images/two-factor-authentication/771f8628256acdf27eb960109eada54ac2515497fe27feb4b512a3be169253d5-Screenshot_2024-10-18_at_22.37.36.png b/src/content/authentication/images/two-factor-authentication/771f8628256acdf27eb960109eada54ac2515497fe27feb4b512a3be169253d5-Screenshot_2024-10-18_at_22.37.36.png similarity index 100% rename from src/content/access-control/images/two-factor-authentication/771f8628256acdf27eb960109eada54ac2515497fe27feb4b512a3be169253d5-Screenshot_2024-10-18_at_22.37.36.png rename to src/content/authentication/images/two-factor-authentication/771f8628256acdf27eb960109eada54ac2515497fe27feb4b512a3be169253d5-Screenshot_2024-10-18_at_22.37.36.png diff --git a/src/content/authentication/index.mdx b/src/content/authentication/index.mdx new file mode 100644 index 00000000..cbe80412 --- /dev/null +++ b/src/content/authentication/index.mdx @@ -0,0 +1,50 @@ +import { Note, BlockImage } from '@/components' + +import img_auth_settings from './images/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png' +import img_saml from './images/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png' +import img_saml_group_sync from './images/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png' +import img_scim from './images/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png' + +# Authentication + +In software, **authentication** refers to the process of verifying the identity of a user or agent. It's a crucial security measure to ensure that only authorized entities can access systems and its resources. Essentially, authentication confirms that someone or something is who or what they claim to be. + +In the next pages you can find more information about how to: + +- Set up and enforce SAML authentication +- Configure and modify SAML Group Sync +- Configure and modify SCIM +- Enforce two-factor authentication +- Create and manage OIDC provider settings + + + +Cloudsmith offers several methods for user authentication to integrate with your existing Identity Provider (IdP) and allow you to define _who_ can access _what_. + +## Supported Protocols + +- Security Assertion Markup Language (SAML) +- System for Cross-domain Identity Management (SCIM) +- OpenID Connect + +### SAML + +Workspace SAML settings is where you can enable and enforce SAML authentication. To enable SAML Authentication, you just need to either provide a URL to remote fetch your SAML XML Metadata, or provide the SAML XML Metadata directly inline using the form. + + + +#### SAML Group Sync + +SAML Group Sync is where you can configure automatic mapping of your SAML Groups to Cloudsmith Teams. Please see the [SAML Group Sync](/authentication/single-sign-on#saml-group-sync) documentation for further details. + + + +### SCIM + +SCIM is where you can enable SCIM provisioning and de-provisioning and obtain your username and password to configure SCIM in your chosen Identity Provider. Please see the [Single Sign-On with Okta](/authentication/single-sign-on-with-okta) documentation for an example of how you can configure SCIM for an Identity Provider. + + + +### 2FA + +Workspace 2FA is where you can enable Two-Factor Authentication. This will force members to set up Two-Factor Authentication for additional security. diff --git a/src/content/access-control/openid-connect.mdx b/src/content/authentication/openid-connect.mdx similarity index 99% rename from src/content/access-control/openid-connect.mdx rename to src/content/authentication/openid-connect.mdx index 9e1fd329..8ce3c360 100644 --- a/src/content/access-control/openid-connect.mdx +++ b/src/content/authentication/openid-connect.mdx @@ -113,7 +113,7 @@ Changes will be applied immediately. - There is [an extra step](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#updating-your-actions-for-oidc) to generate an OpenID Token compared to CircleCI - this needs to be done before sending the token to us. - Because the keys used to verify the token are shared across all GitHub Actions for all organizations, at least one claim verification is _strongly_ encouraged so that only jobs from your GitHub organization can authenticate. If only one claim is being configured, then the audience claim (`aud`) is probably best for this as it scopes it to your GitHub organization's requests. -- See [Setup GitHub Actions to authenticate to Cloudsmith using OIDC](/access-control/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions) for a step-by-step guide. +- See [Setup GitHub Actions to authenticate to Cloudsmith using OIDC](/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions) for a step-by-step guide. ## OIDC Requests @@ -196,7 +196,7 @@ jobs: echo "OIDC token from Cloudsmith: $jwt" ``` -For further details on configuring Github Actions for OIDC see the guide [here](/access-control/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions). +For further details on configuring Github Actions for OIDC see the guide [here](/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions). #### CircleCI Example diff --git a/src/content/authentication/saml.mdx b/src/content/authentication/saml.mdx new file mode 100644 index 00000000..373d585d --- /dev/null +++ b/src/content/authentication/saml.mdx @@ -0,0 +1,8 @@ + +# SAML + +Security Assertion Markup Language (SAML) is an open standard that allows Identity Providers (IdP), such as Okta, to pass authorization credentials to Service Providers (SP), such as Cloudsmith. Basically, your users can authenticate using a Single Sign-On (SSO) source that you control, which is more secure. + +rellenar con David + +# SAML Group Sync \ No newline at end of file diff --git a/src/content/access-control/scim-with-google.mdx b/src/content/authentication/scim-with-google.mdx similarity index 100% rename from src/content/access-control/scim-with-google.mdx rename to src/content/authentication/scim-with-google.mdx diff --git a/src/content/access-control/scim-with-jumpcloud.mdx b/src/content/authentication/scim-with-jumpcloud.mdx similarity index 100% rename from src/content/access-control/scim-with-jumpcloud.mdx rename to src/content/authentication/scim-with-jumpcloud.mdx diff --git a/src/content/access-control/scim-with-microsoft-entra-id.mdx b/src/content/authentication/scim-with-microsoft-entra-id.mdx similarity index 100% rename from src/content/access-control/scim-with-microsoft-entra-id.mdx rename to src/content/authentication/scim-with-microsoft-entra-id.mdx diff --git a/src/content/access-control/scim-with-okta.mdx b/src/content/authentication/scim-with-okta.mdx similarity index 100% rename from src/content/access-control/scim-with-okta.mdx rename to src/content/authentication/scim-with-okta.mdx diff --git a/src/content/access-control/scim-with-onelogin.mdx b/src/content/authentication/scim-with-onelogin.mdx similarity index 100% rename from src/content/access-control/scim-with-onelogin.mdx rename to src/content/authentication/scim-with-onelogin.mdx diff --git a/src/content/access-control/scim-with-pingfederate.mdx b/src/content/authentication/scim-with-pingfederate.mdx similarity index 100% rename from src/content/access-control/scim-with-pingfederate.mdx rename to src/content/authentication/scim-with-pingfederate.mdx diff --git a/src/content/access-control/scim.mdx b/src/content/authentication/scim.mdx similarity index 69% rename from src/content/access-control/scim.mdx rename to src/content/authentication/scim.mdx index 9fea8e6c..e9bd5d4a 100644 --- a/src/content/access-control/scim.mdx +++ b/src/content/authentication/scim.mdx @@ -8,11 +8,11 @@ SCIM, or System for Cross-domain Identity Management, is an open standard design Whilst Cloudsmith should work with any generic SCIM IdP, we officially support and provide documentation for a number of the most common providers. Please see below for the guides for each officially supported provider: -- [Okta](/access-control/scim-with-okta) -- [Microsoft Entra ID](/access-control/scim-with-microsoft-entra-id) -- [PingFederate](/access-control/scim-with-pingfederate) -- [Google](/access-control/scim-with-google) -- [JumpCloud](/access-control/single-sign-on-with-jumpcloud) -- [OneLogin](/access-control/single-sign-on-with-onelogin) +- [Okta](/authentication/scim-with-okta) +- [Microsoft Entra ID](/authentication/scim-with-microsoft-entra-id) +- [PingFederate](/authentication/scim-with-pingfederate) +- [Google](/authentication/scim-with-google) +- [JumpCloud](/authentication/single-sign-on-with-jumpcloud) +- [OneLogin](/authentication/single-sign-on-with-onelogin) Other providers may be supported. If you need help with an unlisted integration, you can still contact us. diff --git a/src/content/access-control/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx b/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx similarity index 100% rename from src/content/access-control/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx rename to src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx diff --git a/src/content/access-control/single-sign-on-with-azure-ad.mdx b/src/content/authentication/single-sign-on-with-azure-ad.mdx similarity index 98% rename from src/content/access-control/single-sign-on-with-azure-ad.mdx rename to src/content/authentication/single-sign-on-with-azure-ad.mdx index df2af540..c733dd98 100644 --- a/src/content/access-control/single-sign-on-with-azure-ad.mdx +++ b/src/content/authentication/single-sign-on-with-azure-ad.mdx @@ -105,7 +105,7 @@ Once configured as above, you'll need to provide metadata to Cloudsmith to conne Go back to the **Single sign-on** tab in the sidebar, you should see, in section **3 (SAML Signing Certificate)** a link that provides metadata for dynamic configuration, it is labelled **App Federation Metadata Url**. -Copy this link and add it to your SAML configuration in your [Cloudsmith organization settings](/access-control/single-sign-on#enable-saml) +Copy this link and add it to your SAML configuration in your [Cloudsmith organization settings](/authentication/single-sign-on#enable-saml) @@ -153,7 +153,7 @@ Now when a user re-logs with SAML, they will be placed in the assigned group bas You can use SCIM to automatically de-provision users from your Cloudsmith organization whenever you remove a user assignment for the Cloudsmith application in Azure AD. -General documentation on how SAML group sync works can be found [here](/access-control/single-sign-on#saml-group-sync). +General documentation on how SAML group sync works can be found [here](/authentication/single-sign-on#saml-group-sync). To set this up, you need to add an "Enterprise application" to your Active Directory on Azure: diff --git a/src/content/access-control/single-sign-on-with-google-g-suite.mdx b/src/content/authentication/single-sign-on-with-google-g-suite.mdx similarity index 98% rename from src/content/access-control/single-sign-on-with-google-g-suite.mdx rename to src/content/authentication/single-sign-on-with-google-g-suite.mdx index 028d585d..86fb832b 100644 --- a/src/content/access-control/single-sign-on-with-google-g-suite.mdx +++ b/src/content/authentication/single-sign-on-with-google-g-suite.mdx @@ -74,7 +74,7 @@ Your application is now configured on Google (G-Suite)! Google states that it ma ## Adding SAML configuration to Cloudsmith -Once configured as above, you'll need to add the IdP Metadata XML to the [SAML Settings](/access-control/single-sign-on#enable-saml) for your Cloudsmith organization. +Once configured as above, you'll need to add the IdP Metadata XML to the [SAML Settings](/authentication/single-sign-on#enable-saml) for your Cloudsmith organization. When you have added your IdP Metadata XML to your organization SAML settings and enabled SAML Authentication, you will be able to access the landing page of your organization at the following URL: https://cloudsmith.io/orgs/ORG/saml/login/ diff --git a/src/content/access-control/single-sign-on-with-jumpcloud.mdx b/src/content/authentication/single-sign-on-with-jumpcloud.mdx similarity index 97% rename from src/content/access-control/single-sign-on-with-jumpcloud.mdx rename to src/content/authentication/single-sign-on-with-jumpcloud.mdx index 933cef2d..f00fd707 100644 --- a/src/content/access-control/single-sign-on-with-jumpcloud.mdx +++ b/src/content/authentication/single-sign-on-with-jumpcloud.mdx @@ -97,7 +97,7 @@ At the bottom-right of the form, right beside the **Activate** button from the p -Take this file and add the XML contents to your [SAML settings](/access-control/single-sign-on#enable-saml) in your Cloudsmith organization. +Take this file and add the XML contents to your [SAML settings](/authentication/single-sign-on#enable-saml) in your Cloudsmith organization. ## All wrapped up! @@ -105,7 +105,7 @@ The Cloudsmith application should now appear on the JumpCloud portal as normal: -You can then enable SAML in your Cloudsmith [SAML settings](/access-control/single-sign-on#enable-saml). +You can then enable SAML in your Cloudsmith [SAML settings](/authentication/single-sign-on#enable-saml). You'll be able to access the landing page of your organization at the following URL: https://cloudsmith.io/orgs/ORG/saml/login/ diff --git a/src/content/access-control/single-sign-on-with-okta.mdx b/src/content/authentication/single-sign-on-with-okta.mdx similarity index 99% rename from src/content/access-control/single-sign-on-with-okta.mdx rename to src/content/authentication/single-sign-on-with-okta.mdx index e58c56be..93c1e48e 100644 --- a/src/content/access-control/single-sign-on-with-okta.mdx +++ b/src/content/authentication/single-sign-on-with-okta.mdx @@ -86,7 +86,7 @@ In the **Sign On** tab of your application management screen, you can see a link Copy this metadata and add it to your Cloudsmith organization [SAML settings](/getting-started/workspaces#saml-authentication) as Inline XML. -You can then [enable SAML authentication](/access-control/single-sign-on#enable-saml) in your Cloudsmith organization, and you can use Okta to begin logging in straight away. +You can then [enable SAML authentication](/authentication/single-sign-on#enable-saml) in your Cloudsmith organization, and you can use Okta to begin logging in straight away. You'll be able to access the landing page of your organization at the following URL: diff --git a/src/content/access-control/single-sign-on-with-onelogin.mdx b/src/content/authentication/single-sign-on-with-onelogin.mdx similarity index 98% rename from src/content/access-control/single-sign-on-with-onelogin.mdx rename to src/content/authentication/single-sign-on-with-onelogin.mdx index 2e30c69e..d8ab1288 100644 --- a/src/content/access-control/single-sign-on-with-onelogin.mdx +++ b/src/content/authentication/single-sign-on-with-onelogin.mdx @@ -121,13 +121,13 @@ In the **SSO** tab of your configuration screen you should see a link that provi -Copy this link and add it to your Cloudsmith organization [SAML settings](/access-control/single-sign-on#enable-saml). +Copy this link and add it to your Cloudsmith organization [SAML settings](/authentication/single-sign-on#enable-saml). ## All wrapped up! Your application should now appear on the OneLogin portal. -You can then enable SAML authentication in your Cloudsmith [SAML settings](/access-control/single-sign-on#enable-saml) and you can use OneLogin to begin logging in straight away. +You can then enable SAML authentication in your Cloudsmith [SAML settings](/authentication/single-sign-on#enable-saml) and you can use OneLogin to begin logging in straight away. You'll be able to access the landing page of your organization at the following URL: https://cloudsmith.io/orgs/ORG/saml/login/ diff --git a/src/content/access-control/single-sign-on-with-pingidentity.mdx b/src/content/authentication/single-sign-on-with-pingidentity.mdx similarity index 100% rename from src/content/access-control/single-sign-on-with-pingidentity.mdx rename to src/content/authentication/single-sign-on-with-pingidentity.mdx diff --git a/src/content/access-control/single-sign-on.mdx b/src/content/authentication/single-sign-on.mdx similarity index 92% rename from src/content/access-control/single-sign-on.mdx rename to src/content/authentication/single-sign-on.mdx index 95cdd118..3916d37d 100644 --- a/src/content/access-control/single-sign-on.mdx +++ b/src/content/authentication/single-sign-on.mdx @@ -20,12 +20,12 @@ Before configuring SSO with SAML, you'll need: Whilst Cloudsmith should work with any generic SAML IdP, we officially support and provide documentation for a number of the most common providers. Please see the below for guides for each officially supported provider: -- [Azure AD](/access-control/single-sign-on-with-azure-ad) -- [Google](/access-control/single-sign-on-with-google-g-suite) -- [JumpCloud](/access-control/single-sign-on-with-jumpcloud) -- [PingIdentity](/access-control/single-sign-on-with-pingidentity) -- [Okta](/access-control/single-sign-on-with-okta) -- [OneLogin](/access-control/single-sign-on-with-onelogin) +- [Azure AD](/authentication/single-sign-on-with-azure-ad) +- [Google](/authentication/single-sign-on-with-google-g-suite) +- [JumpCloud](/authentication/single-sign-on-with-jumpcloud) +- [PingIdentity](/authentication/single-sign-on-with-pingidentity) +- [Okta](/authentication/single-sign-on-with-okta) +- [OneLogin](/authentication/single-sign-on-with-onelogin) Other providers may be supported if they can set up a generic SAML application. If you need help with an unlisted integration, you can still contact us! diff --git a/src/content/access-control/two-factor-authentication.mdx b/src/content/authentication/two-factor-authentication.mdx similarity index 100% rename from src/content/access-control/two-factor-authentication.mdx rename to src/content/authentication/two-factor-authentication.mdx diff --git a/src/content/getting-started/cli.mdx b/src/content/developer-tools/cli.mdx similarity index 99% rename from src/content/getting-started/cli.mdx rename to src/content/developer-tools/cli.mdx index e021dfbd..666e05ed 100644 --- a/src/content/getting-started/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -9,7 +9,7 @@ The Cloudsmith Command Line Interface (CLI) is a Py2/Py3 text-based interface to You can install the latest CLI application from: - [Cloudsmith](https://cloudsmith.io/~cloudsmith/repos/cli/packages/) -- [PyPi](https://pypi.python.org/pypi/cloudsmith-cli)-
+- [PyPi](https://pypi.python.org/pypi/cloudsmith-cli) - [Homebrew Tap](https://github.com/cloudsmith-io/homebrew-cloudsmith-cli) The easiest way is to use `pip`, such as: diff --git a/src/content/developer-community.mdx b/src/content/developer-tools/developer-community.mdx similarity index 100% rename from src/content/developer-community.mdx rename to src/content/developer-tools/developer-community.mdx diff --git a/src/content/logs-and-observability/images/webhooks/6adb4ba1d613130b189d51b01a8f4c822c4736ff2b5adfb21e9bd06bbac194fb-repo-create-webhook-form.png b/src/content/developer-tools/images/webhooks/6adb4ba1d613130b189d51b01a8f4c822c4736ff2b5adfb21e9bd06bbac194fb-repo-create-webhook-form.png similarity index 100% rename from src/content/logs-and-observability/images/webhooks/6adb4ba1d613130b189d51b01a8f4c822c4736ff2b5adfb21e9bd06bbac194fb-repo-create-webhook-form.png rename to src/content/developer-tools/images/webhooks/6adb4ba1d613130b189d51b01a8f4c822c4736ff2b5adfb21e9bd06bbac194fb-repo-create-webhook-form.png diff --git a/src/content/logs-and-observability/images/webhooks/7f726346decc16da9b7ca0d8b0002086c1e3b8d8c5ab2f8a8ee69fca211bbc6d-repo-webhook-package-query.png b/src/content/developer-tools/images/webhooks/7f726346decc16da9b7ca0d8b0002086c1e3b8d8c5ab2f8a8ee69fca211bbc6d-repo-webhook-package-query.png similarity index 100% rename from src/content/logs-and-observability/images/webhooks/7f726346decc16da9b7ca0d8b0002086c1e3b8d8c5ab2f8a8ee69fca211bbc6d-repo-webhook-package-query.png rename to src/content/developer-tools/images/webhooks/7f726346decc16da9b7ca0d8b0002086c1e3b8d8c5ab2f8a8ee69fca211bbc6d-repo-webhook-package-query.png diff --git a/src/content/logs-and-observability/images/webhooks/9e4de38851049e47068ce50d0a291af3d6c961bb11a105f044ce644648743925-repo-webhook-example.png b/src/content/developer-tools/images/webhooks/9e4de38851049e47068ce50d0a291af3d6c961bb11a105f044ce644648743925-repo-webhook-example.png similarity index 100% rename from src/content/logs-and-observability/images/webhooks/9e4de38851049e47068ce50d0a291af3d6c961bb11a105f044ce644648743925-repo-webhook-example.png rename to src/content/developer-tools/images/webhooks/9e4de38851049e47068ce50d0a291af3d6c961bb11a105f044ce644648743925-repo-webhook-example.png diff --git a/src/content/logs-and-observability/images/webhooks/a34f5f079f0a7fb662a35f9e5b2a43721183085ad063fce09aa15e923f9d4854-repo-create-webhook.png b/src/content/developer-tools/images/webhooks/a34f5f079f0a7fb662a35f9e5b2a43721183085ad063fce09aa15e923f9d4854-repo-create-webhook.png similarity index 100% rename from src/content/logs-and-observability/images/webhooks/a34f5f079f0a7fb662a35f9e5b2a43721183085ad063fce09aa15e923f9d4854-repo-create-webhook.png rename to src/content/developer-tools/images/webhooks/a34f5f079f0a7fb662a35f9e5b2a43721183085ad063fce09aa15e923f9d4854-repo-create-webhook.png diff --git a/src/content/logs-and-observability/images/webhooks/e34a6a7-mission_successful.jpg b/src/content/developer-tools/images/webhooks/e34a6a7-mission_successful.jpg similarity index 100% rename from src/content/logs-and-observability/images/webhooks/e34a6a7-mission_successful.jpg rename to src/content/developer-tools/images/webhooks/e34a6a7-mission_successful.jpg diff --git a/src/content/developer-tools/index.mdx b/src/content/developer-tools/index.mdx new file mode 100644 index 00000000..e69de29b diff --git a/src/content/getting-started/terraform-provider.mdx b/src/content/developer-tools/terraform-provider.mdx similarity index 100% rename from src/content/getting-started/terraform-provider.mdx rename to src/content/developer-tools/terraform-provider.mdx diff --git a/src/content/logs-and-observability/webhooks.mdx b/src/content/developer-tools/webhooks.mdx similarity index 100% rename from src/content/logs-and-observability/webhooks.mdx rename to src/content/developer-tools/webhooks.mdx diff --git a/src/content/formats/cran-repository.mdx b/src/content/formats/cran-repository.mdx index d1f43f39..e4c2b5bd 100644 --- a/src/content/formats/cran-repository.mdx +++ b/src/content/formats/cran-repository.mdx @@ -181,7 +181,7 @@ rm(r) Configurable Proxying Caching You can configure upstream CRAN repositories that you wish to use for R packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Troubleshooting diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index b81086b5..8e2cd13e 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -295,7 +295,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream Dart repositories that you wish to use for packages that are not available in your Cloudsmith repository. Proxied Dart packages cannot currently be cached. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/debian-repository.mdx b/src/content/formats/debian-repository.mdx index 2c704d8a..3a497420 100644 --- a/src/content/formats/debian-repository.mdx +++ b/src/content/formats/debian-repository.mdx @@ -299,7 +299,7 @@ apt-get update Configurable Proxying Caching You can configure upstream Debian repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index 882cd3b6..2c0dd3ab 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -7,7 +7,7 @@ Cloudsmith provides public & private registries for Docker images. 📘 **OCI SUpport** -Cloudsmith provides public & private registries for OCI artifacts, to learn more about it visit our [OCI Repository ](https://help.cloudsmith.io/docs/oci-repository) documentation. +Cloudsmith provides public & private registries for OCI artifacts, to learn more about it visit our [OCI Repository ](/formats/oci-repository) documentation. [Docker](https://www.docker.com/) is an ecosystem used to run packaged software known as containers. A container image is bundled with all of the software and configured to run as an independent process (or collection of processes), and an executing container is isolated from other containers and processes. diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index 1d07f256..58e69845 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -214,7 +214,7 @@ dependencies { Configurable Proxying Caching You can configure upstream repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index b42689f1..6891723d 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -11,7 +11,7 @@ Cloudsmith provides public & private repositories for Helm Charts While Cloudsmith supports both OCI and non-OCI Helm registries, please note that for Helm OCI support the endpoint is: [helm.oci.cloudsmith.io](helm.oci.cloudsmith.io). -For support on OCI Helm Charts, please refer to our OCI Repository documentation [here](https://help.cloudsmith.io/docs/oci-repository). +For support on OCI Helm Charts, please refer to our OCI Repository documentation [here](/formats/oci-repository). @@ -230,7 +230,7 @@ Note that this will require the GPG public key of the repository to be installed You can configure upstream Helm repositories that you wish to use for charts that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested charts for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index 42cc4f30..54c7460c 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -211,7 +211,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream Hex repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. Hex upstreams are in Early Access. diff --git a/src/content/formats/index.mdx b/src/content/formats/index.mdx index 8dce40b6..122fc83d 100644 --- a/src/content/formats/index.mdx +++ b/src/content/formats/index.mdx @@ -3,10 +3,4 @@ import { Icon, IconName } from '@/icons'; import { iconRegistry } from '../../icons/icon-registry'; import PackageFormatGroupSnippet from '@/snippets/packageFormatGroupSnippet.mdx'; - - -# Supported Formats - -Cloudsmith supports the following package and container formats: - diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index 9527e2f2..ab07126a 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -295,7 +295,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream Maven repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index be27b991..856e52d6 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -317,7 +317,7 @@ echo -n 'User:APIKEY' | base64 ``` ## Upstream Proxying / Caching -Configurable Proxying Caching. Please see [Upstream Proxying](https://docs.cloudsmith.com/tbc/upstream-proxying-and-caching) for more details. +Configurable Proxying Caching. Please see [Upstream Proxying](https://docs.cloudsmith.com/repositories/upstreams) for more details. Upstreams provide a way to blend multiple external repositories into a single repository. This allows your single Cloudsmith repository to serve packages from multiple 'upstream' repositories. @@ -361,7 +361,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream NPM repositories you wish to use as additional package sources for your Cloudsmith repository. You can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions ## Key Signing Support diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index 970bb458..aca723c5 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -264,7 +264,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream NuGet feeds that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Troubleshooting diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index a9068d5f..052df472 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -206,7 +206,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching. -Please see [Upstream Proxying](/tbc/upstream-proxying-and-caching) for more details. +Please see [Upstream Proxying](/repositories/upstreams) for more details. Upstreams provide a way to _blend_ multiple Python repositories into a single repository. This allows your single Cloudsmith repository to serve packages from multiple 'upstream' repositories (like PyPi.org, Artifactory, DevPi etc). Please note, blended upstreams can be a source of dependency confusion attacks. diff --git a/src/content/formats/redhat-repository.mdx b/src/content/formats/redhat-repository.mdx index 77c55487..d659ca37 100644 --- a/src/content/formats/redhat-repository.mdx +++ b/src/content/formats/redhat-repository.mdx @@ -333,7 +333,7 @@ zypper rr OWNER-REPOSITORY-source Configurable Proxying Caching You can configure upstream RedHat repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/ruby-repository.mdx b/src/content/formats/ruby-repository.mdx index 0df47866..9265e487 100644 --- a/src/content/formats/ruby-repository.mdx +++ b/src/content/formats/ruby-repository.mdx @@ -242,7 +242,7 @@ Please see our [Security Scanning](/policy-management/security-scanning) documen Configurable Proxying Caching You can configure upstream Ruby repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/sbt-repository.mdx b/src/content/formats/sbt-repository.mdx index 2e219245..ed269a15 100644 --- a/src/content/formats/sbt-repository.mdx +++ b/src/content/formats/sbt-repository.mdx @@ -203,7 +203,7 @@ addMavenResolverPlugin Configurable Proxying Caching You can configure upstream repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index 560fa996..6280fec3 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -322,7 +322,7 @@ There is currently no public swift repository. HTML catalogs of Swift Packages s -Please see our [Upstream Proxying](/tbc/upstream-proxying-and-caching) documentation for further instructions. +Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/getting-started/common-use-cases.mdx b/src/content/getting-started/common-use-cases.mdx new file mode 100644 index 00000000..580fa1b2 --- /dev/null +++ b/src/content/getting-started/common-use-cases.mdx @@ -0,0 +1,261 @@ +import { Card, Flex } from '@/components' + +# Common Use Cases + +This section outlines the primary and supporting use cases for Cloudsmith, detailing the benefits and key features for each: + +- [)](/getting-started/common-use-cases#artifact-management-for-the-software-development-lifecycle-sdlc) +- [Software Distribution](/getting-started/common-use-cases#software-distribution) +- [Software Supply Chain Security](/getting-started/common-use-cases#software-supply-chain-security) +- [Software Supply Chain Observability](/getting-started/common-use-cases#software-supply-chain-observability) + + + + + + + +

+ + +--- + +## Artifact Management for the Software Development Lifecycle (SDLC) + +At its core, Cloudsmith provides a centralized, single source of truth for all your software artifacts. This is fundamental to modern DevOps practices, enabling organizations to store, manage, and control the vast number of packages, containers, and other assets generated throughout the software development lifecycle. By having one place to manage all software assets, teams can streamline their workflows, improve collaboration, and gain crucial visibility over their development processes. + +### Benefits + +- **Universal Package Support:** Manage all your different package formats in one place, reducing the complexity and toolchain sprawl associated with polyglot development environments. +- **Centralized Control and Visibility:** Gain a comprehensive overview of all your software assets, making it easier to manage dependencies, track versions, and understand what's in your software. +- **Improved Developer Productivity:** Developers can easily push and pull artifacts using familiar, native tooling without needing to learn a new set of commands. This reduces friction and speeds up development cycles. +- **Reliable and Repeatable Builds:** By managing all dependencies and artifacts in a central repository, you ensure that builds are consistent and repeatable, eliminating "works on my machine" issues. +- **Scalability:** Cloudsmith's cloud-native architecture is designed to scale with your organization's needs, from small teams to large enterprises, without the overhead of managing your own infrastructure. + +### Learn more about related features + + + + + + + +

+ +## Software Distribution + +For organizations that need to distribute their software to end-users and customers, Cloudsmith offers a robust and secure platform. It simplifies the complexities of software distribution at scale, ensuring that your customers can access the software they are entitled to quickly and reliably, anywhere in the world. + +### Benefits + +- **Global, High-Speed Delivery:** Leverage Cloudsmith's global Content Delivery Network (CDN) to ensure fast and reliable software distribution to your customers, regardless of their location. +- **Secure and Controlled Access:** Protect your intellectual property by managing who can download your software through entitlement tokens and fine-grained access controls. +- **Simplified Customer Experience:** Provide your customers with a seamless and straightforward way to download and install your software. +- **Reduced Infrastructure Overhead:** Offload the complexities of building and maintaining a global distribution infrastructure to Cloudsmith. +- **Usage Insights:** Understand how your software is being consumed with detailed analytics on downloads and bandwidth usage. + +### Learn more about related features + + + + + + + +

+ +## Software Supply Chain Security + +Ensuring the integrity and security of the software you build and use is paramount. Cloudsmith provides a suite of features designed to help you secure your software supply chain by identifying and mitigating risks from vulnerabilities and non-compliant licenses in your third-party and open-source dependencies. + +### Benefits + +- **Reduced Risk of Vulnerabilities:** Proactively identify and block packages with known vulnerabilities from entering your software supply chain. +- **License Compliance:** Automatically scan for and identify the licenses of your dependencies, ensuring compliance with your organization's policies. +- **Proactive Threat Mitigation:** Quarantine suspicious or non-compliant packages for manual review before they can be used by developers. +- **Improved Security Posture:** Gain a comprehensive understanding of the security and license profile of all the artifacts in your repositories. +- **Automated Policy Enforcement:** Define and enforce security and license policies across your entire organization, ensuring consistency and reducing manual overhead. + +### Learn more about related features + + + + + + + +

+ + +## Software Supply Chain Observability + +Regardless of your primary goal, having deep visibility into your software supply chain is crucial. Cloudsmith's observability features provide the insights you need to understand what's happening across your artifact management and distribution workflows. This allows you to monitor usage, troubleshoot issues, and make data-driven decisions. + +### Benefits + +- **Actionable Insights:** Gain a clear understanding of how your artifacts are being used, who is accessing them, and where potential bottlenecks exist. +- **Proactive Troubleshooting:** Identify and diagnose issues quickly with detailed logs and event feeds. +- **Informed Decision-Making:** Use rich metadata and analytics to make better decisions about your software development and distribution strategies. +- **Comprehensive Audit Trail:** Maintain a complete record of all activities within your repositories for security and compliance purposes. +- **Integration with Existing Tools:** Feed observability data into your existing monitoring and analytics platforms for a unified view of your operations. + +### Learn more about related features + + + + + + +

\ No newline at end of file diff --git a/src/content/getting-started/custom-domains.mdx b/src/content/getting-started/custom-domains.mdx deleted file mode 100644 index abc4eb19..00000000 --- a/src/content/getting-started/custom-domains.mdx +++ /dev/null @@ -1,96 +0,0 @@ ---- -title: Custom Domains ---- - -# Custom domains - -## About custom domains - -Your company brand and trust are important to you and your customers, and with custom domains you can present your own company as the endpoint for distribution, APIs, and configuration (e.g. retrieving GPG keys). - -This is a great idea if you are - - -- A vendor that is selling and distributing software to your customers -- A security-conscious DevOps team that is looking to control the source endpoint for artifacts - -Custom domains are available with our Velocity and Ultra plans. We strongly recommend - and may require - custom domains for any customer with significant Cloudsmith package delivery traffic. - -## Configuration Options - -### Account-wide vs per-repository - -An **account-wide** (also called organizational-level) custom domain works across all repositories in your Cloudsmith organization. When using an account-wide custom domain, the organization/account identifier (slug) will be removed from the URI for a repository. - -A **per-repository** custom domain works for a single repository in your Cloudsmith organization. When using a per-repository custom domain, the organization/account identifier (slug) and the repository identifier are both removed from the URI for the repository. - -### Package support (Download vs Native API) - -For API-based (Native) package formats, such as NuGet, Docker, Cargo, npm, Conan, Conda and Terraform, you can have a specific custom domain, such as _docker.yourdomain.com_, _npm.yourdomain.com_ or _cargo.yourdomain.com_. - -For other package formats, and downloads in general, you can have a custom domain such as _dl.yourdomain.com_. - -It is possible to have multiple download domains for a package type, however, all of them will be accessible through each other, for example, if we set up a general `Downloads` domain for raw packages and a `Debian` domain (which is also Download), we will be able to hit the `Downloads` domain to get Debian packages. - -Please refer to the table below to see which package will utilize Download/API Native domains. - -|Package Type|Download|Native Uploads|Native Downloads| -| --- | --- | --- | --- | -|Alpine|X||| -|Cocoapods|X||| -|Composer|X||| -|Conda|||X| -|Crates|X|X|| -|Cran|X||| -|Deb|X||| -|Docker||X|X| -|Download(Raw)|X||| -|Helm|X||| -|Maven|X|X|| -|NPM||X|X| -|Nuget||X|X| -|PyPi|X|X|| -|RPM|X||| -|Ruby||X|| -|Terraform|||X| - - - -### Top Level Redirects - -You can request that the top-level of your domain (e.g. npm.example.com) redirect to a location of your choice. For example, to the UI for your repositories if public, or to your own customer support page. - -If you'd like to configure this, please include it in your request. - -*** - -## Setup - -To configure a custom domain within Cloudsmith, we require you to provide: - -- A list of domains that you wish to have for each package type (refer to the table above). We recommend having only 1 domain for Download types, but this can be set up to include multiple if needed. -- For each domain, do you wish to have an account-wide or per-repository domain -- Finally, would you like to have a top level redirect for your domain - -Example request: - -Domain: `docker.mycompany.com` (Docker) -Account wide -No redirect - -Once created within Cloudsmith, you will need to create two DNS CNAME entries for each domain you wish to configure within your DNS provider. - -*** - -#### Step 1: - -- The process begins when you [contact us](/contact-us) via support with a list of custom domains you would like to configure. We will review and start processing your request, ensuring your plan is eligible to make use of the custom domain feature. - -#### Step 2: - -- After confirming the domains you need, a member of the team will review and configure them within Cloudsmith. Once set, the DNS CNAME entries will be visible in your account (in the "Custom Domains" section of any repository) - -#### Step 3: - -- You then add the DNS CNAME entries to your domain DNS records with your DNS provider. The first CNAME is for authorizing the domain, and the second is to make it visible and accessible to your users. -- Once you have configured the CNAME's, you will then be able to make use of your custom domains. -- Please just [contact us](/contact-us) if you would like to set this up or require any further information. diff --git a/src/content/getting-started/dependencies-for-developers.mdx b/src/content/getting-started/dependencies-for-developers.mdx index 6ffb3077..9f74b972 100644 --- a/src/content/getting-started/dependencies-for-developers.mdx +++ b/src/content/getting-started/dependencies-for-developers.mdx @@ -1,24 +1,39 @@ +import { Note } from '@/components' + # Dependencies (for Developers) -Cloudsmith allows you to manage all your software assets within a single platform. With over 20 formats, no matter what you are developing; Cloudsmith can help simplify and accelerate your development pipelines. +Cloudsmith allows you to manage all your software assets within a single platform. With native support for 30 package formats, no matter what you are developing; Cloudsmith can help simplify and accelerate your development pipelines. + + + -We are building Cloudsmith to provide universal format support for all package types. Which is no easy feat, but we love a challenge! Along with support for the more widely-used formats like Maven, npm and Docker we've recently rolled out support for Rust, Dart and LuaRocks. Our goal is to support developers no matter which technologies they are using. +We are building Cloudsmith to provide universal format support for all package types. Which is no easy feat, but we love a challenge! Along with support for more widely-used formats like Maven, npm, and Docker, we continue extending our coverage: our goal is to support developers no matter which technologies they are using. + +







## Manage Packages -Configure Cloudsmith for dependency management +Configure Cloudsmith for dependency management: -- [Upstreams Proxying/Caching]() -- [Retention/Lifecycle]() -- [Package Groups]() +- [**Upstreams Proxying/Caching**](/repositories/upstreams): You can isolate your packages from unstable, community-driven public upstreams. Giving you control of what assets are available to your developers. +- [**Package Retention Rules**](/artifact-management/retention-rules): Automate the cleanup of artifacts that you don't use and keep your repositories in order no matter what's the package format. +- [**Package Groups**](/artifact-management/package-groups): Get an overview of all the assets in your registries. ## Secure your Packages -Configure Cloudsmith to provide security, compliance, access and permissions +Configure Cloudsmith to provide security, compliance, access and permissions: -- [Access Controls]() -- [Custom Storage Regions]() -- [Signing Keys]() +- [Access Controls](/repositories/access-controls) +- [Custom Storage Regions](/repositories/custom-storage-regions) +- [Signing Keys](/repositories/repository-settings#custom-rsa-signing-key) Cloudsmith provides additional features and functionality, normalizing the interaction, data capture and analysis across all formats, all built on each formats native tooling. @@ -26,15 +41,10 @@ Cloudsmith provides additional features and functionality, normalizing the inter Cloudsmith can integrate with any CI tool through a number of methods (first-class integration, API, CLI, or native format tooling). -- [AWS CodeBuild]() -- [Bitbucket Pipelines]() -- [Buildkite]() -- [CircleCI]() -- [Drone CI]() -- [GitHub Actions]() -- [Jenkins]() -- [Travis-CI]() - -## Upstream Isolation - -Using our Upstream Proxying functionality, you can isolate your packages from unstable, community-driven public upstreams. Giving you control of what assets are made available to your developers. +- [AWS CodeBuild](/integrations/integrating-with-aws-codebuild) +- [Bitbucket Pipelines](/integrations/integrating-with-bitbucket-pipelines) +- [Buildkite](/integrations/integrating-with-buildkite) +- [CircleCI](/integrations/integrating-with-circleci) +- [GitHub Actions](/integrations/integrating-with-github-actions) +- [GitLab CI/CD](/integrations/integrating-with-gitlab-cicd) +- [Jenkins](/integrations/integrating-with-jenkins) diff --git a/src/content/getting-started/deployment-for-operations.mdx b/src/content/getting-started/deployment-for-operations.mdx index ccee5cb4..e2207471 100644 --- a/src/content/getting-started/deployment-for-operations.mdx +++ b/src/content/getting-started/deployment-for-operations.mdx @@ -10,18 +10,19 @@ Promote and track assets through your pipelines; building a provenance trail of ### Automation -Configure for automated deployments +Configure for automated deployments: -- [Bot Service Accounts]() -- [Webhooks]() -- [Package Tags]() +- [Service Accounts](/accounts-and-teams/service-accounts) +- [Webhooks](/developer-tools/webhooks) +- [Package Tags](/artifact-management/tag-a-package) ### Platform -Stability to drive deployments -- [Operational Performance]() -- [Security]() -- [Status]() +Stability to drive deployments: + +- [Operational Performance](https://help.cloudsmith.io/docs/operational-performance) +- [Security](https://trust.cloudsmith.com/) +- [Status](https://status.cloudsmith.com/) ## Integrate with any Continuous Deployment tooling diff --git a/src/content/getting-started/images/developer.svg b/src/content/getting-started/images/developer.svg new file mode 100644 index 00000000..a647b921 --- /dev/null +++ b/src/content/getting-started/images/developer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/content/getting-started/images/device.png b/src/content/getting-started/images/device.png new file mode 100644 index 0000000000000000000000000000000000000000..26d9502f02e952c8543e8161c1af71e70b0e0963 GIT binary patch literal 418126 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≺ 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�<(g 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 E58BYhhX4Qo literal 0 HcmV?d00001 diff --git a/src/content/getting-started/images/email-management/0131309709c31931626ca531bde71ddbeafcffc25389994f1418b8a9b8134d98-add-email.png b/src/content/getting-started/images/email-management/0131309709c31931626ca531bde71ddbeafcffc25389994f1418b8a9b8134d98-add-email.png deleted file mode 100644 index 640dac017bb02b2e26aaff9ab8a516f88d9f7fad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 203864 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 zer]=`6!(^HI(ZMRi!)O(65y41b$1frmTdl-10yQ;|?5Ly}oN%8Iv;mviDtZ0lJS_qAT^r4xnej@sJIVCa1z{o6C^ckg85%zM3G>9?L2&rbVXUQ(Q!%rMv5|BAa_ z$wjw!ZhXFbWon(XSl+wEDj7*d7pvzrV|zK*bml(uV7kG&tUgWunbYM3}yHRbl0?h6_ z0F?Jn`Y#4V(Q$kGu2!r~_BW25uH2KW?M6kIwoPw_@v;BDis3nJlft*Aw>M?FjG{(E zt!MzF_Jvkdvyz6#I-=edB493u`7aB8xBlKbnNnU5E!rmH#tBpt9Md$L4qr%AM%d>P z(~c4!nT?k`n~yy2Hc21vtq@J+u_R$-2JI)JHIFx@viq403CSBp-B2rz0M%jp5cVC! zZFyOoqCA3L4O9~+-W;V}=h5h5J1d&kblfzHhwUEiv4M2%b3-sfpR1q5Ok$-{_^j3M z=)-4B`gICuot@83OV+{RmY+B@XCnb8X?8Y4zD9Rjo1^w}Tq?g*Hbxlc$DG7*jjIVW zO4}^bVP@8D{JN8^yt%5`QNR~dCpkyw$E^9BSahIoLsq*g^6N3`6w=?;7xY*m5|zW- z^AxN;rLQ)s@0nabFR|Z5GBXq;o^o4SJ$ThoEkwci z4EA}B|0gB}4yKdKe&pYG?6+uh(RcZJvLsLj-9ApY`4mfKF_Vb=QQNB;hzg> zmFlAkd&oY59|!_xw@nkhl_s9%UsO@Q?m*qEb5DPVK{#8?|2D_U9OAE(-b*y1hYa=b zHsl1Dr7Lx*PG$1*;Ot1)@`X*Wpj+A6bx=G8L@tkJ!v654W;O+AG7 z!Ii7L;nd*sGur3%K1+M^jm$IjdDxrdp9c+9dxba#ivkcnAzy4HCfRZiSL>7q$8EH0 zeU;-q*2DXkh)u@qV{OnTA|Y2{zu(|T@&MN%@}#1|V_;_VP^A+vJSL2vhLyJ9lU>nl zNZh1;9z6pmR3)BiH6b2U`14J&E&gvR4JdNjke@at=7Z0=m$)0lMLMHZ5x@N0 zzC8Jd$p5i`=CY5Q3g2D_(6Hu}YmFBbkA0i9+P!E;RfDEzTO<&^w5KP$I5(%1#0B=! zfeUq1_S?-jDM$@<(wbk>@Z&FyZv~ZgYizK0jl+MD{cZ7{X|e5%7b77}-b8yN2E^I{h z0nW)>L_XjC$-4c+*kurW+p`=>rx{t5>j=A)h^89kYaSF>HpHs??!d=hMz{7HOgd7&F`riaAP9BT|?!xRR~4Oc{UHFC<>p zOMW;NJ4F!f^=y52#{^QR7 zaZCSf#Q*r)i#N#aOElPJ1iY2HCIjM-&pE|(ey_AlmQe|{INc&FJ>M6?v>5+pT>=7$ zLKj|Dnl<%B7t(wUOOK&Ynec8&8ZMq`mW{Kh(gB|Ls7l@Zi79)JLW85p8E_ zi#Qc2ACDxlwfyN>q~yOkpg*qt-;VYa1IpjfM1`0HshwUw|71o_VrGYNDL&!%g1{iW zg_F!i6skG|qAxKs`@x9}`dR0H?j1f&Q#ldztIqei)2oR?q~qwV8YcDt1jEppDtOp9 z{Pk`U9c2WPoT6|y>ekO~Kdv0ZbTO^@DFrCPI!rtaD@UBT7& zA{F>=8Xhg>HA~DorQ#G+TCr$#s0TD;f_x z9&SeD!|6=pA8_*l7ezM9mTg!mT)&!c}hoj=>U zKdc^bPjhnPo(Ys_Xi=~x;cejW9)0~iz=_?Vhsd%RU ztk3_Z6TlME&}6>2^@7(sre?1oN~n)dLp8~Kt*1Cw zYsHVbsJSVHzhMK!)P#pYX*p=Rbpw<_kdW;sxVK=t-*fyGUjAsDhAoj^|ZZrI_ z>8a=6-0z<@>QDL;9wMS)?5w>#D{&>AyzwC;!Xi#go^jrVN{hzHrLJ!YOaqoR?WCs^ z59}Pm6qeWi76QZs?j$T8d|``ED|e|OjEmu0TxevmKbm4DIagAEM~JgP-n^ISR~z=V zVbzv4;EZ8D>&H&Xeb-9v)HM0hUXU5Z(*?eN)c7D3E?-i4MPtb-(n=N6Ez7i6^P2iz4OQP4zIMHjm|ZDH)0gpu_IEJxx8)% zM@l#esa>PrI+qlC^2VuFg<}S&;=bt4-5gpvm8$6{UfCYb?;kOKM?grze5Y?2rQ4=` z-99;fr*iQ|M}((+vYnFC$7EKF)LLAV;x$EYfM(qS#EsUMfm-%j^9Mn6|B2u#H6~p$ z-1=-=>}MVW6M?X>Z)5jT$6vfzg<`aR1gl}WHd|mm`Cv)Cu?#VSgSk+3Tc~0QAw>YGkKAu-R5=Pbs`HXTYJ_ZyOq4tZdc~vc!6Bl8#7yOAthDB zQK&v(EW$B#)!ib@CRL<{c?!EZit%)cAUf=9vR-^WZAta|IZCcxR1tw9gnBAg^wpgv zn#&t3J~@nG89O@6`0#sp`ac=hvq=B@{k2I&A>_h@yk~W9rA7<$ADR?F-yE?Z)R;Mj zw})&S$wN_7BE$9D3hPW!kwHYZ0UU&H1wBQcc`CnA0Oy~3hiRDzX@8RUS$J(KQFKgf z$)%Fx$xRr_U1mvz1}gS6$s+u_QmOd2(eI-CH;cKa8L&*7(=e$bGn_g!auWI zlC*A}bn&6$y--13H9LAKDM5f6_H2uUw{kW}c`}0HO#SCaj8^NF)zn%7T2IZ2*teaV z;v2eFLhp;#Tn3B;quZ=1TCP$B{-Va-Lk`w#LzU_zi>PiGLzNpkjJKD?J1&b9N&cE= zI_q)`(It)9R+iaA1gSDqa}lc#`HITkt92oUC=rVX_M58cW52Q$EzaY!7I_zIjLm}U zSA~LHGEG)R5P(d~B0R3e$;pU7os>meRUwpEPGszQM5xCHgDCjO;FTF{f9A8 zLsFzdR%_=BWhH8B@TYmjo>@WOIvK(9Qq2ggqxUx88Ej4kxr0Jt8;ReG3cr)-Orxp~ zn4_voqo&OIrhF@E#VD~dK*W5rf`0^rMhG(}0|fLtxdRYCBc+PII^JD%U=g~k0yxIQ zhCKs=w#kzZNpd_AY%nkF%gQBfM`W*_e77|B)ZY`e=@`csdF&N%Pr0z( z#s`8)n@Z+bT3F=SQdnw5&rPT@w7?i*jZwUc7jF13U;S^t^sjFfKxk5`EC~Fek|rpa zAnZooWRV8)R@s)*v-xeR$1|#DONi>*3;4!%&6oz@e{gm8zR2V z&>+3`aDC+ZOw=IG?f06S;dlgh1r(i7^;zW}`D z+bbMM_9}#kPIMpf<<|H6gNQQ!){M7>4unc2&y{+Dl*Bf}f|4?=Bo3z)vMSyxSnSt) zU1O&!Pabaj%P~C=xp}{93qk}kgpdD<-~Z-sm5Nc^WAhNu#z1Hzdr>J>1jiDhljiFP z&C3d!Ldn6W!7NZ_U8&VTe{Lk~-20!2FkV?xtw=~EOAWj>q%E-WJ&~3S{fx-8(j`=| zwTPE>;QWR%ve>LUealYlOSebV$acXyVkGoy<(0fqD zSe7jdVM3^Z0QbhqSRBJVa+2CV8y!z?_IHJ6`C}AbpoN~LNQ%596vbwJt$KJ!Y0^@{yjl+)5PMkgoO}8C4A{H5KLe0^xrZ6~K&G^p&IvZMY|X!6?WB*4?wngDXoF z8A=uTOZ59Ij5A(jDDA_-cGcuz3_OkFdg+d!zpUXRZQN)wkL94;;c5;?L!@jBfN^M3 zN4xR?8x3OpDZKn|Uz=$G0umLnNl4WnYWx?Eyw%#6=Q%RcC<*^wh6t#lFW*)8Ea;1n zS~3SyQBeHFtI2f0QZTG>&=)p~`Nxj_k6Zn3ADlG-RwJWTTn6ti{?_m5$BVhUZ9P3U zKKZZP`EM8HKa2(J*|~HV>R*lV|FH=H9gHFd|9hkVS5x=DJNjQG`F}gYdg z&i^P)|7(o?uXgA+NAv%kF;e*AAfGY))Zqjbr?=QHAej{Vgp!f#x&(g+QN^ zY!YgkAQ+Wh=72#FEl2~6<<=2O6JGr{ za~^_7y~_+AAItR$Hpy*@wvi{(aLCQy}pOp-W&xCl$p4zd{99=8 zZ*Tn@f#}99MyEBr;1Mkfv%sRQFl3~n()Ltnx*Qxr@$T(sd%ujQi`TsBd47A9M_W@p zwy&5mV?;#!{g#rpG}A5Zia)gS!tW~`6VZpLe~j>Qi8njm?91w8Js1EU-2rqt&h2~c zNUy#fR{preAkb?`ovgB*Erz)8~G-H<6k8A_x zRIrb?*#|DC(+Ux(-3%-5%Y4fT`O0*qla6M_lwKA$IS0zm`(z88`5D{Pj1?qmcsL!Q zl3rdtg&!x8c!I4MnCJYYS9iuduh#-|zX%V^xX9gg&@{0U!tReTsO?e33zocRdGtS8 z#Xo=W!U*|u=&Lp?GBu|059=I1^K5t9-;#2hdLqI7#a41f{Dp;uc#j3fFriNuZ)HZu z#-10LWXibjI|AKcD($lNftb0a;vzolk%LsZ^~hcycH_MHTFdJhwvDCPZKsX>xx7qH{wT%6(lpG`}&uMu=*K0+=C2~Bp;MuXY zYJ%Oi_B%OxwH}}`HGNz9(YEpQ9Z%$MY%q)6E>e0aLzc+vX|-9m^|2r^vj4O0Y%QLAoo-Bo z{6|&tx|yMriL#XkGz~kw%&<2S53L>_Td5qwe^Mm*)g`(wSI4dITC^c72MU(cfEMa@^v_E(u# zUssl3b+*b&Y3EG9{?MZlu zurl3`gafYd;c2n&jLKpBsjuU31PA8YYX^eXKEtV1Mr-EsSk?K17G8m=pj!C!)L0+& zFPOWU$w`&C2b}!r^Wtos-6zk|LxBqef*#J~YlmGY_Fr+^C1g6xJ`c#p=C&6YLTMz& z4MnSA)^a)#=EM6KG9w_%^o($Z3>19ajCXrX+lz`ajdR&EBZ&^K-0`7!W5%G?`{uq8 zY)yrxJvrYoygH%Uz^m2O@h}^cF{AA|oy|Y>Sf*w8uVv-LCst|b)dj$PMLs3wRHjAD0C;**UY33+38d!h7A#?|}x;swW)D3IFcvzbI7BRYOq zsRska7F_%LUP%}sUfPXF0g3rOl?0(%FIwu_2AxwCN&BD73v3SA$OfjqQW#JhFAT0= zl5UN~4=LI8j-)~rcimT_*OS7<1d4}uDNE_?fClzaZ~J-)a8ywnSXsa^apS#+RM@VO zd%YjXnJ7f`XaFb~5!!*cK`79fn=S4X*0il{qE*$&>dY2C6*(E@D&^ouDG=PN-yyv} zpiAd5YAHbA5@*26^<+{LLjvF-oq$9*H4oLv?v^3 zbWCF@wt6>&g4z}TJP3#2YVy}c7sGZ4m(=;VnszGYx2EBGE;_W6&K1(94PR6(cI7OD z842{vU{?AL8881kV*KYz)U-}!TU9c?bC@A?_`8yUJU z3)^c2cUNsU^*oloER3;AyZIQ<_uRT*u(~?yAD2Q?&v{xvgbpg zJsFt>O5@SD?r%tuA59b01u?VSSZ`W!g~srfjM2Op9MR!<`6l%((k!sZNMgwL7!ZsmI+Z7vLTYb4C|iQpuXR!lrVw4P&yz= zcNF|u?Z-*M*ONf8lyJ|7h2&Pw12T5YRqNwv!P<9EmS~udi5)6B-MY=zhfg5wyrnSc zE~^aVc=sA^fbLLM1Z94$d;v80g$lQjk7JB+SqRxmeqUtWhk=`rowXuuk+Y-W0!yx2 zjOTJuJt_p?%-R#~rM{p-)e~><(wiSCUTJ3=s0&9bWC!&$oz$jR=8QA5%|B>4leLd8 z!Yv@&nzY~hi9rT|f^aJ$7giQ~F3U=7rb7o?EGr}SudDd9u;yxWZL_eE$^r|*y|Fj+LEoX#I$HQR!#q#m5 zjMXi>I(`sXZpB6)q%{YDK1;#QJz@Bwdz(Qw#}kD!b8!nGyTBOGn8Cl>kijAkZ|MVB?~afiQY!wti?7+l&4q2R;6-m~iRO2B35iZ6dzvVCh`(et4ICv4}cUr!F? z5~EHh*YMxpe0}ghE9YJ7xv?L){*FLN|D4(B?% z11a-LM`KYq*M%L3$Fu}kU2HSSfrqV$|7y6v>I$KqF&bVE8;hMH<*8L#+*=x^o_bq7 zEng=l1Z{59R!QrQN-x%afM{^41^lRS*5o!h~z}I5t0um03C(dQQNfq=5t>$U(6pj5!4g@vZq`lRZE3g^g|aPon~CR=trEd& zLTQ6AXUpTGPbJ&YIps(N&;d1)Mo(ce-C1xp3d8c;)EqG<4CPBC97Gq>PBx zAGD5K|3)b#LbiHMU%fD|NtlI%BzDl;aJB~>?g?<8J#d73lv12+Bd}14+0vk{Wu@sf zW?D&j18aBj^HdKZ6$){y^=`sIVF8tRc>$E&yV;1#u^Ba6*qNCOR37N{MGC2;=!wnFHo_F&qk`yo}{VP6c`YmxYLd= zl$Uv{X8T|O!=1S&!6lffulOjk#vXVMiDq=qhpc`f3Uhbzsd*QGj#?CBKGL@Tqb>>a zpb*lHGA?39)DqpN08$FiSjIW8SJ4;=Zjn2VUO!5uvMbUG+Mld!Yk_q+qaLEP9TI={Pml6Fb zM_6gEV`^}1`3Jd_C{{Q7U>@PGGu*S8;tQ4>K~_&d6iyx#tyVDv{Mp?sT%j|*ec+V# z`p{DK)5OIt>FJmWD_mFVYnaPkE&vjgU(@1OEBIpJf-=JdyiAQRcgJLCus1DRg>#zC zIXYR~>F7YnnGE;jsw7zJAjfw)p`yh=bY|XP@y=g0r`AYPM+obBM_2z6@n}g5vy)X~SYzw^r%W7_|v-pQVd?GDFpHRrZ3v z&AtVuqzVY?ZpB=@5eF7&$}_}1Bq<;N*$bd|hZ>-eR^T!rnBun;f-XrYn{o?`*sj2g z<#iZv*uIpNk#2g{GE=f20T(7VV-h)ja_s*e;dJ0hJg!ZFo|k=%1PdxKMkjNaFY%*X z_tLigj_KS8&aOMI>84@lhDTu#w9IWoj-du!)y4Jm31twcg^SzISDk>)H*9oeYel?v zL@3Pbc@ta>it3wm+Uy`B-wqOBkPfd(W?PmGU;)Me1du3ynbsiCvdm7&WpZmwxC7tM@Q9{ zh?{yt1S|AYpKZ}p!UY(0jBwC=I|ivnz2S||F{esN6C|M%v*kI~r`^W(^{?|f?(GGV zWm#E2A*rH`9Vx}jL_ph|$-a0Inz%@idT(X{f2ia06`)i(-WqY4n^B;-tc~%OIjr~p zZ{IoEOj@9(B~Os_tN^~EqwdG7ZbyJt&fD@23ES#@t4aWZ6rULjU%a7|v5Ke~jnR zd>camZwg@Cj?6sfQSP}}k6oR}BIS2oIV&$rHQE#DW~uwUbv%6f>H=jM6j>Z>r(5o4 z5vfs^3oK^M#C6~@#g9+ywag{cEoI4s8k{A2!|8e?q;840oP|}Xw}kN*U>dv@H;^g~R;^cd%tXj#8D)^&9d^eYEA7^5Lp?<_ zJ-Q|h!&X>uz^X*%#O=y|I9Hcpru6$$XBZjQ z(Lf6XZ3ART*%DWUr)Vj({oBT8kdgH6zK)yQ(5?3Za|G2i;tgtNaUCAMd-A<$AT6Ps zvgcFa!Abxy7Ebk2FAhoy7cR6+T&-~7o`Q>#LnA@5aRhjF5pKuHG9mR#tRIXzdxYt& z@x){#d%pok%peP1{EF#jvbV+7x>HPie)6Kwu2oNB(1dBkjO6JX`D<>tABXmq&brSF zutteYnCHs?-P^swD_uaOmpJ1jTJc4mO~+An(7Ii3CXRZMnGhcbNM_2B9)1R&kO_sc zt>&xQG#HShm|^`~+bq}Rv(<@?gK0*^lVynwXkRXCK`#!)*dsS`96oELYHSoEHVYCE;dODt zbj3?fJRab_0`A@Q_@a)gA%nM3X=O{t2~r)xW8dl}0mLD$P7_W@2BDlfE$i50_Xn$* zv#lZ$m#eC{2f!0(i-$$rJjjkaNg=W z;hd*O4hn`=nsJ91^-jDiI^V(4#K~Y9!)h|vsI7)Miw5qq4(UIL2VC8m3^C!^5$2mY zWl#F8JX92WZ7+FyOV0rTvGF@XsdMP5)~R4+Qyn|y&}AT1wbG%S9hnQTtsfx_h1L$d zm)>7mR4Y2j$9oe>q=2)0LPgbSKmW#rRqQPzm}pe>Gk1m-I?KU3Rh7@ z*lA)6loVvAk}g06GYa0f`7k{B>GNyT?z-ZH)@gGIm$63Yyom>Ab`VvPDy57l_d$d` zOnj+6iU55$s%iW67%{X zSG+r~JGD{afxS0_yGnr*h3nW2-2m=|49WJ|SM0GFm|t*(yi-*Qi!8ZWgfvYqLn9X) zO7l!(?=`xy28gw3siCfD8%B#bF%EvI=;6o^lcVTmP*jKjP+s{L+o8qLt_yo1@sL!# z*J2w}Um3jsv_Q2L%l9Y&dob^zkHNIHsR9}ud>Kc5lMq5Hq^O1eRU$H=KHHmjwPX>9 z-!4M%nNu5LF9y<++g2Dl)E34ubk~PlX8_&TWc1qvH~=3*6L7nAqPK&u^59_cgll$Q zV*L|_u1n%f>1X%dhuTveo2k1@03k_#{K2qGT!81OHoS1Vd^Q7(kfV7qwk;~w2S^?U z?RQ2tHuf7jg08&*^qmS!!cw*IsuocfIFMH}Ihz`eu;s6uI*uwpVEe5dJ>ME#n}&2x zKYoIFi_S>qPgb$q3!CFNUs33InZ#P=yj>>us1Z+~Zh~h^FUGC|#QA*YF2EN;v2`Lw z(1hZJ0Zuqp@(a2Pku|Wko!(DAxep)7%|?RIw-2?0O*{3FUPGQkRMOb+Sy7w`2bv+^ zLlG`GJ+*(ZnbK{NwBv#a8R5hbR*P@F+ugM>BV^}$z0shI6(!(tWK+<}MhV!@g^TWh zT6AL@2$3Lf@4^dL=gBvRpBXU%^)Lnz2_}DSl;en*VI7(`_&~#uR=gvqbnb(H3IJ8N zE~>hYrM~qO6)9~!`KJ1SU}v2a=gytBC#HXh6T0mcS;tNA^G;5SnT)`3xE?lys}pf;w{WMs9yPZEI z+I?vI#A>soNE0b!K(R6!V}c}04I=KG-i=)CA!tY@C7mnFcxy9I)#SIm<}!T(?>(^p z(UJvI7*i~2r_P|8^u}{#K(kdLmO~vV^+ZYRh|;W$<~uO0=A84`5uy`>T7K~Z(QA7mrm%hUJ_NI}F+7{)zO zKyih!LRoMK0eavuvX#i)WpFbo#HO#Ti{^Vpi5#`tgtx1Bv3MwHT<<$^H2h$9nH-n; z8Pl2iD&=Whbe`oPk2qHRlo3bUu(;MEZ?SJ~HoeAE(_$q{Y=qTyxZ!QaNb4%Ert?vy z7Ew;uoZe~yEtcP&ukTZXK7P)=Js)VE^2v?YvR#Cm8?xl}v|zYpe;ey>xLIKZX5LJO zGZf#ms`N|#t{kGn=Eqw02$BSxXmV?|vTqjlVn%r05;D99>}9(|(FK z**N%6Pz-&dRaaz38=5`h`RLW_S9ycVK|PYry@9I$?sr(abg9rzhm=0e@6H0t10ut| zH_!07MCMf0c=KucnSYq~M4@&KafPVv;9MQwiYTNVMS-~Q+g9ZzH1F?0JtzukXS-an zlY25Kz0^F%{@m<}7fT)^rK`L30FKjvNvq8gnvS+$=?378h5|m`flY_UbE92SLmQI2 z(9w+ok>+HI>lpQQ^XW#ZnS>rgdLKQ&q(`)hQ<-1NtWZ6^tL|2owSC%d+G^sPj<3K` z#E+v3XMh#kp|29Icik~JXZ=RV@M8TKX(*vOT-*k>lSBJRa!U`T7;*fnHjZ(Ik8wYr&xsUh7cLy+KFWM~?dhU=2#6GSCL$Oo!M#bH`dia|fWXulw~ z{uUkFIi^^#`O^!18toI&V0FRlnEe+vBc*aKi_*81=X*i`{2;!A*#W4-(yPf9=(h|B zW*O8O=&LU3YUEk?wgC!e2~=xW72q6A{WEvyY&o)p1wh)CKujxmQt(Q)GE%flMOEe? zUh0B#pRE>O*4`Yn+2SbC?S&sAK93#ctf3djo^FSTHx<99UZuaR%RNc`aqgeE`^SXC zXw5)`nXhB7vqqiW7@-8`FTR*~BniMvyEE4XzL89{Ks05W!h~HfOB2iGcE9UgsnXk` zu3{H3{yD~)P0~xs;nvW5qFFXeyXIfd9SLosB?-c>(qk8?1M^pj`Aj+UyS?vdej^pj zFkikKAHmAbo;h7~e1CjqM(2lFo70g#c7S9DQstGNja|gK?iIYc$dm)V(|Vosx6J#) zCm9Ea50Zm`-}}&^=ZH8;4eJWSabSxD;kU@!n#u7>WLZ~7tm~V98%&KHDL{u=Y$iFO zxHWq&>grLdV&C*@R^qBA#P`Qh>URJEQQ?zV(X+q3@ybn~!xDc0dgZD|K!RNu7@0-~{heEqivOp=n7k+JOQM~I1E z%8Xqd72khV?gg-uTcd9tY2*H}8vRWJKt^*b7GedDvNC_1AGPO)jOhRWo&SB_{_o6f z;)7fXYZcm`JMi`?k`=kjEId-og8~#>>i0Q(!(Hj}rB`!OQd8xDu%BI1tPcuNGN`yN z>7w+CDrq}EhR)Lm zed?a5Pqj*2ZbrTc{Nuj*<4*ZgMkmE8^8{1RbEfO}uwzwW6bOhL79KX`4?}=(2{5PK zIAg$TOwARu_VuD-1V4IYS9g}GP#XfRT|}Rdpq@_2PKC?io%CmRo~;H%t!{>Zl6Jj` z?>$l;$h^c^6;J7z1!0MNy{NYJhrLDIQ`4Ngr7rzbaH%bWOP7NCiEx22@Xv-1f1mGc zp#e%AwoE!d}>u&C! zqTLN5vidD_EEAp9(@>phma?j{P@@(^c&aQi&BYDxBbzrPlkz4;#-v+@RDx z|5o&K>nHCoB~j^9^BBcIpA?!VyC+dX0bJk)c8^~ZEc{Q>;o^n0qZFlI0%y=NuL;4l z?B^hkk&xcbfwnbpAP4yY>`*w+m$RoI)NAPJb29u~7$~NwZ$4|}d)LuK8xM^DztmCv zJ(l^WeLeq9f@TKwn%ap6NJrmBD$59En8?rdm1V|u6?{I_Ag5XjzZiVub+jow1x%rT z?ZfFSznxQwFUT$42?DwB#7!0!%*~*LgaknFs&62R7*zJf0F1O3*YUFk&t3s?*mQY- zHI`}usK`;m`N-=a9r}qEkN)-y`VH9j8D~*TdJ)HC?*G$Lu1NbNm>=BSS?)fyHp>M! zYUgg^2-OJ($|em7L! z!MCpf0HIc|cBCSfOyV^_Ld5-uI!5!i{t`ap>}mjTttCvUich7Q_a7>nzJ3Lsb89?xZBl}VN8M?C|VpbKY;|uN%Ahodwp3yB2cf% zGOW}v9b$#HW+#y3I$1!63YoDZm0O@t>dZx8;ftVSpU+ zhO?+B&Ch9IvLl_3=0F1cL3qhlGQfk;&ld0H$U2>zwCGNeI$x&=6nW@BaV%c_86i;F*s!wQEs_6xNqQQ_Rz|YI}anUZW9M(cgB(xYIbP ztFCNr5{fu?juJ1*B%V17?3Y*6;hOh*Tr;_| zm6p8=2FMvgG&N$gA=KJ-16D>>R6QKwUm!aDQ&!=1sb=AgdDaK_^kJaaIYAqXc8*_j zVL)4mLDccSgCcxupKwyrkk>j((3oDl5&c2x$%y5>wt)f64U^fLeZ8X3Cyq4vXSHhx zBD~z~0lSw0NnyXSE{1P;NLv~D1hX=*a-Hfjr^os04iyD$^&uf~Fn3Q? z?$NK?^Z_3>3I;Yv;T&_$^hfJwkvMvCuTz<`q|W}uP-YcjDyk zwPD7z`La9#YWc+POZ_jG`|m%=oF~0OS>N|*@`l5ih^D9UO`s`WZgzPKxpBwn+^8aqK|Lq?>oR_xZ%j;cRB=nrZj$=UwWsB$ES@uzKa7^%=-k~mU8@pGL2 zn1M-unfIRkz|bVGIX5}$_6uA3k z(29)v@{K~IPA>lQRf>59UkB65AP7KBREp=G`h2i;@a`fdK(li_SEa>J z=JpX_LBdUE%ecj3cjvo+Fp^XoGILQY&!h-wMG&S{Iz2W6?bBhiZ>rg6jn$WK@;t2K z|2GHlAN~PEa}3p|Z*cfE)R4Ei4q5|9rOjZas<6#4v)rXiQ-j!eZ*RKEsLb!+F3&pD_FdGmCOl_DO!SPsF z!$jZSyb{oB$iwIwHWNED73BWpk-+_$(DYqOTCVzCLuVaLeR|USH`7& zIq}Q9UP)3g)*Xea%6!}NA!;OAI}ae`g=b;&Am<-EQUvIXDa!eNoh2&V*%&TYyfknV z=mPxgXVVn7x-yquaEtR;V_}}tBI}&}lIWoVp;-1e*-B1vY_MbqlMqrnqDOgNv3xpk z_`93Or`QlHfY7lsE4^JW~QG7$)j z6Ho)cWltu@BADV7uk`tTX&%2#`?u8{pfp9C^T;5Gwh&CP=>rWJ_Mwx2!fxQHq5Ym?2@k zGVh@MX*t?@@T%U3T~iM<1d!D}^t;g&&oPO!RFu8cwxs$7j z)oD^Y(UK_E3dzEjb(JoZEzd|RPI+eshOg_pmbeU>QtT=ND1Y$N>TK_A#dx zUb0?ZwPo6R-_5MKp5a6d?Xu_o$Y+NbGPh}+K}ROQ5cQ$1(g1sRV;kTFL7%Jx4p=Ec z)X2}EldbJMw!jNIQzcO;7t2X_KK44h3jPW2ZMK<#4{QKBU;zcl_|-Fbm1r}pF`%f^ z`)=4(4X-#@sI%Se*i82G1o~TgkQ zmBz38T3auZe>S~8`8nov!+~u%4}rt*mrlmX&|{k`t!#Y@F8Zk&k@=S(1ayDB=V!Tthus6$@FNW)?l8=EZikVN9uGOg+^vCv)VotB?c7$W%yoqb zeL#OMCe`Tn3_lPjp!Nd}R?a#*#v6xq*QfVT+U^}W^$(D`?pCT5E1!oBI>m*vz(}h% z7F%kvpJ_8NMbD?i<^;ERI*2B{PH26X#c-hGq{7B^36m3f!{P-+j-89=V-%1gl#HgE zGnUeao*C^mt7onY;;a~f4NnP=g3&fK?}H?t&1?fg2MK6A8%)zHjs<*Cqy}qrSl}Ku zr_}W6R;SsBp~+vJyc-k;)YO)A!)~s~#Wigg-f6fdy)%E>WfSb?I&jzpc~o5sN>`uo z<_*vRx$?DEX6MN(7ZzULV9L1t?)F0&^@|U_lIR}0NCk94{!o?pibUf<^p&~F%@Jni zl+{+pFXze|(vHdNh8%38TUuj99nGdiaJ!$Z@e%?qktS!GKaP&MR}*q8Y)G@$^D{6G z>x2%ZCS4{Z^;N%)G>$udj+gqCY;396kZZACPh*Yd442c6G0$~TdxajG{-N7dDAxQi* zk*-vtUL0P0-xIC;I!1D2PwmEyn-3YerMK&9Rc6)exxs}aZ}fr_#BT1q*ucwGEtQq$ zdoE1U%t?$w8*F^fN?#X!i~!w+2F>9aVNF8kGQxEWE!)?cicjBV9=InNe+R@#=Q___ zpVgR2YefWl?3rZ|jR#^MwkD5>OZVOXetzku*IZ|R%tP4}Nk7lq>8n=%~vS<5MhTZUXb*0{UMrrnzgeBf`?p}CSO{$+fq^*nQ#cOifite5qGpdGAfpWc` ziP@E^_?>jF9FAeDJG~=jr-o`MD|yPpT{DZUHd&^2*Q((Pn<7$oHWM}aLsoZ7TyI&Y z1&}e^SFVcW9}e)Sny6bftTtCp>>aURE3S@gpKYYjH(h0POdU+#j8Ud-?%8fTZ4{PZ z&i#>Etf?uT`s?YKvFnJ>th zjUv~j^3p;V)8|tPl7%1J)%tVsiCp_nvm}PHK8M{lkWskGe*59-j8I)MUYzM3butn> z?qZaGuD_u4S4)@5$5$J?>Wx=WdE zbP%?diu+sl`KX0$u-yG9g$w~Hx}`TD=YaUGrnUn3BOzooWUT{lH8JpAFF3RJdA7SU zaf=&}vj%n5H{h-h1c9|ZDCvcoNsq%Lm!$U5b_DlDJ<$k}XW37(9y|1|%)SO7UVUVyxxv_zcZ7 z#QWr_lRso#MFerQX2Y&qk@+poPrtwNZb5jRg2*-k>I4y@GjilAX8?jqN3Oc3%RrGG zSACke(DBEt^Y>`)zs0m6hiK#~T{-g0O2=cJX4bHhAEyx$M&Vey7f-?~i7s5H7| zGKLEpky1gBLB~bLf^y?Z>EX0+Lf@9E*OpL^OK*_tj*C#Ro$F#gT6VQB;@fM!)g;eW&Y9U9s>qft&uX$*ha;XMHC@woYGh<%tAg&N0zjVD{sW&Xj zyWF;H$rROXby_0dyoIZf!>Fsiti|MTQhg-3X;r&;V~YBNYHk-ZFRHZ6J9ZVt@bf>TQTZ7-+<<#VLEX~n)*uO0c(>9RbuvX_fo`eOIOMzhx^MPsj zxuQ*lP%%v0B4HoGO?w}c7Opj6MM{`<5S}ycny?B4Nb%O8VI1IgvajcN*Yw@oCe2l9 z+DGIWE%Epn^K3D^_kMn}URC;2sJZC$D?ihip2}e-{DAk5lPbnR9qViRUY(;GCE2~` zvq)prILT}~m3*YV)b_HZiczz#XQ|^|2;Ziw@KDW{Fg^0-5%idrhZsff0OmeC8+*yT zP|d^hJ|1kkq0afheR_ygz-i68@)>AM*&^txZSOpS_8iDtd~1k+QqSA189SLCS!z)# zkoGjNvDKlO6!p@&n7p=jBPkQ1f7@uS$jIzqVr`HdP*@6MTnf)-)4LZI_a7|AN;2LG zWWbyH*1+p`7D`X$ED~QFg$wZe{(daw(`Wg0Qd~PaQjgIHJ*HX?iD+UyQ+BXyuU8CB zCp`9mUD@#<#uvVg+N^vVEQX`KK^(;;#5(u--bN}QhZpAI8)dk1>uc?WMsT43F&8z) zxpwc2%tTR_PAwV{x9ILn4fQ2!jW#WNZtXip&BM)QkSRf?O7B-s8*Y%UM#I)5gmU!n zddKTJM%*@FYMn=j-E~Z>(cS%u`RvmQaCoE6=E$kUMs#V{tZV4%8r0d97%}SEoxVF* z@D6>I)=>j>Osv*@vQoPj!-3?LB;*^8e(In4Hv^?S@_4BlKQmvXO` za8NZahK0I6MDDfjJ$sYYpC>C;xmRQ%Q$~2{YO*hqtkixNJuz2mMOa_|bUK0YTJN3G z(Mu&RL@u1yB3L+_l1=54v%YKNc_hDW)HB~Ww|(8^Y&|rj^c7jR7+sccdRAkVv_43W zI(vW#Tw3Vdb}wybsnWG4d^e^WZnkb6-Byj0;`*fs?^ZSd8{gWHbXhI1*b+c%7syD_ z?Co7%)kT&+^A%i_%fMC9wks-;QwDn(l&9y4=9#T@FRm5ZXvs~hUS~NW2Ybq}&Oqg? zw+|_As5liE&*VC+u6b&6mP^Q%b7mo#yk0d<2)FGx}e_o3>Z;RF|7@rB# zBRj3F107)9`GCZr!0IDjxyT{)#iA0wTk_uVvHeqRD>qY2KE0Y2GH>u+U9`)8C|jEy z9L;poaGqhtJ}5!TxM07e)#zO#RI1X&OjFQ>OPeznYRR+KKL-B{ezDt{qc%r|37{~zFo-!0&; z9)5HOa5RS1arKe}y{C73FT`b2nQ(>i23t^dT=HF2?7#GI;#|Y_E~Jv)-}@S8YF6Tt z``k>hoi~18%PZZ#@w0}N!0`8?#LPb{9eBLY>aVDixDRU$3D2uRY>2u%XPjG;aWrQ@ zd1Wr%fBvou9_c&jeh$dDy>4NN`*2ZGie9M|HS$aibeM&%usiQb% z-OL9Zg{+S=iD1b>ueUSC=ie8isifDP^`kE37WLDEVVgnoI&~Sx_xF=9w(9~~L+;@` z;2#XpS@<|c8|Ep6EA~Mv`!5;toLV0BmmYj1GZjHYl)-u+MM0>Bd~QtM=u3IQt6z~*(OLM~ZBgvGuGIdLH~$!%<`Tn2W*C;9(-l)Wd{Smz zmp0a*^eHk{%GHoZ?`iwFwULk>Mk@bB1yfB^#DaXEg4Hu z51*>$ZA$kvBh7OxKQGX)qDtznw zHWf^I5M4R1_j!cG&EcE4tc<(2+w79xbSjmBP|418U-m=k2_VEAonPPIq{aL6zx!YD z;U9y^QPxph(f3AWs^=70OL++0@4W>{<_ynqDh zG6*F-7`NV~WE6;TG;8A6CQJs{%{oJ4B#hDh*?L4ULmi?_9r=n?Zg(!&%?wOo%&;@# z?O?xXWMB14yUm59TGMPF%8|!fFUqnR3ns1yQpXFv?WkD|&91r$wiGtw)V@V3Xlq9sTP(^K@&m=NE`I7cKZtxu3*16}U-2vGB= zE-VEcNk{V2#!HR^*tEz?cz1aOuU<3R3{lY0E4IrT)HSFtebZHPJ85srd}v}knn{q$ zV1!<}Vc}qk*ZZrGl9+V&mwuP|1yS=-tL@I#RUOR(rwC)7SW(w|(>xHMgN zfOkOd%%TPgK0twJrDcv+uTp(ve{E0~o)oUOD9jSyw%Q}PoBDjBsIzGE$+jKPhMIZ? z!kHnArh;Wj@9VLGb9Im?#Eh(~(DU#83)m8f*fvFnmL8#bK?bx2og z0`t*W48NrwGOOfUEC{3wJJV*2cw|MYLP4@$?h^Xq?6dO+I&;iGY+n&GgK2IzX;xQy^A3LSMcsu)tj#Wev{36Vv^2#~`vqO15N_Lb4G*B{ zYjV!d-|K_9HtbCyO@Sk4m56s#@~)!=-7;G0qw;8joC%TdO0M^mbWU^fSo1Px==D7z zmn=OP-W2hC(d@7|^w_~CG`)>=J67q4_Br%{L|%V&Rr|_vo}*Xc;Dkyz=4}Gw?R@I& z=Nu2MYE!HumC8C)FvoNS2IiiDRoC0tdSuCq5*U8~!4j{kW{>~k{H?cHs? zrNtH()Q5ozMQ=?SOx2r2f96iRt-C-Ipyavvj(z5iwy5-tCtas5UAyo^c#hcp59?m!Clrqa1hK}}3VG0H>=~d^3Sia@P_zpYNQWj_3j)XD7!ip(Z zenu+frv6p-Sl(cp;Yuu7|4461yyu<7w}VykrK_#}kg2F%xyYQXD(jbm`Vq}(4p|K8 zZm+?ss{)Ht?YWm(wU8id#urPVj>ZB|6TAwo*})M{d#lIAwK6(H$T96fOLDk;AuTS$ z&P#Z#l~ntO_GUF`urd&Thf1klHHxQRB|ah@)jn@GF=8(j8pmMs6c(}3Si)+Kcp?9yw3?22l$y9qf54TQGw-{ZGeK;bOu#>iL8Q>uoFk(MZ_!>>twZ$Zn??8l zDe~TX#&7OlcM1(ZvC(QJHwvW+AKw>O?iW{hB4k=A3T#J%w>8+N-XE21=kH(~Hd}Wa&eEHg z2I=(yTu>pi79 zvFs$4_Y<+2!Hpl*^-Y?Vh#}HC=PeD=%ho(A0#i0;ywROsPrvkk@E?Zshf#y1=P&;3 z1@MPg`e?DskZ^%Uw0X|@=@w>X)+buUD4?hadh*=cb<~DbEI!iRZYY z$bMm>|M^rkuK|WBiu!59)6V_kaH~)AsB|yuNOl_We5P>$x#tb#~3cmA}S%I&?6X0CHROu?sQ3{!UvZ;IInZ&K3EU@Z%p2MTP_z z?&V|8ex1cv69|}kC7<-hk@(bq+Ln)HfD#RfjLomVvxM(>HQiv`zfW#W%t;)nn{Ye`_s|F9IM1`e|21s zy?jFN!KXaWT*OSmtK8(;%js-MKh>djvo^)76N4vPv-q_CHqIU$CaD^MxyRD~+ale1 zH2OpI3*x=K0@PTr0I?bWFDmSR@PIE4TL;@!%f>SP^@GUHSeRly-ns8jb|-b9#T~yc zAoI5XO@$u78Wq9PxBj)><8$(GHr)h0N$UDy8%YZ~5nfjhL#qFJ2E8l>n8)iq;&pC+ zJsUrs@kvzUux5S5u6%AR|0Aod0QG;@O4V?40s%-wrE~1vzdqZIox3k+NjPfEecJx+ zVwD&9hm%t!9!vMv4i+7!;18lJQI-W3CiZ%u@j+>Y$>xXU+`I6_k)vFXsd9Zl&WNF;? zmTHI=%^#lHs4|`5A$yGHW%0l2j0-NkQ#Ug;JT!}M!eg0_zTzOYu9csE>-KqyJf|hG=+SF+F(E1HGMX&AKEd{5wz)F zs`8k!w8mcV&nvU#Z%VG(0Z;Q7UP59EC&sR}OriE+kaCl;RjSoSkDE$Hn6p!+ossIc zgFv#yqPn(-Uqb;+usLr>kLU%LF7I!V@xzuRx+JGtL{fmuxSyT3@1fo+S2`86SEILC zpq6Q%H`g&|Z>g1DG&t>Z6APEzrTk%M6a*xFUHZli zji3ZE_F8J$NgR9i4>9EUOfNooS(gv=I?K&*#$j;t4HYd#*$Z{n{Z(nbe7Ag0Lha*~ zd_-JX5wQ4*QJ20c>!>Y16m{4u(c=l@O)zP`W)Wemts@l2BVDvKz5#?)j0p)pgs zYA-pkYbj81-x_A9lpeXckI(it`L@Gtru6K4@cst1sOMga7Kgrum}I-eNNK3?M9Q3_ z=~CxGic9!eAcj5>Df;K>=e=-^F#RM`H!WZ=%Am@#UyA|rAqgq+f7pA^u%@=4ZTN^{ z0kI(>pnw(W(iNmwQ0Ynuy@`N;^d>c;A}V4~q=uqYA@mk%qEzWML1R3h#g4w zk1)_FU6x8sC?)!Wo3kKXEFdvZbv4a#F4wfXl#I98XnDD)@|l6L)$NkvrP`X?=vEjfsQU1M(IZy{-)(2yp*E?mUt8IJHJXtnNs~6q9Gy6=%#yw5o_ATc3EXUW z^UiZg>WsZb$+e6Z-3yUHg%Kz&$3sm7u_U`0J3D9`_)XZ_A-hfVeiFh1gGviWE|>UfSQY?zZ6 z#(^Y`yexa%_2*5f^on_Xef{IsHe8e}Dl4uWKL06p+G-j>ly*Gs-CHK_iv@U~$ z#n0L(qhjWk+hm5AKHFDTUJPhTl!8494r!SW4jsju8g>MD3Wb--Oj~1EGqhTodTisD z3HH6=HY{8*gwIKVA}?RQY?n5T5g*g)FR;x^B@(0clfdncT!R0yQ0^<)0~HXy552Wv z5PLZwmwV)b@A3Bjc4Npn6F6Zu+QYWpG#tow*Pjo>;3#fgS%XCb}- z1LsiKTH=v&0BuQBb@Dj}YrNIu1Mtaa(ouP>_IRKZyj1yOZn{kpU?rMgjy19lD&}rk zlbTy&@WGd{2wI%KfGK!5!$llAdEOltZ%7@7E{@M{;I+@1o6Yon7J~;E{QDw}04z0E z71S$OFTnJdOZk;jsGYNxNWm|i^ z96$aqf-FmNcUIM~DIS{O#2yTwz{v@gIj>1~Q)lm;dRd<_8$l!uUq zuiN^9!FDF_-1+JQ+Nkn*dsthpu3DHg6+6``0X3Gk6GDL2OGu7v8Wy^+;`SJ#w|}J( z_&KMYX+~u~V0Xszf(ZQ%NHP4II9LJ* z-I_S(B#_@Q@O00Qs{993t;8F-b3N_VT$x?;%`@gs{4p}{BMO1y!%Q$QixSH=0k_%K z^M;7PA|cZvv39&!Kw6ExKT6M&7ACi5fHK!qd3u~N)o7y|2$za26GO?R+!uT=t#Qi= z0K|nTO!MorjSwJD2+)?rgD?#xFqMhIQ)3tMVz@Np6$CMBN6rofadfMNVVdiY9QPHT zgD*r;LLhNW=T0%PhgZ&_UT4Q%(627vcjWk7DNYjK3o~odO+!UWOo@D~q4mW&GOmoj zdR&sFx^dtsY=xEckO;u1i5l9mr{$@HZJG<>f_B!OV_oFW(ITeV?rXho8_kP6Ljcx; z&hg{N)9x3R>>;evVjTYqVv1xnZ9+*>C;nTRM zh=Qn$i}B9+#fOlIbhQ+=&{B+7hBL_A0< zry<$gqg zH2SqMTaYWflVwtf*xl>CX*(f%)4VbhPtlldT7OGv^Y=o|RlcB2LzAolvgeb>4pya1 zr$U>qwOdiUvp?s5%>^0Bp9^aTh=F@Ugv(>{YFFIJ*2+`J%n=d2zS1d<9u z=)4I&crF0vUu3>~JUH!EthkLKxVYkg!BB}aGV`qQTMvF)<6DOcZ?_AHdM}>dEA4EP zRoYOZRm~}tYFN9Sj{kICf*w}qDbP$zYG?kex4!9Ux>ukbM&}}xMV90&Wo!p^>|kus zg!$S4M5rMf(^99RU2koeT6s}|Q7?I658gc%mQpXjP1ydF!(gb&J#UxY>`5`fY)xp< zM4pylWNuZFT-Wd$kc7-X@j=sSH90BByXqD;+S(K9eOi2Sq{cdj7kaPP?7=%CsJ zfd8}hC`#(eKsuV26+{5&S$V@8ylq^)ZeBeu)^mw@&}Zot)tZsd+|Wm*vKxh{FFue`}#?rWjtF7v&Hc2;ffBh#*#4tf%LiaFw>#Q_Z)EO37J%b`Bf z1LtdM4ZCqcH*=0)+&|sf@SRPvG0I8JGBb+RUF1jz ze$Kssf2@H%EPW zRJ-){u6~3cL_JBaBM$3sA@!bQRa=i#7i)Y`OdVMz5EWnd(}aoz(yqq2 zfLt~2qR1(1zBwpZx9Gkrw&35qSf>CW8lvK|*A(_9cc54vWZ}6Co@=`)>5^%_Y1dhN zYi9KH{JS933!;p>Tqp|a9pjl(mI(=iW2h$@Q!yhiPiJR+Xftm_2>ZC%z-6GFvkyD= zN^a@h0yJI|=IoWW1litisVRuCO~v1bpDJQYrnrprW`f=p@9HFx`8Hp6@=gOx6^Bdl zvJ><)n{?ZvN37{MEK@?m0B9M9M{-Pf9jyR2Mi0NjP6|s$YGJT`(HJlE(^X$B!_R#_ ztctHV;mZ0QT??E~s)_yj>UZ2z^upGvmm_Z9$rH(~Y^G63jk{n9sEWv{p(ze4=ep6T@&Y8yP8;qK!*sf0W9E993Rxdl3(<4W9O6O(s%9kudG-Wdc@V%F0ouQT z+PzFW&t@G31$-f=pGs(9M;dJqP&uCcS1@y}zRPE-%KczcenD|5x(|DW1 z>RzeZ5{Btc zEkuEL7=il$r-0nr(bx5g&m)19ndFDQSISJPFE@Rx!ovEyoY(o1BQ;8@@wfE5&faM) z9bm%Q!;A@~29~-xWwNA_#8(o=Ab#tk?ho0{g~99?wOL+O06j_XmI}pAKsvAzixs(V zZ#}Ow)3-P00l9fc5>$_6+ZPr*m#?>zAYA`Bm4O(VWE)ek23a8Qx!zg7 zuV?_pRA{efhE69F0FJ+|L-ifg%I(fS)*rlYJ2*W+72`Lpin(GKsg7NDd7a4{7eAG< z1vSQ})l^ll)@CUX4N>Hk8&mbvJG!}%+O*Oww^&gfm1|@@dESTgT*$bnL5OelL(w)RH+$IHI4K{ZuhC=10Hwho$#hkR(5lDcj}bXQ6aoS46+Nwb*+=;2#I znJXa%1lJWWKs?q(@7{KeWwd`9njG5W*O%o_c=?>uB)))`#9VgGSX$ar3!adhednBx zV7Wb1e9jqvoh%5wRV|OE9^+f$aIiXZbP-HQ@u&7I+RWXzmA#(C$Gv>6yB(A}TxiH~v= z>RtEx4QxfJVP3Lk#Jjw!UKm@X*>YQFe&`i(vq*xI;X1wE6VNd-5gd3h!4ZLNl6HJBB4b=mGttehjT@ zt18i^SK1Jw&+-UrpG$`-C+3n;XyIqeUpVW#ltA2#`^&b%EI)r1Cnp6@>OMOt#9NXD zT3&CC7fa#5ljD7!DlCw3_5v&pXz?*D<#xQuPA1h=#O{Ahv35VBTm6cj5<&g55_WgQ zj*EB4>H(dF?Ia!&-d&PAlF3z4kuemNTW(~n*XT63-_*6(D{}h0=isI_?3AR?;Cy%T zMMpn<$f9E$){Z1<%;xBYQyd4H+)C$~3b#8ZN~=??604S%(KbCr3*6x{X7{>#&i0`5 zuX>y#&TsJAt=R!C|?qYqq#Hu_9ojLfENxWxQ3SF7&)h^Ab8FJE-@wgDReTRwse|&BlmXKJ;4rz?&N}23hDCs!aH%s;rG%#+q@hM zPRPEwn^%coZ-rtEt1aaBbUURzJMseU{~xuk*?jN_(pB%L?W|M$nf6kDyt`@XQCWsqlpA7ZJd2+KN zr;!AkS)<5iHGp?Ib(T|G2q>$Xm-o<(G6+J2;GFK1+C^%xHK5Gny zRrU|3rAlz;uS+WVE+%+RP)`%m3@LHxvUb@=tvn72#)w{pknOt|^x;Vt-1`DjTH+o* zVW+}1*LY-4hve92g+P)d+4S~u%YPPc4!F4(R{B8yQVPyEFL&Z&l=7?|l2fS^{)z11 zi3Z5}cf1>Yk^B6+W{NI14ZOANEqF+}9zwmWVc;{LnhEr8k<8RdOCCh0CKfyOT|cnm zdfMj4#x2(`1`V4gzTQxyMV@Gcv@E($HZyB^c*&6-c3g0vTpZ?yE13EuJA*UwuDm=h zPJxNWdulPKg|Zh>l_Zr!43VK26i7a-2T=l*hH8|+^df;6Z-bP2TwfmF<*Q+0mMEYn z)OFM|eOioUdqOq~aSmR%_I#d{USD0*wcvl0P%e?iD~1qWmQ zHmN5Si%SLPLMA_QdQWhm6ZRZAFS0;J@PFRlb#dT2%uNGwjHfw!*NHLz*6PQ?v~~Zo z=P_pu70Aop=RMcr=|6 zYLAU|XCKG&_gL3-NT^@eBOmBlHQIX=vZrXa+)PW(Ne|VP9%)^&;&dzSD5$it^p8@7 zW6YpzDR&A$Kb>~yoZdx;^42bpcI~m!>8wj@f&ara`$IO%yVf_-B#<35Jf}!xbIMrr z`kL#|BzR)4cu!+N9*Fbk$}Q)a^Y@+*bf0_zIAJ}H;;3dEMg5IM9fn)q>SaI673|B6 zn2mIjs9g{P`o1^?-J}U3{f05cDy?=yeI=?6Km>Cl$+|@t3Pa|l6SWqlkr+*VP;ue> z<|$h9Y*=4}uD|~U7FW_dzBsSG|NXz7%o(oAm>Y+ZT)Plz2@7CVFGmZ0gFiQco~NAZt;ON+w`e(Sfe7}+vhY-3^i1Otal*}kCqA} z017L^C?@`$OYH!;HHA;B#dr+yl7l&_xmEOPoC8tvC8+6X-iCqsZ?kI1+ieG9J~&Qq zys;?Hm{TkKu!73UCrTqO4*=+Qy1M%f3{;f>zgu#F+I<#I@lXa}p(N_i0ZyCYJVJ;W zQkvy(UP4q^<3*e1!-wb2(w#!ZMo2i|rZ@MVXSOC`)o!;<9-Z8r6f)!os_0)9JS1Pw z*b&z_5dCBD>3xLKuu1vtT5}0`M^#~b=5N?55vf|u@ z$AJLt*1F@viCyh)fdyg?O36zUWCirRG(1V5BS61ILT-Kc_Rxha0JmUtG>bo^% zjh9=a6^bD8(S`+qW!pjCIK|uEe*ReSdQ1=4cxJSHg&=aU6>1zv9zWW2SC7_4`x-g_Xja95BoU1Pt#=QpW1fq6t>4NCQm%I4HS2_(b2oUy~c2om7hXWDP82eb#x-Uz4g)~dz03?Ry zYrhF`q?cP2!9eTTKvB?~B)Y`p9GJW5rEqAG^B1?!#`JPIJz`L#!G6dXJ>=PWJrj)x zDd&cV>4V&?J5J|tqNE&vq6NHU-KqwFwRWvENR3Pxg5{t_lJ6FTXqBfcZsm9ZWm?i1 zSkKP@!Q9Yeg1dYT)5504CJ|~h;rZcNiI;aaQIVZ0=EfvSSAF@{Eh%#mpmQ8ZMrZ2|Ur091Fe&wl*mS5amdd_aU*$)-iS#|ylXFqIa=?~R zaQa=Ox~VZx<};qzC#-=62<{Wa4K))PxfW)c@zf*kBqzVTo}^yp#npw=oVQWZcUGf8 zj9so$kLDR{rK#t5#slp(0GSL-=YmQ0`d>x>3?` zO-@qst_(|O!`+H%D;oUd`mHBL{6ZIM4Euu35-_qvd~F`s4cfzf`1XS0?fEN3afLE1Ulq?*o~Za|%AEOAi)2&+eP@PrRz2dyZ(!$_01 z=Xw0QV$q(TM_%5!ya3ZpPyLT%?T=899>rVYqz75<2^QKk(<6{l5(pYfD;Z*kw$Jp0 z`Qou9f(X3EQw=_=E*aHly<}%d%xIBSh@-R~) zORKj-7uZw}MGS*R#LMH%=J+0xVrELT?TE*Co=^{bn~bC_Eqt3IRqIW9~JawvS>(dF`PNP2Nl5Ge1reGrd8DA0@W z7c?e^N($%M6}6&)9Vijhv-D(V(coLG@e2A?Y_aCZ3g`x}%*X)gsM+|CZ_#O)aD= zrCh~TUy`AM*NyUPBcBH>Nh?8sP5sRBYB_#VTOeAHpA+{SHnS!a%P;{H2Yw>=mQF79 zu1vJ^D+WqlN%SSi>*V13KP;*_3+BH&)(_+@V$XXZ3+tI%dV#_Pi|(EaDkyYzpzzG5 z1@p!lygyk_T`^%3O0R#}{MpRy~L8bih| zq|qz<%iV8Bps#6!TaF^q}p$p@iC%E2*shM>jVk+<;;Q?ZWF9-8JcIX?hNb(W?S9`wv|}^?GD&qgHd3 zHOv|~5>6X2;nrmjNA$Tu5-%(q!Kdh(hl9NPJo^@cHKRIC3wFxlLd>mOZ~@vW8v1mV zH{KF^dF_boaZcU7H3L}s3TV-GeyEjvf+$(~0I_3yp#u@|rCj5RV4nRcl!hGfV_N4~ z3C)KESctzoNY4!3^h2gENLO&g%Cvt%*U!`BQ_0S0+n|3ZMZtb!14XR2_vX%XOFJ5* zs8(I;WXkr;s?fK{VY>z-2d8mz_8$wA6e9gN`^2^=vk2#6DtaF271^|(6g6T~p;2v$ z4+}4$7Sn^F?7r!!0H( z2@R;@Dals^!|Vy&Zl^+<(~tVa=iAe338T9%)1!mj-n34pmldEic|V1ZO#bQ7^w<@- z8Yq+OUrfqUw%pBlIZ7SUT(suN(Dog3NASf_D z@(l@>gk*@^Cd4j6-@+jHqpv!}RcC+kmA4G(3{#$3G3s)UuU+}LW$p;!Ldm5&O*M>H zVD$|sP&W2>m>f|W8m-Aa1(GLxe5zCENet|=&mlb%owx7c+0Vhx8O5>}621bOM)fG% zycwOdZxkIWOZ#vy|-ST*i~g ziGA2*6FwAE6?xB53E)H|!_S7*SPq8n$~~697l>`4U`-v@c=%3kY|);1B-7GHqVc=Z z*scqdOcny6%pl{7yyf6U1r86x_K+nQC1=U-I?lb7bNWQN1im9^+{@^YkQK*;Jrc_xaXmqx3#C2AHDw2VY?UX)J7>rJLllnIIp zgw|h)ir>Tc@ID}@kX|Ae$ZX==#jtU^PHo6JNMhn^C*&V;fIkf92Z1U9GDAG&s5|_F zAb;-1x%vRLjL=;07qaR1!~82I1pca&ylwM<)U%6!Txcfh(r<4DeihIAQ&u@uWs5*| zdK0Ey`F~XzLI?N!^cs(e?DGeH>OtQ*3*o1Mike@~{M!lr;z#|G?RV?t?*#RiHKgRm z1Tf%YW<<>q@$n&+PCvB`%QUx;8VoL3bK0N`;z zB3|r|J@zl3!fP1Tyh&@`oBaOkl0N4cV0J5|?pU7L(A+wpYRjQ4}oqP92y(|v?l&VO5cb}4gpd1B1XZ5m)^p~HWOj43H zHwQX)N3=wXwxo6DkIU_o_$l4>UW$3zdxMmK2!!WhmwU9Y{xJ6;ls)Fi7PJi*p5!H^z1F-dJ3U+G+7|;HBzb&fZtg@ZL&{~? z2X@i4m#|6ke@ifa9qf`5u+;r2n&wDMMp`^DORtM2umADx;?}z*^^X9l-?x^Z?dE68 zO@3zoRH-Q;E76NfCH>eLKQu==u859}7De?#zNj&oo4i2tt=mnnyW&4=jEq3 znCy4I{bf|wtr%h%wkC9DQGr@j<}TV9O{?7|B0sZzn?&AVn=p}jQrWJ>ltE4CCEd!neG;Y@OFaF&Iw*7txk$o0*pB=xx*&>KO;djzYD*l`X!Oz=Cu5?wvUBk z#R1N5P`fPiFufbR9B!-a*WTE6x=OU5Y&QLeIV1KiA5Y=;-l1G8hCm?O*2$sN`sl~T zJ!$wz4+J7zF-+UF|0lGMox#Y;M9TpVwo@-(-b_a65}u~N{rowZ;?)AALwqaj-fRR8 z;l_siw)tm6Jqb=e9X_t7zub0&kpbYaiQC@f)e;ds2kiwj(OpUb80p@Fv-rJpz2JJ2 zZ)cZ$Q+9u2ernYvpqxs7aJ%Nu9oO~Uz^_-+%c&NtCz`+e z@}D=<_g+yR{j>o#cu>U8UH+ZY)TZ}_>-BRk7ys_dpL+g#LBQklt#=$b`BRsFH{76J zpmj zv4rqTJ0ErWEgpZfQ~OHzaVG85ozhB5TiEt*VOEyaI+*%!rvOuTno7uTZ%=w$KNhCj zJsewKIgb11hj;(}=Qr3G7+`t@ET=F2#Km8Q`Ob7p5Ncq^Sn$NxZ~jrv ze>_V!7;w_`?mkrc=SlhF;;+~Inx@|uz^`fgeQo^OO<#80uif;!I{l^ezNpGyw&{1P z_scf@4o-eSh%cDr7lil)A-;#HzaYdf2=RlX@e4xyf)GFW=D#4sF9`8N2;~=q_yr+; zL5LrW=I_zMUr~r(QHUSn#{VCq5bt0^X@(qMV%=|iw;d8P$p08&hsr`7Cw2w>po{-z z74GA`5e7uDQDuUYSAHK&@9X#Md(TVbd{#4`_4UH8!4HeSG2d+_54 zt%QXWY}yl#_M~^TYQZm)*9z39UTpZW|7UFfeK%jHfZT#Z7ldp?>a%P3Vk{XM7GHoB z(J=60BHLEt%kFart?Uy-1El+Jw74|YA3lwfR;z%@5fGDtLKO|IjV(N z(yo%gQO<1Y_u@<|>*R<-y23hAKMy=eA%G;>C9imHqvwO-fArSE%*to zXQpt>ajJhGM6oTi_+uqxv)_4ag^M;kZV-{7>97*Jt?jX1bXI-Le`H#K*XT^W&kBO3E`MDr`M0-$xC{LUSI9jn zxf;-5gvIFV%;om7U1IjFP}gNoc*C>|mVXu>;VuFR>oby)HuNh=CZ&D0A+;L1);Nn8 zPV16a=L`0brj9{OE&z<@FjmNHa zh|2n>hVSw5ibFAra^AyLgOu*W1_7jc{afvW8 z>6%b(`ATmxmP&X5$}tk|lk5JJhm?>u^CMRedRs2JQIee}k!52deW@O&|JYz(SL=7* zytlpa#+o`uu-(`GYS$M5CPgV_>{;NdB2oBxl0dSPIo?*p6wT&K_wjBEea4OxWuwu2 z$DqVou?of{|q-un{bdEPom7=c4x2))eEL5u< zDPP2ulZl1A^8`4Sl_33_QAFD@2hi&xQ{t@^La!wX)Px%s=>I z0WM3hUInYbyM1**@7(yMys365JG)7MT05~|%Ix_DUXc@yuo@s+K8%J4qs;|h$WJ?T zrC`JfkY*D3qeMsJDfG}G_z?bv$UCC}{x)y;LTT&9ZnIqHnX%K05g+W>H^sR9-EJQ` z$c?rbUci)uv7is{Z#igYX{*6@$ielYo;CNo`#QrZ!USWSwv^lu) zgCA*iIx)}hgdC%LZ;T9{m{PPfY}m-12qX8YAe$NW@Ox?AF9#$+xTXhDWF9}G)E+gc z0FQbS2bwyTTlP7LSeJ=Ce-=Ru%aa~honbeBnm(+9J;o^7laYUcxDr!?+4N)@#1V#c zPK04}Rf1Z;iknw(?qmw2jxobuQPz9DQx|`Dqd6w|JQW*8`^X3qMd12OcqJ2F8yRu? zIqBNzrCKcQ&!C>p1&*L&Nn`_Eh)8%8r+~KgLQ_fO29_JtU`S{#bO7z$h)g;k|4L4| z_}yhM{O9=c<$1Lf_ax)Rz%wG0jlD(pC$FZpaaMz8O5me!SUa9HUXwO44+tqHYAMj% zaPIZyPLQ#^!!mm?DZOECxnt~6h}lv(x3_Z((uR4N>E)z@ z77En)&{4YanJ+6+jAtb(Qq^%1x9UGEPZb5eV)WY~Ems=yA38Mu9zza$Ughw&%aV$f zWFrgni|vMFx34Yg7@$T-;Ysmqa$xfM)!Hl;PFmh5V5fNGc)a|JEKxNG{A5Q*uq=`C zxg)v2!qyT~U#)qpSA(dK+@EhhBj>a}Rb7ChVw)0_j7Zs;WcI7bMCOOw_)zy2Gab^* zMh;QY_bqT6Z-wY!RT<3GlXdh~nsBz+G~q2@(ou{*B?fqCT7u5LdyvJ=lOjUrCQ6Gn zC=^D0+9~P&ISgPW=P-RV4ZimD{AqoppW8!LjX6vzQUYkxxAg^0`G|L4aNA>5X0m$R z%Efu#x?Qf5*6499h_JsIIN;Ku`x>7|Cokm_9Or0=rP;aV$i>aFi#IB$<;ZX1`1=o? z;s7QR9=mh!ivfAhcig1~$@2t>CA)N0N}Jjerc2eMlPkKRV1=bSsXC{i0*-Uf_6{qK zbt_(DqNVM#x3e3n(91sOQa;^@Fr7&mq_lYt@>KG8YCp8~?C6q_Jz(}p;T}8xuLz%poBcZV(7|;;!n4*DQNMg~y}eNvBY$URwlu$tLH!UIO;(F`Q= zcz4q~jYtg6=PUx;u*mh?7>jVuv$p#5X3Nbo9LaXZnQ167a5*wqPZ@14PZ}?yuK7Ki zopm07J3z@!X^RGSv5Me}@&338*MVTLK)~xtTyg7&ey0 zm9avc86Avx@d8k#qFKhasK{qHa1^76&b@;CRB6Ta$>D-7qZ7Bv6{_7bT+)+@!PA*9 z%frXkpGM%@dh8OAejUwS5Z=|O#M$nI7jq#TuUZ+vEI3=J+5q3b3D*a)rFfjnN?v}Su#HII8} z6y3a?;Yl9=xxi=to=72{b*}sX>@|jpE@h_I{|JdIP^~Yd-iUFnEI87^}GH zbvJw=fYhG)YRzxF#p-x4ROfnm{^n@1;Fvo!o1H7K#NN_#koc*`6@5bMAS%se7P6;b zv=n>yp@BoBWtRxEv=(r(k-LvrE@|$lD*;P2?WF=Z?{LUsk;6%Jja$!ABHQp}JlJK# ztN<&5xfTZwxIw5r@9u7u&T5vS2~AwYFV2(WYLG`U@D6nOS3vX+5b7^xr1`+TbIby{ zgo&*wx#Q!V+Y^e^C+jkK>Hu+bZj+qDa8n3*b?unDMqtc5mU}4bX^WPeh}S3oS{qDS zr?q9csFZ>mc4+K5&k-XJdt2EOHwr3bN&&{gb--K^SA5;_J;`l=5iG!zoqpevNw+WB zk0+q;qJ?LN=v`J*Iqxjz?h$9E3+el8Ec@>cp~f2A!DhXp2_mxo!9nF(vO!)Mmw~Q% zjhY|5D@SIHkM~DD=Ek$Aiu7@d35m4KU)_DwWMzB|b8uCj*bG(3{g_K4;yB=@t1a6p z+LT<3<9>`|Mc};8s@CW*O(9{C2-sM07T(p$xie}X^6?nITq)qiivFW@5OH!BH20`!P|qq^JMXj{ZF&>m6;Bp zqdi{DdD6-%FIq?i@G+^8_Lx#b$8JFu-~!q03lpVWIb1Ul+1mMVggR8LsO$Z*j^VwE z{OpqEXJLF}=IH}(D)9Jg1IfZh;spK5Di%vZZyy0Km4pWTN4(Ww>%+l)j(&Iw0VY@!;yC5trZd<>_oipSbiupAr%(@u z>G}-nn~T%M#XeRSu|+TBtNH^?Wj&t@c3j~1&bssYUfP_HKgc(r+mbA^6LzRnC8)1h zG1z*L9O1^7f2c1lLcgPIydzkzTxl^)Q8D+TLCL$DUig&DYi$WHj10g4v^Y3Csi`l_ z!o^e8$j1-{pd9b8k&nOeFnU0DauJhZ*s06qdf5pIZ}gkIUo6 zf04yPPx0ng82HPwe#KEfK~60mPg#q?M?H~pQr-N~6R#~FZm+v&-f#C-V=-{NX?q5Y zJAdv4^FlPIWFJn{`w&gn-*Br`*BQoxYFi-~XT-(TxstoA@(Q`b$C&xnX8Om*p3TpS zdMn)U!1lHw%t`*Kol`ZNS@eY141IK znm6HzkwJHvx5D~8OFdjMy5<>8fqd&ZC*Hb456nIjIj-!>&3Sq?kwNscUkZ;x(IXbv2@>X5@ZBiS7s z+2ve~dDBFK?RCC^HmJ|4eSD>HZ6TC9%{2~u0bWT~p*iPVxj`Q-K2?P#n| zUQ>?)^Nyjr)ly8((5k?k+c`6QGd&$0(K?(G+>}W<=7kEtH&B+{;$@izPD*5ntJ=Vo zC09h7I~>MsPU6hZ*!K*!MJvL6sshoT8yz1pxlcSE+zsHMfR=p+`cP6kWBcGhH%IC$ z3$c8)vH}44?4D$o_Q6l2xoeF+`a`efGRvml{+B$~>lmBKqSHz1#Z}>7?CXt6h8DsM z+f@8|!X0C@|9#1X8?l<%N2*Ma)59e#w}N)hVl%R-VZkSP?rrv8|BMWd+?(EUr!%!+ znNw1rD7l~@(a+9f5I?QMeAM#81IC-2o$3z04)bM)dy&pX6!x_Xo|+kN+hg=LBUYUu zM|o!I28toff*mh7hu)|#-FB*IpJkb479m9`?z@naO!g?W zm!*`XHOIVq@5(eV>`Me6PdHqazfy-6mAWIIezMc=qnTVIkMo9Y6#(5fN_7-s4mBqF zSRMhdDHp5>2r4se&qFo{6x91V*w9R*kc%4^P5!~Ad|_w$A#(DyA?+D@*f)@;(^#;T#E zM<^(+Otd?rTl}=~Vhuy)#G?Q%ITdL}C2!f)GS!SjX?&&9(l?O9Ez+Q&H@O9!^P3yY z&jzYjeV2E^CIW4rZMPdeT`dUAi-8UJ93Nthl5_|p-0e9-JeGj-n~3GBU)w?D9ZtHC zb|-t4deB!RDKxKAiYSz@vr1>J<8zST{K+b#)QQL6BdNdQShcHf2(LK$-hKNE>SSk; zAG$CdzgD(vT_OnYs@lMhEflaeI}YEijN;5#I+b>;xyF`&p778dMMXkfs+DtG^lzsZ*VK`aXPKBF)J?yI{gM zqv{4H+Y`_SbV5&w!QBRDX9tQuZuam}$Om`mHfjkdqb3DFfEEQ{Jq`UYZ;@oBgvRDQ~ORT4? zB)@8>Ag!Ag^%u9&jkl@f!-t4MootC)X~`9C&a&RK`)UitjFTm$+d*8}Y<{>h4dq&R z^PZ7GD{_v&tnq-|r;*1FM>^s9N5D&nE`jQI4+{G$9CSNjDcGHY$|MuVYb@&2OjyW5#}g{6rN#$_sxV z^$VM;cvp0-R^0+ov3sNrji>p$&#!F=TaA@~9Gwh0zHWhUtK-KHZ!Q5WWv0&_Uni_L zS;^{cX8@wu^lssreGPvSViJ;A| zEby=~-czgX1Zsk~Ao9dpI<>;u6nD|EcBD+3C4l=vms$B_&R-?wnvU+xNZJQP&V=mo z-44!&hANN!XRO4f#=gan^XZo@oZriw4Ify#gUxkprMhSa3P%qu!Pkdn){LfAV)iO* znD~=ln>TLGPoZ_}(4~%>3!@Up6BGsxq#3XEEW`G29q2%=7zLJr6<6;)2V$0o2d>9R zVb4_3V~X>Ey((gM%{w+`iy(5xOR@eBHz}iLcLDvp-1<%*U#q@hVPryt_>IzW9$Lz) zz~aM$^#+J0gzqZiHMokXnH0*p7o!NKshDIJtaRQn)@OI0Y;Qy2o~u!hkQWLAN~4)+ zid=!dRG!h#8A%<)g`T2o9%O;;BS2Q@aSFfa(tq&k4 zd05&s9jYfbdjN;)&Iqm5E#OZ07`-y~OqMf4SRyy!iueQCE+D zS)RR*-n(K4_`2=VgD2vUST=L{$=8Fxe+VPFYVG6IMr$rX}j14$7b z)fY}{C4g3ihUgycd8BrwDO`|SF2H;T5H;03PR~PQFTx#Rk$& zEO+eS4%;udr@bbq+Fg;AcGZhCTV!ZaT$~zl6*AyV?4CVTPOJCc`&5`HmvtxGLtw@W zyJ-fXGMUGF=6OsjJzfCnr4h(9bWV4dTRr!|51EX(w-1i;I?WQphP<91Eo23$wE&hY5~hVssc{3sYIWuM z!v|q3#>YqmGwJS_l&i@7GalIP!e*w2x6t#&ecf(#3YGP{PGS3tXo~}byK-x{@BJ8H z+v9DyS*Nl*sAk0(&xt{pVm`Tt3Y&+ z^Zx#UJ)b;7CgXHBv(++Qxb~DQhHibKSpC7Sm^DK^?BM3z+`IV=0=Am*0zm$mi??q zmQcB2sWH0jb9~ZOHxc0(4~!g-{{@_H>b=3$qdv32`ff?x3c*Aq>4T-(yqxhmH~Jq| z+842`XEPO3vqc6gzAenSLv$sK+@!vBZQ00BPD+%Ib23;-wIw>aS{}MSXpL!8O)Q>Y zK*)g=xGUBk06Jv_TvKg|sTj=6volpIq+6PM({aql6JA%Gu?AezXLDdbdyhLU+BYl`VCM(0#Hwi_ugk_zY$9uWg=e3@(F;&}kgoY`cunpC)1+x{*-I!}(a7i!c++uneQE10AnX}dy#7vr zQ4dK9b{uVjiiS!Q>PTXWok-?EYE!Q@SMNqsbT^ZutYy8QtAPXWnk=`l-l~aQglKjvz0Xa9<%s>g;MpY>mOQcv@7~*Y-fC-VSP^VA!!v1`yDg? zzr2^0&#j4l?FI0i-u$I1eyNJ@G3+l@@k>?wQV)NDg1?Z&FC_6j^8SArN&Hd||G%n- zcd+~w{_IMhXmC^4{dT)D;mr*;T%`BYUny520r}?3O1Alz7)p(x- z-raQH0_LiR9aey-5(EnVi*UYMFTZc08)txfzxy2b<;ta9OsPG(8LbBUbZi3s{q14% z+j?F&8Y_ng{T8Qr))AAghr80_QD`Ui`k;Zv77Xyu|6%XDqngaNzDES5DJV*nrlY8I z=^bSh6#*3pHB=$=BE1Ae1yq_NQlyGXP3VLYdRIC~=p7-HgwR7xzK5A{?tAZ@lKJCX z>wCYI|DF}X$vJ25{o8#%e6^jeH(+AuM||~G0T4*QL`n${(%t^-n5>LDf_bw?}jPRG5a(&1AlN@osdfnj>-DnFqyZ+mTpu1Jp{J5;X^YhV{4 z!&lQGe2xAh{N~Le+*Hn5)TOFuP|pRr+^fHnU9fZ*Xv7Zp&o0_(*1h_Zi#Q}f zjAS5aD4=h5+d41JVQWt9S9%FN2t2Hr<){JLI@C54QljfJIt&K zfhqvOm^0c*aa16sb_!(HhJLz^+rs?>y94VW0^i}vmCCdko$(5CR#0ik&&K_!;1Qsr z5-QY)yv-@`R|V(YPboT)w%6~ee9sBSpN_lcdc9H!`!U~kK%i`hpUxR%$0p{Xu@C8k zdo3b{Ru?N=r^mjmoA1JR$`?GAyJdGhotXHyoH*%DZ#C8U73tm1Zv(wJ2~aF#e+5eoURm< z%(}HSuu%R?rC;cqX$Ewsl(f$=2kU&z${v%`fmp8#0~t9E?qp`ou;i-SbS9qGdxI7; zLIq2~NgP-y?`GAEob(WdisI~r?nSwoOO4!))e7i*JWFYK>d{#KYdfekU5L_zg79JK z>Yz^pA~YGw?38=Z0$yF@z%@Rpu9^YTf0?pRAtvmcrQ-*tj>ahyZU=*=;X2ul5tlZ8 zt_3nCGnFvM&M|ruGgC~#0qCZ<+PaeOf;P%V%xaF{soL}5YGoD>C`P(1&KIL-4}MP_ z{{c{B8Ue?R9$ENa9;%mFTa0n**^SciwKVI<)$yvI=j>{KF+sGrTlqFA-QdohBLf@d z)5}>d+bqZ?^Z-U%{2uLmN#`{rQz4U8)XfA8Qq7~)9ufPqaO6v+@wKjfan0SWBfm5y z?KKOH`vC9f*ng@t$K?A3|0z}pO6dGPsi65Jr%45gKu#5$lP z?$E%H!Ajip5L{QOOur6Zc>x|s zcZVYWvLZSr^9k`9;wSGD8ovs*UkufydkHCq{sS2C9=BF&iD(zCxh4WS%%LFPc53+H z50c?Y;}7)STra$xHlDuXEdlO&Cnt5-p7G%d*mF zX(Yt*P~-aSl*)05A;&vPaf+^>MDHPqf~IQKCPGVc$tROi?TCpqt&n|V2SnYl+ARBB zJ_U#7c4h^AgxmfZ19jZ}zd$HzzlRh${<$c=rb&h0Br!1NY@E2o_4Z_@9-+O`9OE`^ z6TQuDx|W-=r`+#E^WEx-*oX){xx@rTLieM-elhPKjkJIBAo42RTE8#AEi?j z6E17B`*bw3%_BEA-!{GvpBI<^Q$zM<;uXe(aUFw2^*0X+vzs4dm6lu8?HXS_o7uo| zzNyft%jF=tJ4t8^Bwl5_&0Ce03X}p=xSFAIhcrtA9B14uM#2XS+0z{&LU~0z$M@r8 z_8OX4&3cgOo@t(csj^~^c#F1}?)Ei5f*2$N=Vt4*7dZM1PYlsP`0Vz#Q}ZPC+kFpg$3GSemoc zA5IjLUYivawOK44#n*JNHHkVkf*BM}9U@xvF@_gOCBr|;7CQ}0V)LqZG)C7yM~N!R zz4L19zFxlLX*g%maEz0nE4tSpFVRar(+`bcKu~S`T(S)feZQ8ZF1x|?6v=_n> zC!@M(GL+-m$4Ab3G~e?M4!o? zTM14zJHg@oQlNL^@2dBJskMKqIs-3W0g7dRbPrem4VdOAdwJaf8}N)C*4R?XGoVFG zYTsKsP?Pi(yR}zM5hXL-R;x{?T4lk(RrAB_g|{j z7^jzTVc~Ucn;oct)5Hr@^rcGkd*!<7e&0&0fdZU!9&7q84jyZBiRG^ATDR-I99H?4 zt@Pp0H=s5rR0$hWF6&8nRoWkzV-!3`Wq}ej&sP+2L0wurt7Sz(tvB9B-lUafjyc0B zZ;umh`J(Fou_xtJ%^Z#xk&@`@{Yx4em(uyNqNsLSN^{#X%s1enV;uLnGS8tv)EzCw z&p8TIppkx5(`JnV!ue|X(qZ?Tzxx8J{0U^Cp{l0LVW02~H{0;`$`ATZ`V*2tSLv1> z)^1GM34c})Dkd)B0)8nxhn5P^_kS8d$FKcXaHIzvc&~r%qkq_Uv)jDc$^5q zDb`}LTP1$Tdp*u{nwlo{xsZOvp{Rrp?wJu|xQ4V4G zg=xFBuG#{nLH@+`C}M{q@j`udOA?17yH=6w+7o+!spNpWgO3~B*U&9p9jDMn?Bg5~ z$Xiuudz&4c9=pT3w&#SaUZx;Ii6R0#B;lx=^zu;%Q6bzMCuJ*mJ; zgtv4J4ykf#4_w^j3U!}BUk(P@Mdrb4Jj(VrJ~k|>#K550O%tlm77&C=N$qc?rK3s5 z5la>61*s@KpxjajXtt?_$o!@_|G*aFQ8qO@%zT5o55D8MErsZFHdV~|;jDT>x_grf zQ+9_qwoR|X$5dkYr;k};=-E2dICyD!CC(#82j%FyQm}s$bJBn|6I*@I?`dYZY=}{a!oC;R4^>;EDT4W7gB_bAAxUSNp`cCgm*5+ogSJs3 zPRpY!+WjxZgB2}qyEVi0_2)M~Q!NW~z6fk6(1&z9(~zk-2NF!OYwubZ8hDHI@3Zmt zL=7I<@T`&MwXd0NmT)}yA}mBVFzRpOFA&UD`k5kX4C&U1ERUe>f^cd$b;wRPD=!}C zCUg6E;Nsn_u|~@tyIaS((RN`2y1084!>`mCE;b9jS8+m$83hb9loKy4ouo;z6&&7UrSq=x|r4*^Jcq4iCov+k)Bjw<~5?xQb&+@>r2fP113BRY*$RScJSpr88P$ z$GyTTrK)@=C0a+9_1rPRF=4va>ezr|)2`J4`{h$RX1dWt`)J#y&P-LH5PSO|iD53p zTtxQRO^cAPM5`oM;{Jxxdac90QH?ViA;`{N0~jUsSM;T&B3QG>ME5Eg43GiaYRr|K ziqqk6l~vdj$8m0M!deC0x=_PTP|k)SHs4jn(j0;s)Y(?`#l7)-pX2Yq^{7K}Po1s6 zgWj0qPcavOV*|DK_2y@C5cj$+{#Hr$>C|N^kgvxbt-J!AWq<#>UKZLNLJ8qjr5AHU z5i{pJhCcc3xb#>rw%>mch+^#x8{?fBbg0N_a|Jtv>#V&upzmzzOm{e|r?6X@I`wWU zFE}9pYA^^mtI=qDqZ0A#mh5i3{5{sA0jvDqQVs^}yqz~!pdME|)%Wp+xVgIe!Hbf? zh5>~{E(v5(v+{BvUsCLGnOMviKaqV`P*ShLFM$4MF6U|CdT8WGkftsT&edy_VwKb~NBbh@WSMA45vzLgD@!*6Fai37x|GmJ50d z4Di5s%Wb05oT7X$#LPK0=Y7!Jt_vL)1-Q&dqo7C3@Bj#rk%CPcRmJ{Y&rB zt(~obhQJE{3-$*G7aBr7wgg8BBQK4556Pr`HQ5#mc4tsp`XCQSqJo!#4TWSC8li&W z8OB~R43aH83*Nd!(NVX$tTZhN|LWI4lAenDpYnHh?Sf!kvO*i!F)=0XifzJtJ6#bY ze#Q)F4WDXn^G^x+G+^S2a#rbgac{DW{gRgu6_nJ)?gQo8jQ|IBm0>)0ATXbwl@4}Z zKGxejUI7)`-_KBj_Z*S-U-oRj@v&g;3yTRSAr6{uVBXkefT2F8iuvq2)}?tlU|dsf z|A~A)vcq4AM)WO*N=_-*&&uDy?f_I}_t?S?Ub$ZwUR7MTWbP1%I`%U0$KUws4**l| zb|CHU8Y;-><;eGvA_oBxU&qf#jbH)HnH%`d=&z#Uh5HLbR5f$561rHKpFUcj?f3w` z7$!&Df5f#M>YBy*TA(Tb+fmx^f>{0a(pTvG7j(TKOS16=I6L1ODtv%W6y5f%fz4=>{zpW(Akfds*28vPyO9^mkqcT>W# zN-1gUCl2Ig=rGM)Dwy-W2f~`!r$FKOCdQ>Y{nr3^+=xhRN8Z}6WH7eM62ZJFYBfW7 zf&ComnObtIT}IbxC)T<~Qt~SD&w;{QX2uiUzcJjvJmqMi%d1Kz!U=}-tStpS!!UFg z<|}LwIGnk&PoBVi_Ld@H9jbR~Xy!RI2d+9L#9>D4!_CbuUwLLFl@`uo-Rl0qi&Dp| z3|-qhWtSv98sFQh1?gCHr1v>u&Vf~bwe9|Z6?l~2Bb7Ud*@g#U|Ei)>KOL70t%9Bd z%lUIL+V>tcSePzV?V@c^EphyuEvgmi`oc9!@h<3M#Ugrm+8vY3uDaj4jsl%CvY_?F ztf1ERM!0j4xqdu7p$?KekGBoBqL1j+n)xOtf(;GKKxR!A>xw?_dW<{I*0x5DkuW=!)_PGk?j2lZPLn2E1 zJ#j9)$Kqj;6~W0I{;sVLyx;r0ytqh!Sko6Zi!MgF%)YkSgovZvnG=L3w%S+X1E+gm zMinVBd`zz9AN8CSUZ1pG@Uq(n0FOh?Tu*|)2D7WwSt1el1K3F#7=yl$lH1ad$x?;% zq+8WJC)%e6ZG1l&!;u?x90cReJMd8^R_~;0DkT6;U^rgXbmZ+RIk)7Wp*eo%LY6m^ zoSRP_pUbl&Zgp#QMKd@=ca&C(S}zc0wW8AdjO=!PqO05%gjILQTO1Q@ zi6FwqA@}06QM@u9;^2!*!^3f_r2+H|X?d}csYAQX@6(hR3W1lMAUfNoAy@p<7dZ;{ zY;EkL-S={w=#wYFz*H4)v(~ER(~^`QZC%fjJKcz6^gIvQk}Qt5`_#Wgr4W}@KQ<_t>}ZbntbG)6xn(F(Q&nusxt02$UwgoQvC7qs@T>y;sJjperkT@ zLBG0${}xb-&aAk-9kt6fhM5r!liesz35G_<$u({=9Lyw5y)s;GCE5q<*_qI+rck*= zGDn|k$S$a`#Z($7Fji%@Pso4QaDQNpF*^m)hH43n4}yLJNP%&RA~eXod1;Wao)?$< z{A`Ux_U2O`b+8GxTwA|`PRGMx$zx~l@)Phjb8Wu_3DyXhDsM>%xWcfkkmwFHOc7lVf}~I`*C&iqLZX(W!HOG%Oi?qOMdwvd z%5W2P|Lu1yK_PinJdJs8@)Vl=WEGXpptshRoKT8j^xnIoIlk5<`3mRb!04gz$)j^Y zyA@Vku9Kb(qBWKBqdT#D4Odu9m^5~J2(x)fMEmJ)&TCD&AsHrK7aJLI3?5?zb+RbU z2sT~IGm%w*kwpETnx9iDj1`c=+I+pMOqYUSjy1wYau|aACj;D1hTDx1 zhED8URfIRrtrrKLZx2PLzy=*;2(s8-yM~ekr!yK#e#HDK16Zl^EEPA45-x3W|0#q+ zu`u5Zg(ScwjC%C{Joa#eLj7>!Nqj8qJCQbN+us?wXCIv2H155`cMB?+p}yF!Q@mw# zsBMtTcU1>Q>O=?-Q?R3<#s>YPbOwT6G%Y|M$8n)SLB zAR-h3bF7d$w^fzIlF3x_K{4XUK`g!Sm^+pN&_CT(h6Bixr8@=BYAUq!plP!Wfqcm< zLWG8V=h+;5untI1vQg;cg$d$i-0o17U95A%PR4UqxIN}FThmfXwYRmNclmV_FFUk` zK6*@&orzDAWo}?$Ib97U(tLv{H7oT`eEVKAq47-Q^0n? zrPv5g0q(XN_9hd44VNYiv!ojH%#@}vYHJJFw@}XA@ETbOx5cu_nroH#o;YTc`dfB+ zT)|);55lNw3Y52UuV)@!G3#y?A}B=zm~!w3!u~h+)`f|3esA0jurWb0un;jjqp}y3 z`exnN%n)Z|+n&7=v+8VDNjOwD2|1-!gVtDydSf|%L3q{hU3CNX&AfsXpjT^ttVlI# zSrfWC-jbY@Cl~BWbQ_W}TMF+tG^IsVGz&Qw2AzbLOiwyb*X@0)8E>U%h#lL`aK>`t z(PIITGEUZm9z`eCRy^pU4JSo83(o|&9);1#!(SdZclgVMgdMHGwn>U%Q9R^ddLUCd z5P${o6dg?Ac6&#xlyt-P=He38@4kNrb_g1(WxBZ)!qwLBSX99KD^*568zuAri*G3F zx+HGh*B4dbyQC0HJiie)LACixEP`gD6-Jy(8`v&~9}m=JG{kf@tYt zAZpNi-7X>51gAATJU>&AGB<^ju47^tD(%d-mB-^*Ov07kgbzk)#*RCy z61@GUQ;4l{H6{H&ns566lSVpx_VYBiU5b|Z$BHwL*QhP6ME!Z#{rzLA;`>>nRia|Q z!h-23rpuOX!$?DGhmvLRRdk-;uY86|_I-u#BG~;j-XYdM4Cub<{BPO(^e2~cs~`K1 z0VAN8(!1hzg75-YS@vhr2G+71N7G}zR-0ea z_7%DadjmGSSKJ4d=pTpf<#0#@DR^w#`j0hU(Q0VWR2azgWey6x8(2DZVVqu+2WU21 zev?6*Lq5)bJO`h1e+oYsMUE4v<5X_Y7dE>Lrwv#pX)9edVaD6+1Rh<(4@_)2Cvlos z40K=Uto|`9MdZppmRtCd$;^13Uw~gvstPJ4ba1RlP&Fh%XZ?kVT)<}=mggMH-aqbR zho+{0CR|$X2(A%~vRg4fRelN^!S-^{&vtp6`*w~e3+x=_fh1MSa7I*R3Ruv3$Bi?! z&&z*erjtf1U4y?1G6x@;9q54e$QU}&C$%6<)K_c2$Ou z4M@j3-3MxV-likZyBBX{D#X6g`I4LKYp||IUw^RBrTOimq%kD?G4)!g?Q%6#$5g`D zb3`Q)+A|y4zVi@02=r!z6a^C${lu;874Zy;gdY!;?8;b5GMA*GQ-|{)-lH>8X}ht= zyX@LA0YjgS#c@F+|6$GbmgW_V84w*drPf7ss zC`CTb=PNXT=Fs{ZT*zl?u<|{)3`aI7ntf5P;p`uDsmaF|Ktd{ryV_Cd9=*I1!k+qL zn=Kj7Rg?V{+vCA!H^O2>F}^*UrRc8F%S+i6>m`Pg3p;}DE(@+KDV`nqdpGEBwJ0UH zfV*!{Bo)@^tGBUhbhfXVj>#grRRE+nF)ncRvi2HFI%+t%s_yesqT1%Eoaq-H z4x(IbPh%`vG(W4wA|FUvaRJJTo&#QPzzPHfD;pMpFz*durVxj#-Axl$VCoOG=yUdG zKCxqN5Z3r03JXZ@;DT60bPUItT-m)cMmdk>Q*sZRoo9XQ;HOKfHec=QsS!%Xm^nfY zJjZ!)vg~qBgsm9g`l&t4o7h2NIl?et?C6gAd2ZuBdo~1DaG%@VT4p;YFeFuZFqO$z zv#bz-gRTeE%P8%b5s) ziƋ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 z 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�( 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

    ~-(q-6MAfnWEmE)sG5r{#$ zInkpHaMBm}B1aiCX)h{vSEcjFQu^T_--P@-k8r#bHC_|W!L>>Vma@Ym<%f*0gR!o? zp=Mzra6+()>UV$>o1oqL@)MGN^0|KmG9z33H~Dm#IVYKB_rQ$*83a?+BbJ_i2Ek$Q z&^|DDZH~#Flcnz-xEB6_QA1&$QKCp?k_OR-aIkti>HGZ5tN(sU>6eKDHUVtVu|Wmk zwY_yPe_h{a@bGAch~3b!*TZT^ZB&Y+yV%w)Vs*uViWAg#rf(`K zJfOaEzWf8;hl_(j{{cmmKpAdeW~l^|!BXG!3LQ@pa?Pz}nF!RUwyVyQrDBT^BeCh= z(td@-6&T~ZFa3_SzepafN$?Qc_8=g?j=4r0#&YG^>CkW!xFZvQ*tyGes-E+Emtet3 zmmm!jVHFu8hu!)j#l!o%5P_HNiKnii7y`DS zODOZDc09!e%-1dWNAmbz>j*)KfwtFIhNtE!?}WUND(9)F%?@d~I4lzb1cv;ReG+d~*b+9yDPX$#j}LZQ!#Z&)Zd%(yj&Z^I1o6w zKfGX3QGGy%L6LSOq?ymMX1nt5sX5rA%f#f6XTg57{etFOZ1rEhc$P{#eEVE==hpkx zHw;#@i+6mV)mR@+2H*Jh694YyFF~!Jt=%xCRiMrX$LmY$ZeGXM`@4{DajNkH4SL5z zJPJEhmcLIn@{}>|5)gfm`B0j&H)WQE_dVf5tOQL2&5!M`@E`7iB1yBWA6^4U4Jagz z*rxZA0qlFs0hX_vy6FNm=AJYZP#p~mX2f5zbK46g%-3lkK7qje(otAI zz+`~RVATlGe$ZHc`2zJVG6W)AQ>h?j>Z1=~KNo>}Ju+EXD;ypLiuxa3^FLwbV|r&yL|=^3WcSbxqAj~)z0R^gU* z0ztpty$C0lbFckL;uV&#E$1rFm8{V$Z1)Ryd>bCIDS4C?w0wMb? B?%IB#(C2Iq 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�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%0A~figxPF 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

    ^)NbRKQIBb80by>Wu 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�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 z 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

    c&RMKVcv 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 z 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ν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Ĥ>oqUt_00r1V9*R9#c@;UCRPeL;c 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 v*- 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�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 z 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

    s?OH8tP1GKF$v%Y)zCL^X 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 F{y!okvVZ^p literal 0 HcmV?d00001 diff --git a/src/content/getting-started/images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png b/src/content/getting-started/images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png deleted file mode 100644 index 501ebd7fb869f7899984fbea8f76f06aa7f0a358..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426275 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

    apWl6vatmT%77fx^wR{Ce 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

    6H@#{^@T7&@wRYLhIk|aJaOi+AH`OMDf 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%0Aq-19EB3ye)|xb$8Yi9Sa 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�B)w8c+Ox(2I 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⁣-%R%UAvw3h8U|54$v=!Gmk!%0j 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

    5yB)_AJ`wkJzd9R|Wz`l_^}kFhmF66B%kKDxDIw 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 z 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 Hn|kR#inamA diff --git a/src/content/getting-started/images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png b/src/content/getting-started/images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png deleted file mode 100644 index 1a8c68664f9103142e653c7f4fefa2563f0b2ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389982 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

    x03#H>|T{7l@}F;|OxmtJqO= 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

    9|<2Ycr4nxkZQ(k^$z0H<)hln6Aoxl>eV-y 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 GAO0V~M&4%t diff --git a/src/content/getting-started/images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png b/src/content/getting-started/images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png deleted file mode 100644 index e7ce13ccc6bb83b30506a19bf8263004546c3a61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303826 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 ~p(*|3fl8D2 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 z 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 diff --git a/src/content/getting-started/images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png b/src/content/getting-started/images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png deleted file mode 100644 index 47fd24b799c6ce1c35118d76902e11b8a9ae94c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195715 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%0AqBwN*%+LZi`YktbPDy?D7Iq(-@6cyG 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 diff --git a/src/content/getting-started/images/workspaces/f68019bfd870d2451ab22cd5291ee99120e96b7a6931401e164727d0faacdb88-billing-settings.png b/src/content/getting-started/images/workspaces/f68019bfd870d2451ab22cd5291ee99120e96b7a6931401e164727d0faacdb88-billing-settings.png deleted file mode 100644 index 2934187c2a08ef3c7f962f946aac73de1267abdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389843 zcmeEuX*`r|`>>>FQz}cc#a%)SW#7wI$S1c``t{WfgO8jOz`h04h z-VS`yV&Y=r{K|*<`1lmPf4w7bsIK`(ci@*2zmu=;U3m~FARs_2;EI^1wsZ{_v8ogILg_r_P2Q2edsf4uu+9!1dJ ztVq5%8<&>1oNZoh`{bAJX=5d%C*1LNH;WF_gaj$nzqCKQY`1j%9j!xByj@ z?#Dqm!6#k`blSh*O8haHe_K}s3y7~$eu6+x_e1Oa0~h;6fKHX@0o|Vf4_H#SfHlB0 zKZw%3sZ{If;ieV3pyqGaAWi=6ka`a*iQcW{No>@iQ~e)aT*1D&k%Y7=Ur>+0mGftx z`hku5b2Bv?R4ptlAl1L#2;LZW#1`me$UD1@Hb|hh=i$!7)eg>uS^hVhmXNNTQZB}Y zK}cm5GotW>+)n^+%Wy*TbNFoAzV!MmQ7KdFuNdJ19qi{<9_`q zNaDmJik>5#u?5PB@+szZZsxct1~9xoFybe+SG<~Gpwt{o+E-ywUp`+=4>xgc{wW?Y zr&oHQTmMTR7U*lyzbgMTn-j%UTU)yp^6IR#TM@Ff#l?gZ^e1Wj5F>oLrfQ2|iy653 z6CA*&Zvu1@j%WX&8U6&vP~+BZx6LX)scEX%8MM=B1}!obk9oHomNVdwS#hE8q z3}z*MXQ_`D>Al{3NSmIXU=!?X-f^KkmRf$Hk&n|H?rOi96Atj~u20SB@3Y@SOTLm+ zR0=#*;}n>CWh{69@9?OyM=+JQJ3eOxRa{c8ajR)O3{4$=*oM_<^mSV(Feol_H;(CW zC)WufRLZ$piZX|~fqiM{t?zp&lV4yE)N_3$A%_iSz%B;KoEB?PQCj)>tX3l2gS$s` zyo=H^ex5sg>+0Oc-A&zP>w#@CzRHn+E82ew(El!NbHo@rE9c)Hnlu5I#VX~U`U6hW z2&U~e$7CtjLDpQ{4Kn$zbD3NwWSl=|B!kUvfT`O517RfFIG)bcD9TiZ5L{FKMZUNB z!SMpmov$*j2+G)o0)74QOJUUwZAW>-2Q&JsqIo_Nn=gRbIh0j)aUGvozfV_j*CVP8 zO)Nc31^!S8KEYL?;Kwa4VM@M`NM@~j2+@iFd$dL%qOn+% zz&|o#Mr1c7WQsL;dDtH-$>>w(+Z>((71U>iddpO#8|&EqfbJEs&F19pE+Rjq7$=;J zt1lY=!z9>$PCpDRq|$Wst#qA#7K`!N$IJ3%Rs`eG0ORXpBdh^6(9$Mviz=d~lYzP4 zFHt64p{(}t60Rur6J|tIvfQEX?uULVeLVODT^v@c!R!q;o(TEj^mdxYn7)n%HyT>9mO=Sk# zA~4?jYeyfzwk+p`Dud?+F_Nklb&wyNHSTCcilvTUsCKATj^h2A1?jk(lj(RvAMCfo zWj$7RY3~9jeXn$KG_|zVWsemF3+(L=}Bt(v{0pmU43G`+M{+ zE%l>J#QIsS!uUp{3#xwBe$B6;HeOV;H6JcTnz_ysVj~gVtAMN!IIFq3DP0O-zTt#; zepl~*fcNih_>Z$WV*HRgU2T3DwY6l*DX*ecs1~w;SBh`}gb(i5gU-P=ttAfiQDE&u zn?Hty6SL;F4Z!;Pep}z!tE#qsOq;jEfl*Q){LCoUwrXA9N=irkPP0JbC7c)@Hr)$Y zK0$n4b_|{}#s(2RKl+1aSWby@5Wla0j>fk8NN~aF@h5?x3ymY7-=9d0>@z#rz0TF1*nsZ&K1Xe%@AA;9EwmD#w!6Pkm4(1JxT~j*&CbXsb}-EM{Xl7Z z^$$_nL5&0KZAzurJZ$t{q39zVvR=-)7#O93hWql(-y_@zOadW*BDaE;}KF0C`SH3*N8lFE zWPe9brs4WJ1a-om8~X_Y$KkqzH^$v(d>3;WPwzTAJL{xchPy&25I<5mcj5=^Ys%6K zf4no8#W+hmEF-~Ox~}$>iR(bY7IgWey>ywO%Qs;g~jqB+>?k{(4A{& zWxkbkLDE0)?)r$|T((ARtk-~=?RsBf>MO@=i){ZiIh2v@I++#3x@!sBe?FegY^>JV zNTP1bE5Zat-zCa?N-1LN>67($%!YBo3AK`)4P6p{6=YJLKEyiZv2%XxoPtU-v3E>MSR~=C= znMXlm-kT^uFYx9`WYh)h@AkUTV{q!6pjfAgi2|cR{ipm+a)^byiIbmpi8V<#r`Y*( zuk4&hQ^9wLQZk{%s8>u|Pl*BzMmE@_`1hW>&va5#DiPoev?X^}vzDHh;s1P!EZf?@n!*{L7AhJ;oU*Z#iSg_XaMSZ)S zE*I)D;@|&Po>aC3Kmka~C>h3TlZPfMko@~D#@6vIE@xc0XFs~UJOHlGkj~#aYuv~? zv)C9?K@Z0kdSvt{EvH#Z(bhj08G9zil!%tOJHL^hj5+1kDZY><(LMLc^2-hm=NgL% zO~$VU+U}Xiv+^8vxXz`N*Cx5Ro2-cxVR6!UbpL%uo*N>j6*mNVg6_&sf0lE0qdIVv zH6Bk@e0*{^V7&e!Y`NhQv2tw9cQ!LLM%(XgDrIS;f5zsz-gNl$v^wG|--1(|-iv3cOl==P=<3U3zB6xXXO|1H*>rb|6LKR&DQ6lkb|Nxw5rin`pqR^W?w*P&rx-MH6)_%yR5r3`DW;#&xE4>~xIYpBib>@X0K@M7Ukr_{V=X5AO2_<=q zQD*MC46+I8zn!Vd@3NlVHY}WRUX@0Tv5@*=rLN028>|0yeH zmI`B*&qUu`2nKmsW6HorUH)w0?M;FiT8~ZqD|}} z3>@PjUtY{9U>f*Q-}*)5W-IwZ`8F$_W*mmcHwT2M)D>NVl66*NCM#K{#g1^VhaH># zMfG0G$HVFamF`bg9!8TSJe(LUs@4Hr8FkaL;C9b;I7i$1Mw#r>i`B}L?FmBi%8nId zAxBF!ai5ARIYsXmrjGfB7${-VK2C*C9lA-9qs86co%FGG0Zc_BV|&~|Fd#?{qSb(7 zxQQnhXE9Ak^~~zMb;*Vl%)6=q1MP07BGF&TOe}ybBV$&Fq2SpS{?VXs=#YY!$6q9Y z%OP1Fn3>mWQ=YpQ5w*1*Rd43^Cn`T3-!4|s>#~8$X;iMQO(tCT*%%SE>2U}`Zr3Tq z+Dv#-c2)Ff)Irz{l00e6!!LCPM0T~YfOS^77~jas0_|I!#cE?~y1=Jj_p9u#40-a%0a?0jT zpG|?q61rlx;~a&UoFE@as})XNLx+Be)NmLg?d+^bsxaDxZzt0#icaF)qjdmG|DAF* zl&5M87HuuDYAs^17PT-BU7uE@Ek&L_9Dnbcxsq$5mH)-2{<*NlGzlSL40W;O>}pko z!`xIdyuVf`Nuk?F*}Tz3CkD<`-qq23M;B&jJkN<8UCrGZqSla~EmVA6udA(NTgaBO z57y#)X&Dg2+p#P?JsHp!UC@owpOm$T65befD3oD1Vq<~HoyCe&l+bR&rtM&j(APSoj#X9twkr)sNiQkUNpQ4<%*2^=rFv=B&>xS9h7#v z9+gIs`PfqN zB4iLYeEW7A?Y5hCYQ?)$J?o@`uQ34%UpKGokt)n2r>&?HB6Bz?*O=Xtq|IWoOXi+k z<0AACS-eW9fs{9m53<^O@TU^#4y|8DlwNEvzbpSQM&TGXW`cvjt zKt;M3tslZ}79T(8<0OUtrj!K|3GaW32oUZ-;}dG+!-hXW9gjw`hE0<&kSLSM*cl8B z$6H9~aeR~_iv9@Q2&ZXncW#EK@V|qUwWX#eLaC%!khntkh}iBHjE2PSusjUy;0-$` z8oX1y#!lPmUaPCoo0FzHYjbaWa}LuJ{)@GCJ#9f({kmhPfWT5stQ2r1ghW z`NI2NWak~-tf213&ehs8FQk!V1_>#Yl{Ws`ZBrXEIGB*pJHM4@-LnS#@@E0ZgTB#b zR>PmqSF2gvQlmSzW~J<3a`c zN(nu#NQH&1m;HT>fj0w)xgFUz2MJXHoDuAaIBa^Tn~vcirPSWp=3l~Z6c3=6Ckd~%T2BzWV3ggxCUsrR z_(BZ%Wnw|VOi4lSjGt9Dh5;S4dgl0Y@bE-wG@1NNSNP>lVWeUb7u_hLv-yN3 zV+p7AXrFgINvFZ_kCzh<(w?i8_I}Or9oqT)%(b64>@#=c{RNLH;qMvSYleIYWR2L$ z`4svhmOJs}2@dNwCu- zx-VBLi%&1;aKPZY=qGGq!I!N37P6eXk$xJs)!tbFGn2Qy-mg31XTlbf)T&OkC+g{a z{rq_Xdf-i@sj$(;?`cZ{L&^SKUmSEkJocifq2)>g&`VEjKG*ZR*+7n~uR zjh8EU&>lK8WmF<27d^6eU$DJSf_pZ>hxDSmhXpmJ5bWL#BhlV{S%Cg^owg2#8#08o z!mHQoX%;odh3jpU!!DDOw7oCNj}!wIS%SP1W+nd=f&7Zx_D2&z^?kTq7kmAnS;c;Jg)oV}DQ2j1|JdhNa?vFl#tR;u==kN5v} zg&lp~VwABTj9e5$g8k(6RlCBZk znT~Qsa5#F_VKai*6xWv6nzoyfjU2iRVK295rex|FA9by}>(J`&@IJ?b zNRu~{RZuGr`JY4G47fKxujJQCg*FRdKmul*c8h@|p75;*Id%COCRwe!zU`lc+7_%@ zRTHPatss0zx_~vj>djtoB|(9o8%eXCTeCl|#~VsHAXKuYoK*4V%(U zC_CdAWzfYYDD(EQeBT5^bX~Vef1%EcO#dN|U^$CIN{XchW`*>zQO@TyE2$~_UZ3+h zy@OVO3eEd<&%Z?BezmhBNFXGNZg@PUf(7FF9OH_4Aiv;Wt~d|7utJEOVD4g^N$WZi zkH;{OFf$&`o5HCwkI56--o`hG+((>aAGNs-!wz`Yf>+>I=ZS`WYQvX$49W_%OI~N zDVP)<_R;0isjifT;`-&e`kS-}raj(1vpUDg~)>{A60A0j2^3SV; zZVJvZHh$}{B73jE2TDbn)*e!%7OcBET$Vruyg{GCoEOu2*rns2I7LzUC0R@ayV%aX zE-K-CV3`NGGwAdY=26E|3NoY)(_`4<~N$QUyy#&bYq! z0i8ZIaj8)hF}9k|oAR~hGqO(hiWoXhJ+|xFXmYP?*+8}h_4cx%rN>K1hShT739FgM zHS?Wy7RUGDm&CA!V(h7)$932Zd~#CBc(gY3bx3m;du7RyqZ3D(rnF0U{HX#EWApCU zSSPPLZk~`czVSi!+*M-ne`h!Gi9exdQ7$|BlKE@hHgbtcym>0_lu^{iQgeWTm(Wnk zz(C%Fi?J07unMtZH31^Rg&r#QkV2f6#ycki=W2-UZOR!VY%ICD7Sy~Gyd_yu6((y6 zia%_}(m6X)pz8rDJ!zscIGr;UT0 zbKr&w^oA<}8!@{TZOV_B)i2IqK&UzU7=<(^N{)XS}>*Q4>=J@h^H)(l?jOLjk{@da(KKMUK0)O`T!1^7p9G114H60vFPk0Agp70EXPRB~i!4^-|S67GM3Yo&0%#B06`|>($ zDn4^!5fMP13%40T*Olb?xf*-3?%OYQEc?2@j05tC6-?aGHADGZc?CU6lZSV)FZB4- zsoH-*~@NCl9G#M}U$IML<$2L;D7c z7CGvf6fcDZ-(WE_+xgVbpR@UKQZHX?wYEMp>~^8;{3@uH5iD>t2%B}JX)MB_p#p&* z9;-;T!^tKfym9H!ORnx-itzl~<15wmR_tOGY(swAB5*K!Qh|>1ag=|kQZ_05Nc!8d zrh(`CYXO^jaVcNYZfD{3aOVm8`YWclM$^5(rFY;w9;y4A9aNCz7Z1<8J%8V($1d4) zuyk(QyTcnbrf1P~Ja0b>6Lpz&uy8LNe*Yy)$6v^rx_y#LkF9#m8W3 zSG`O=>{)2W^&)EOQ#*UKBA$8R;pI~K%&|_iX*R>!b+oYe6d@_i@%<|3Ym(dmTP}8b zx}bJ*sp%CXyNbEk_*~fT!(+}%O2fH zrb1OWkZyun6T^zoZgD)j!Jlho?8PX&;jeBnX(2whq{=0}| zMEl7Ga`^-2&H7C2!qqJ3r*o+6`hhD6+}KR!AygUA{naQAFPKV?O3)3Zn7fEgEs|TqGJ=3c+mnM0hF>+?Q#f8C@6!z`u1X~12%^NWQ*tSJ4OI+(k zB%cDpv{lvi^<+i9rxl)Ols5aqsJ~-HX91+iEBQ!89Lva38KO`C`Z;g{RC$x{~PG24sP>`1FV4~3rj zH0nyH3E8b{-qFSXgRJ`TiD#@p@(Eg9sUF(K7P35gC-nuYNVTag`Pk>9s6%Ck;mn_z zD_#E1kD61`^1jg!XM{nQ6n*Bv8NKv2L9kU2pr#boUqnEC5O?b9G-Z#)G~W-eDTT6i z8#P>(k3-kq3L6dh@Y77sfyE-EQ#a8wiyj7lQ0U4y+APdqH{hO;m!y7i1Z)06^0 zZ=k2V13ithS78`RlJ06is3CFUo`c`Ok}%TWs>4>1Fyb{(l4u35@w4(YZz*uCM5z2G z>?>Wk@NqX=SG~p89x5!|pnN^-jV*M;BNmEPLgSLv#TCZ!Dwyr*wbrh3kv9qkA7&n; zj#N~i$;}FYg$J`t3&|j>@^_zg89d#vCpA}QjuJxyNPUyc3YA;r$DO6eXIeI1lG)CE zDME6pSn$4kz2Sn3Y#Mv?7>G+28AY^ij%u1Acqw;!vb~dOhC+!d{vABLj6pHt5Oq5_t0N zBed8UmrGU>%`0czLNC|E4i`)a+1C0S&nl-W-y44~=!G|QQ(jHwxwrnFqcecsKWLWIU%v9)@8&bkOhwkpMV*=hGnO;-^$yGFC&(sm+u##+*v*VX|)!-~()Ydb&!o!m`ZVyZpWMdc$xqY0rD{QQit)UJM z$oUk7{sVNEgWpLAcY8!-jvkPz-Tp8g z{s~Basy&scC~KoR`T2|Z>CnIRymP95-hf(Oc;jzyMx?|{<4MlZQ_pihT`uBOORx{N z+F!O`qv|VpYOV>>Ty3@soSUapf2pV|W2$M-?;Fft*T9u|qgUo5SuT`C*h|!}O%Wl>fH34Y)8)_yunJbO&{!zcFM9X;j#? zwBewDdJ(|aF`Pj(?OA=JEfRb8*QltbxAN8xaUm(^MT3$ zR#5owAk4y*Dg@e(l30G@|;LQbRl9WgEE^N;w%NTbnnRr|( z$(Tv=LC4=TxB(po=CuRw!^z!@)zr-D-L8Oe2=uB5EOm2vY7vGWTbs zs>AR$o(5Trtg^R0KCmR~qbaX!lP)`QEMPS0$Vn8$zltfoJ&D?!+6i}4-h30ob&+JH zF>c;SPyG6rXqOklCb~4MH5FNu#@X?Zwu=cjVX&A)>}4#r5!**;OAzx$KR1mQsc8$O zn+8j8;^&Yk2;k&~CCq6Y7~y(Y=EjmPY7=|g6bR7>=;d@C2w>!z_@-2UqnoLD37>TX#c(m;TP^h?aWvh-R_X(DOYgP`J8Yl7iP zRN@g>k4-hc3!(z+<=PqpLFJTa6WViGGg&EN!EMLJn8|tdnOW!^B5(dy4y~R>MM>Vd z<+DAc09tHNd|MVkfKk7BQX9>rdoJ&Oh$i5O!3XUpdK5m~!mKXI6jp@MX6DK%yt5qc!zH^JHCbi*JMB?&?nKHJDX2q^u|SZ_FA% zr3+;%ItuR@_Ssz9@X-|-s0v}u*A$6-)A^4fwf;BRmau?M7-Zzwz^EzOzk1pcrxhEB3D!1`>xhQWfO`2EU7P!vzkYuZh3%P@W%TJgnU;gM5gul5qQc;9EnB*sbr0>P{P4bp}ka(e)NpBG4yII2+pD! z4?1TWy3jReIyi3Vci!tvG-)jd;a4;J`qmblocflFk@!7RbI6U@dewC$hB{YQjt(1(6AEf(C2af?)NK6oBy{40IjX~nCm!&~2PYCp<&_4xGm7Q;ZXs#s7Y&sG^ajL0=d##S zD&Xr+Z7oe?kHGO-g@qdAuk@};l#kajO=$9M?1kU!!@V>{graQ(r^F}h^;9z8#vYfz zKHw#zGhb(k!4!FdYGMs&clgR#Pnpo0+k4q1S#_`%d4^7>YaV~J*VcBGpSTx_ji4;{ zIVW3SX%JE*Qw(};?NoojDm5;~dvz)FB6q;-K4;hM1{>z5VOzu*cAWm;l)i2=Zxg(h zvm;Kxm*-9&Gpr`S03{=w*52Dgyuy3&{wqC|re;}Xu2uDWwU=LUv)+E0=gk#KrB+nj zH1c^8+-v23Q^aR#q9|uDJyB1~Y%XpxA+Bw&G|mmtGTYZ^d1v9>tui)yg3IgIR_|`Yt1sdPu5e%{V|!$1 zgERe)qj{fGrA#5Am&2dNSH9Q;EWYjo%A^|Tl@QvG2 zk@DJWJ_DY5AYnz#>yjmznz-(24SlIMaV!lBOVtZrhscSj$v3{_?$wxiD;Bhf1z?2S z^~(89}*et!%h|< z$;(iUw{QE?L z&Ih?l)zA=MpKf9+z^*>l=*tUs83i}*+*H2dtOKc8LY#&jn;=;;Sk-4qR;7Wc>@Nx} z*hdM=qmdD(I1st{4o+c)j2^et>ZbRUg`F>pF@p*G>WS(vTp@!rgt=Gkt?8H~WGn4I}dP@{a=`*4e3 zeBQO~_gZx}Uv_|`j4o4)FeNw616v8QcL~;xIeTWM*EIvg%~BK*8%`xUhA6mNec0@e zVU?4?Wws~s!rFaT8=aO$8!d3XlZh&5dvZ|;TG{3S-x39OYr!mwF<;e2q%7qsmiiF< zz(hM}(?Z~cjsE1~Ye+3qal5;0t@|o(GvGRNlJzy={X4(nK6*c)6Re7!C<;2yvsJE? zbN?gNnSm(z!kHMj+?kPuU1Re;c+-PA=~B*xI91!xhtBUJ9J;ThlKe3Z4xMnG(50N>`a|d#|2FI8{YVT|J}) zC?=T`C7*!6IpE$KLSg`WNz*eD?sZ{^9pmo>D{0Jrerl>u=I;YGzvaLoP7L`)6R{yZ zDld!PZUOpgahq^iq^iz=iE7Nq0)3Z^>8}Z07dJnpDAqRz24#5JWBsuYr~3z#)_Yw6 z57z7rzBd_X86_&WtF9Eja;T_%r9D$2gj~-*{(KN=pK&)c((CDPT>y0k3gP z#hMGQ`cf$@;A02AyPgQhk;UrP4{IH~L3(ATuAvMr{6GT#3$KkHg#y7;Wf)J`#N0&x zdoAAP@WQV1o}K#$ZF(RbOk?iu$(9aYf7=<>Kuth5wBtMRrQ7n8oS#s&QjQX>Cg8*M zv))g8jhH!Ly6IQKRO@kmQxXGTIL(OiDG|ZrBLgYc<_KiNu}{*a^_u|bsQP(qX6Ui9 z_D;a=VQ0r*Bu(Ck(gCc}<=eb8Abh7KUh}`yo2aTWxpnSiCHh579#`N~!c4UNmTkPg z%62*zM=a3MIn|M=8QLV>=L+ug)>qI<`Aw6Tn`=0Mw z&c;^7_!WEodQ*=}?IkQ6x_jtts0V^I#1U@0AGw7fVxAsbcuRNBO9JG1L)KqteimU- z4+T<;*-XHs(5aB;T(Q6t+}do(T1ax9+J%GD*s~ z3kzpUzq=dEr5R@;AfCBbz!B()YaaMUbWn1mklH+8I9I19k@ek zR*T8l+b~U5j$}sZ3yg9yb?qanw~0Fzb*?^yp}Ie%ek-rwac55$n)+B zKU5IH^eLkyZMyCuvkzPDsN!#BEI=sjm6EjCo}=^XNUpTn-#9w|6L3|l!;--{HGTUV z{m2FV#p!!BNx-Y_@8tgf1*`gl^!6ENK|{lj>`NA8p7!930f%uxCd$IRObz~~1mz>c{x>lE zN2wR!P0+GkE7Ebc^s#6?D%*b2zMtu+DNwI{Zo~(1crP5#$6Rav-xu>g24a}E&S`Wu z;!N^vMYVCmEdE4XbYHe}|X<7%IZIT(OMaz9G3I8?+#7od_@+h4er_rX&Qqtfd7{pJA7FmaoW8^>aJz} zfkk~m`gOD3S~*j3ZY89syVIFu2!4Jt$rzwwxuSH6R0&U8aM+dKs(&Ne^fnZYBGH`o zgTaD;%vLD8nx!r7r{Cxv_nob8sbqBmQZ6ADctdS%ZEvA|yQZ^#zt1k&yjOb52D6$k z))4p2kjUt7A24vX@0yh~mgsxbmGGX`q~q%e;$8RXCCuhs;x>3QWDlEx>+5H8Do`>i z-{%3%O4T!lR`p@6Oki=}--$eD{6J@~@RVa}@Pa3UMn|G6_p_E+eUGLTirwC^*+Ez@ zfRuZim5Q`;{kcX#pYOA5&JsgsT$Cdc3?#?fdVTSG**_TS(Df|75 zx-9tpHO}A6X>4p1*jiqJ!ykYbTu8G=fA4U@4!0F|QuIy9@^JpRMU)nh=VNbym9`&= z=|C`5w9DT{RrM?fjV(7A+%HL{thqbF6#0eAG#zjp@Bx{KZQ8Mq^~-4)-`Q5+lfX?| zpa#FVtW4B>Xy_TZx%skArns_Af1T2a{zvB?u^@borTjL+QMCx2#$HjmBBaOe!-UQf z`wq#%tq+$+ApnsHdGtw7H4W&zT$w31Xq&9tQRFX_Kvl`;}P{QLiN9} zTuvfAUN`$WxWYWc8qal92-Jk{z@=sVv21;x2&Ro=9hEMokC-y0XFfZRaM=>KkuzBb zZez6WN_lWb7y@GXe=EF=u)B2P>Jz4e>P}K(82reHbez`9h2PJQmb+|wtdYm>0F`$B ziK`JFsWM!LyK%{*|CZkI=f#m#5A7xY>)G^Ik@weKUB3WGP0tYZ@V^SP|AMLi zI7p8HoknaGKHdG9PXEmG2QB`Cy+07~4@LY#5&tP_{-KC}DB>TA`0M%nufzPGQ{$gg z<3CyBABy;gBL1O>|0*p1ztDg=b>$E z1?=6#mL2916cI2F6rQ^a>XaV8j^Z$k*t;vH%O?1|4&L8e9wOVD6X?HXX50;^6>XZ6_Jp zS?4_R{Qcg&HP?+8IN^}CBdtVK$magUS9rEjo4C13xsW5J8w~*=VO~V!V83TMrfmM! zk!MB%%{+uM^k$bx|K0^U*=8%2 zkSt6<_qanxtri-!(2VT|3i-}Rw>E!8T40Zd`RMc!j_4`r+WHMG%5k6nPwx8HQ4BnA zEYTl3WfmWktAbn{@$GmMZK&<)TDZHixWXPgBSY}>OutOtUYow6d%ch+)T}T_@tpVx zdKm(ul8JHi&RBQj1o03MP9OK(KBO_#Hh#%IyN8~gwmn~4m480VYlns2Hp}_pZjB!~ zUomIGy6}HGSH=2}qBk4jM33vGpzqlFw5njmX9EuBOqr9`R%ILaUS7Y8n zh#e#xmg&XFpwc2A?Yb-UWS*-Wv1zuewzR+(tR)h*Noyd&t}|q8O1+ekO~pKJ0#2X> zA^8|pFguNU`B`_|W%vXrn>4BelJ-=v|4aw>({Zn*Vw3tlJh`O2<@;B^9!*nKV*pR` zQ7}+a;ans8NMtck#?hI);D4(oU|b@;oAnZqvjz>`dEtmXLO%IH1h|orKm$r*h8;xu zL&RjS#PcY*wA@|rYcp{0UmrmX-?@eIullmhnrxH^Tp6J|IRf1A14)8wY9jC*F!OW> z1cKEG5WAJA-1y5bnG`CnF{`_9sWN|aNhe?|iQkw7cWWW{_LuP{Ql|72El+2(AWS68 zA6!mztnrbWK>6bvU%p(fSp(c>{V}OvHXLHmb11F6A;{WbYy(95+$xOszrIery3>8M zRrbrIfG378g!GB>pnLdb%U<2*+V9vf7 zSwDl9Tbn}($i;SiED5OQS>gnV#y=Jej?do$=A$79q3B9WWHZ4eKlLP;h?d zKlE%SwGb3e>2S8DngfNSy}IGwsP)IqZQS-Epns*^zq*22Y?+QyTIP}KXZusBtBe|E zLM^(o6FF-U^_h70Z<8a9tJp*krd+lmc#IfOc!>P0592p|Bl3%-DL!zMTsUYFu6fOI z!f*-``sIa5G;#+BFojdMo=w<>GgO3ot?MZD*!XE2qh8Y^jWO*2N%Ywx@3pwoCkk+2 z+aBv0EWTGRAD=ANEhw-vSW$jGQEAsL*l#_3jR>>J-pf~A^tV3M#Qw-7h_;P_`R*tp z>io(f3gdNHQZ&XdY9kW==(6uY`%|=LdEmanCQ2bG+!~$lF{%aiuSEtIOu1E>kJj5ba&K zBW;ZrlY(AOBD~T_RLN4_aJ0FpLYpUmdkm90ShAON7P_Il!T2B{54GWmS5K}eZ>eCb zca-=bh|gR48+~41L3Vx?i!*@7BrqO5EKD3x zHSSGINN9Y#+%pTfCc!X{*D$W7XJpXZwzvfM_2->V5B-gNO*qX>hp4^bmbB9 zZUd~O?}1@-Px`PkW{}R?#7kFp9{iu)y??J|7__6hvYIC8%&8S5mn)5-7rSG`;m)pP zbTuoc{}5fZf5DWT=IXCdL%|Ao#VC49cl)#7kZ$V-$z_bO%KAz1U)@Gb)Rg+U*|fej zdr{}e4l|$DU&*7BG(J8VoSG68KWv{Qy%H`fIk*l>6Vb%T*1k_A1D)IU<7y`^T`i+a zF**cwA}StU2F6xoHocDb^+G>J;m^T&8N(>T>uiJmY@*skySv7o%`4xgUFtIJIT_7= zAPVv&uP-$|x-zCb`@1-53qEWH@h=a~Y#d*c&`w}HywLY^5@e!fQKz@@B)GKnO6i0V zU!Lqnd?|?_A>#D31djLg2)tg^TDJ8Ijf|zo0f+h;6lzv2T5N_WG*m&{U zjAnyT%ZDwJK#nGhNktr&Gau{qKTCY>DD+d=bupA+;&@T%?Ghcu+2IFEynena^x+bBdrKWmOrz&Z z*>u2`XQ|F)F_H}|=q|BUyi~_EPrRsQGi?Lt<{dRWKVg17M%Jf7} z@~oLNn2@#4SnBAKKl28zf7!A{pcv-c4Qqb-Wu%Zby3{4|Wn|xo_PkeRus0*_Z5s=b_iQWu zj%g)7yDyTd5YNndehzbkYBri#J2nhLKBm+qI94ONtjrn<&B|RQ<}r#@e*K@m6$_A+ zZNwl*Llq1RJLFn=^mxu+<3?07wRvS(ou}g9bLEeUrIzD%~o8V@Ti6ZcY7{t!BskG#T$j)s8 zC8OVNG89*88mK@x8hGvT860NL)-P{EcH%J-e3J%$Cm4lpo&5+Goy^u-q|F4Pd}{kh zD3C)tclFcA7r&`oU`jjq_7iO7yHnj#3Jh7i-v>u!?k@9zWgC~OHucuJ^=!`3{rBY^ zZ?6*V)fis;E<>Q(O52d$m;F5`6Uu;aF95=5P;?jD6DEmz0`9*a0G`}rARFsb>R&fB zLZCk2iEyXfBy-PdxH0_Js433TP<&8!JV%Xcxru|7;%&tN3X!;5+B?ARS$Co-Jap(d z>J1|SGa6P4BHIcY+Gr=fG2vVhpNb}X@)(8uzVktkY{vT;u8FN2ei7z%0RGZS2TD4d z|7N78^2P&u41=A>xX^I{o7*uC=7M(f#0?#TTp2tjrE+{NK|q;U(Wi*H;lr!rXA4-Ng>+rKLu)qPgb#+FT#FgyIvy#0kE;DlqgYn&e>e zPnP7)*XlR9nmsS>{Vh_VcMC+CKqmd$oq2OahV#?kFlp$|iCo=0^{XC9|9awdk_Cbl2MP~>H(`@^ns zZI<-Rs!*{VR3!A7>Fq*(bN(|~r}V)I;q}1SI$RWK181PHEb|Bv_uglR)8l0Rna`gp9X&aTl&HKaR2XniSZcs` z$48Vg>1SPzvy*l{a)k@&y=azU9SnSdGL{4wnYhin+9~zmhcSZfLZ~!)W-9DR^Huas zz1;8fLT`>e%DRyy1Ba&}e#HDclT~e2i*Twp-4S_@&Lqd^A+w!qU*?#3;&9p8TPCv~ zmd#Xh)e&1f4ja{APvohS|Aei8eLtD46k)e};L;=(tn$!&L!c_&6GM!Nq{>o(A7{lq z!^nX2mB)ET+tE<}ztN@}`=_*68sclBr%6t^UyYdR(rZ8dG%K}73*S-vqzKYEStC0% z&>S^T(VN+>Sc99QHR+9W z)Se{gS}F`k_|$_CyX(2|m7}2f5yy&h7vIhrd2dqUy@hU)XS1V3Qyg5qNQINp$wTR# zY4iIjr>N6bYH82!;KM@#=_*Y}j(eh@U!XXdu0wNqX{FyMxPzzN{p#+{aT%GZz;DIS zfP*zVX!!Vv0B=%0yM`-p_B7?@70u=!y-bh11^*dI?dSBg%icB?x%)$I@GSQa^EFzo zL;T~GrJO6UQ6Rf3*=d%>lil^N3|UK#kh{?R$*nJS@*0XOdMn-y;F~RS(^Q6~r+G8> z5ZBx#lus5xnux=cKB@(>LTNHQzV;Oc;Ewke$k?iE*|UJnPhQZqZBOIfpn&YHA69)B zw>=zTP}=h`NcqDFaj!k#-5#6&a0@*7m3Y3V@l`^?5|US()e(D|`32Ry7wG^80`V?J>SC;VT+)Kp7ziB~?Z6uzz7|Ftf{l71*IsAeK z&L0jc=`ND^VgxiqWP5(HU5|e!xYQ6R@UlEmtX32hvU$BtZoY7*(gleC63|UtI8HzR zg|q&P76BQ|G?O{&nw;Lo549~fYtUG}B^4 zcIX49sR5uJlQKieRFNws|eU`?)%!rURSQ*(-)ir0>ud-|c4Ht$wl zC@tzEJ@ep{MXW*c92M5g6Y(Y#$BLIM{P@D^A^5@BUZuzW9t<AH9`s@$hR0L9JGR(|pJJ>6r8y|IhK zzF6FmXW@&G<r^B=`Qg?C`8;>kw{i z9nW3A=+8#MztthhgzJ6|r#5=2N|9^*qC~I?3FGQ~8gT z&pK-b8oxY3{Z%vKRBdLhkP$ynM|GT5UDb61rozue$LK+?k%_^p=t*nw5XdH@YG4G> zPp(nB>}Q)go6ydREcpG36L>7MA?106>5oYc_HoP|v5NJ`lNFq|hFZT2cQ_dZXZy^x zM1<4BuUozM+g`SV9$xW`EJPfw_O|ui{`R>;x3g17n1%Q|@jx*rJqMZeD~Cp~)8&G+ zS>EIWCuF!0oEPUZQ3^vw8tNWx(%F8O_HxHhSv+7p>03Y#w&GOdc{nM@<{$T%^#E_X zDbbZu9C9`v#-T^y-pMVuKdA^kBrR78P2zsLODCB#IMw20a@2kzL`2ud(e5C>6>PQF zxJ~{{xfzi1`wdQW6wkZIa2 zDE%yrWnt?b?a2BN;alg3Z1S>`fF2Ht#EkCKrww)|4^DCmawL5Q3}jGN))Q+&dYStS z?RR7d85pdK-rk3x^VDx(3vy!Beksh`w5^OfitcXH|K$-~gn-*XHzjbZA^OJ}Vw+Ji zl#i|Z8}e8F_h5ht7+PtVcrZ|^rjq8u9pULB{(LXh_K9AVr&zP0qH0-;LvY`l;UqGhWK`cuVcLx2%748Ch5KzI28_g%aG;vPY6Y4Dwe zS2RHu0HU(^E4+k9pkkrKvs-)|FA zny~drPIWZER7vqzu#PE zkRamNP2FcqedL(2eBHro5;G*ZUVvNHYi3ydqqsm(2Nptc%cC{n=SNt$^|9|)LC)=m zr+RUWau$NpLau^&3PBr++zheZYJLGwu_~6~XVOmJS7cZ+0B;%s6%kOr7lsYC+n!5J z$@e2tOHGdUP~^!l`=1b>fWQIB3w1A~CUkdFFry%$b1a`!y%1caE!>1IH8=H(IFdImX?HWV+kVplT9xBcxjD3fQ>HR5>Du|J5Z^(=vyV}5Tz1AR zx8Y5LFnczQ1wWOsbM)Jhla}EvpUzuqx*GEBZ0GgkBT2=~INNbAhw2l6kGuHH<%H4E@b0(2vcXB}U7NbG z-&d-Z8e*%E1+@XqInXhcnW3~;Uom`HxcqvzpDx>NX7S?|U-lpO=ecTX(u22;V<&j~ z6&p;R!4jyBj90I`gH79z9dms$e_&sB7%)-Ho%^ zMKdZ*ZxQp)Hk5AJNe}ifS?3u+aX=`^Pr=8T@4B!3tXquTv(#2#g6!zpfLlm=?eqYi zGv_MtZP8XZ{0<>*mVKELsXHnipoL`v8XPRXJEMh%OLX-CAd;~v+EuS9b5SiH^e$|Z;XAPJ zg}D0jpb5#0U zPdwi}OR$n>8f1s`xMtSa;fn{XvC&&x&Z;70DWaj^b?uiwIZtO%bGoE+PA#o^1zOew z`^V3UbQHzdeCf8%vm`edVa=kw6zq!(>}Cg#GW`p^9* zqDU<49^H^qI2hI_r{~U;M=x_uA+jDwOVkQ+H7*bkrzLNt3LA+D2)YfoW%$YIdRqm2 z$)tNuaVRs$eCQB@#d2p#y{z!kKGTXGXWbQZ_!+Uqidf3i!`1IdrLKE zkWe?DWwQBKLxg5+XgD=@k2pw>XuQ$D0!2*Tll*)d9j~^1#g}n+|%@VMjc&T6%KZCN6-qo z!C@raE22Azlcv+;m*db=wuoUP-qJu?DxN(5GXK0Xy(^^Pr*6(`k@HD0(uVh$2X`(T zQp>wk#eY^zy_*-7dOnSF{HY7Yf9SPRAp3Q4G(?P9Iz26gp$oYRcs;M_6>F3S8kuu7EpxkgyEakV_F6)`s$hj(GhFdU6H_|g%BcHU^+*cSH_+q`!-Km;5G-fQTrq~9A1zj&SS`ZZ|Ge> z+-TJZ%(axbi>yaw+&;t}Sp^jR)02*Om0Oe`%5+I=al6Guv~48`4gyqx!@KhKtJ_8# zjS9ms?lfLWt<~Zs@fCo;YTm=e<>6v z6x@c~Ku+T`mJV>E-$x(OuSxRf=*i72Psv{tRz;ThJObpi`K`(foydeNt))F)(M-AU z$t2%jSI)8zkxV|{=3eY#X{JBgN@Ko4? zyuXq{TMm(kT5`?j&42n*W}N>MvK9CVyYB5PH-ox10UuTMiZ~oy!zF$Q;eY#R;K>Uu zE8H?-0|piZA61df^0Kjpw&BGM_JI`yn6l=D;TQdKX*UDgxQQ;700*awKPK86D0N zppnar(iajfAK}MRvu(6CP_)j?m1rbUYS2!CflM1@F60AY5)6<|DRYHE*75}_czVFj z`<~F_wSF<=gqjgCB>Q(;{p20b`^wnyKCeakU`tCdD0pxti_J9ot9074N;`c%{CZdN z_QUbkHJ|R*qh~lT*1YWe0}_$%<{QnW!WRsiW%cRlmNEOnguQWGx!CG7t8V0LGY)pT z8abi?$>Ni31~j{jqrOJo`}Y)o+qvy|W!1|+d8~UTnTd32Fo(i^dv!`r8dn5gCR!@2 zVx3y5+a|yCToKX~)M$=>q>;9k*6IJ1cXo7(&F!kcir1B$O#JzhMZh&!I1{MhfJ2(H ztN3A91>kwW+$ONxy&IQxPM$$g(5XhgD3l@OlxV27D;&xK2g*gzP!@;9dXw9?NV;yd z_P%Z7a!#d^ew&WS;~h%NuG)-k{Iqh0hW-Oo!nOX&6=iZ#iF?{U_f=$2Zo=)4T6O$;n`V4gZY|Q!iOL}Z&5f-TD~^jN?Q86_5K4nM zf_^P>X!yn6dY_C(F?e@mfAQIc1IZRe9IorOhnLjeJfnXc`dkJn*uU0AZx)c66s8Osy4U(|nlhetn`-=8q=aX8P|t{Y>hMHB3f(R``ZCOQOZveGLr<VpuJLkm!5ery~<^l5qfI{ zJeahng}dh-_`{dS^oXo5NXP@h*?@YNQbq>R@}BAmQKkC2J|h}4ubM}?iv1Bm!Awye z5%l&`F2pj1S=ehITU{AEMMIg1jVy;!-ZQBT%XA}<v@-BQRKQ` zqx%)1*FNj0Pl~dlbt9OiD28k<%adKlp^tb-6A&LND?2FFFG~BAx(oRy0~UG&jBj|=tDyM#(%d=q4@hz#;D89Tsb4%frx>j zvE}Y7e4P9Ru2|&xpGf`$t!Ou8)u5XM^G2lKx>A3W)^VKuLHi$?77a(krpj$$Xz7N6 z>V-+tG*7G_vv2z*ymlLSapg0RV%HH7jg`Nz2;2CY_0px~`QA)vmfg>otUk^fx`gAL zAv?Bpi#v{#81TJizeM+`bGzdxOSW7_YxVbMHqVvoXm$vLE~5P>bkD9*%KVI!kq;Aw zBCPx!<^#6astYN9x-r`1=0^*URn+uA?G=?OTMplqb?imJ(-GriM9`uD@s=+ig@_4$ z>g8W=hor$D^b8VfUf+`Wkd!s9F!gYA4zvOwY*wb)c(VnEPvF!E^%Pn4hz#dJ2^wBN8J(nOS7eotEaG6U8_Mbw!7FqX$1EKGU;mNePe8G$hjyNJ+ z%xM**FOz@<7bOtRv~zqDUWo9tl?9mU2I(vs3*cUPss^LCyr{C)vi&z4S4u-((Pr6S zf=6(CiQ@wn&HWFg=V}XDe$?!T*L4y+LHYDGH(JD}iT;gE6Z}iWn5LWAQ6ZEu`#1A2 znwC;0?j_TYQ^f*X`~$dKe33q|)v+^S*nL(uVZ7#m3MDQB?lQ zak`a-EP8}hk}7z}_8V8?ICk1#>$ryB@zO@S??ldBG9>2Mn1dGTd6rvx83pe7FE0R; zv^br~UBi89^}W4b)rC_eVh?h+E4FR8v}ghu-DnSfOl(Fk(0PBmcP%m8*#<*zSizs{ zJ)x3$di(Uh&ZGYy83?R-UTxFeTK{g3uXJC7=9}#?e29n++YzW5q%$uk4+kp;zl->S z{{e`dD$k^Eb5@s~HLp{ZFgcg_EU?&=eoHu=w79_|%GQo1ArCt^HFT(*4^-^mYM`q< zWZ#az`R2iC37K@-R&tf`hKkVAG)DJC8p?7u5`w|6+oI>pZ*t6q1ix%F zzUcv9IJW$$FE#mx;!2=H`7vm(X0qwnQZ06z%J_+y3Z*guUg`3UW?SnxuPEPse#c`ZE<}Seihz<6k1M6NT z<@8#Bxbwg`B9RqOG|XeIJ>6>Eij%dZq!GTG(w2JV0BYc>$jJe)Ou7h|ryWJo8h!f9 z*Q5wtNShVx8OwjvxQxdD2q?N;9GQ3{S#oJ^3&v?@98KRZO6>?p_g{~ToIK?NMcujd z*&u$LYW@*bbn|OTx)os=w6%IVQ<5!)C&Jg?`bZZ*+`U{ZL3UDtcdC@uD0i_t(RpYC z?0@pS%_!aEh!zPMTuC@~R1EE&TYP(bo)07UB9AzuovPUAYrp@N;W!e6>C+vPejc~# z_R4;H-;5#v-k5W&1}up;X*e3Cakz-=XMGrI*;@yUyoJ1T34ks<>}QiF93PJlPXdgXhuJx*jKTfgX?oR7AEu8Q^zwNS4VV*9 zG~}^rw>$co(hb!~N9;5+drFCRzIU(M{z$@*)1bRS$bw#$$W)8`HT-We$Zz?J7D*tA zm;wg%Ut}8UZy3oAEc^y!>S|eQXZLT)a3j}P`=BdauD2lm=)fW?s~!cc^O6!PSF7^i zrLBr^Q{(N|TOLAu%4f}lOpM3b{BF`SgL}n)5yIDP5OTH0S6ptmJ03g|*sxKG))8PZ zeky=Oqn%B>Xuoa5-#7J}T&K`3{uNo=y0Dv{m2tK!*?888ggf2Bu;~@^GL+8-S6a4v z-rzOpRpdWTGG7!SgNZJ--Hj-sZX9Q>wQ2J9cU$l=yX=3gM5@3(k`tUVcj?;+<;8_s zIrH3I3wsoE$xQzdTh{Jql#cx^`W3xQ?XIMmDZJzsb9o{u7Tu-GC#MfpPP-1(Ax3ha zU_JAep5;G-8A<9wGA8$|6hAgKIZf6xs*y*{lTu@RSrZ2_FXGZGI)-k9id+0Z_2%56(3;qdt!Fl2tnL zaG4N({FyEZJ0HSC;T>9C_(p*3;aZFz z1hMF|$BquB_&A0*l|KZhzefV=`t*X9d5zwWQODa-ePhGjIA$wS2%*lan|z83&11pe z^^9#K6Nwhwi{~t@FSC4Dj zd2~Dkh%Xi`9^iSTb0^kEpBnw^boR}-dBIG^zP>Bs*AAO2uXMGE{e5_~;}3!#rgUP{ zR69Fz!o%&*&y}WsU%0qQyMA1;$RcI&!C}C$+s}KC$1XnhYS`nQVt57{{R^G;7ZoW^ z^ULZN?kP~8Jm~H2A}*=Qn=svNpRh||8u#qRt4^C6qG$9x0UpbxxQpD~HI2Wl2z$(k zU1JpXowgspEha-mhv~}676&Km+IhRo#Dy9kCOQddt7rG00wca8q`c0K8rmZWcP1~# z5PbetwX}G>Fol^b7^Vbovi{C^W0>g-G~3jZtm>}bQ{7iQol(1jOf;L%>zO&b`jJg? zUQ^hh^U#?%is40O77 z_Da=n{2yi=beF`ebx4~v4MH3uY3=}RT5F_l*yclaUrc6QLXNBw7o1ddmWP1|vmf%Ftv)d|?j8RY>UUS%=_ ztm+fl^|SLTUNzSVY{J(z!a*&3`={AhZ5^7wpwSkg@0$P3aLX%ob3{v)-{XeWR@g1q#}Dz%HjR%pQ0kH2Zc=4~qV5x3L{<;J$1NV?pIyIARXa|ohT}A(;l(-5_^X;YSoo8^&S;P6Vm*l#7&8=5T*m(A1PYR zV4kJB(oI>d(OYx|WO=t2Gg3g8z4LQ3Xw+I)Pl0VG=S5|3@lxCylZ&j4RO_L_Ufeu<9Oc$fiM%+wAUxcL8eeDy3&QjEwA!mX@&@uiPk z#+&T349L=Ms3`?c76U|oW$GMg*Gx33b3$zu@;e_FCwF^mNhh?82Rc0?}IiOj9kMkF-!F~__~2Og=BVn~G} z?2$UEM4h3qSH;mM9Q}##s|0p>|8eKmT6WZF%nal2S%OGQ1^3|y!bGcGI&zN&cpG6S zC(r_E(q_0rVx6~qTw3}6+ zxut=#&)xO0mvK)8KDb0BZ<&b({|_nu_-kY0PB)Yk`bQP&uD7Y!yT4XsCF_8M8IXQ+ zvY0#m=Xrol&kuI>%%F~B-|ES74L%%4JJuEdmH4hFGDW(=c?;kC!QSMb^|MFy`qhpU zwzK)Yb5@o?-76RQj-gh3gdLj}IZZV$o@G@-kA(?|x&i$vk2f!=JHK7bxOX;h6lxY6dZT$f^cDa674c7OH%dN8&x!DfM{4;Cp?(ot0*eV9yUaD?qER-Z&>}BKpcg zXHU@nFtPox=%C8*e7;+7at+W#{YM9gJ(u-IML-6_D-owTFs`*`rpP_0f9IbZ6{SO- zW&OE71}e0lcfTIb!8OjwCVUVLKLyZI@+`}R!;c888-=k&!(8*N%2M}l6k#TX~n=SnBrpwP3Pxh#KOwp{?ni<(fH zxMHc&D!MwOVvoXHi=E;ltCPH1BwxPODcj3Og=zHwdmvvicbJYQAw!P&<*u#yW9H{c zq{KS0UlZSijafc#&r)Ul^IAQMP{TFE;`Nq^XXP$tm~hF|t8w5#!ePy=dtT?xNt2(m zHE^$5iMaPxtywKfbNFW(L$hMD)%WQkPnsmsMn~-uIkhNRA}p(Si}#CV%X2XsqL}WP z-uN8RQ?ST-A7tK$A124*QHL^*`rH{tNo!yWHItoS5$50y-zyHX%;Vs z-=m+$A!Nnq5#rtCw*Ar+zpeKuQpY7sZ~46~zwZ|n+?Wr9=NJxSo4^&T$U?~7zqGuq zwkv9Fwp8t{NDMChgI8kY-|wzA7LB&x{H?@}Eso>8ScMBNFKW=62CCsyc@<6ADpej6 zPrZ3P9as8d1>qXLccVtFQ)J(IYcOf|<`OgDJH3}J^r*Ij-45Q|!gxLz#vs;ljvSwZ zsMtQmM(w*}d!PK-g>Eg$&~x8MUhH5@kIjBsJI)&Cj;daX6SV>i*jLMEH#R$17ugg%=mav2Y~jgh-TwCbpOEDjj>J@F_Ub!6 zwpF}{`^wf1+)n?Anj{|@tCo9d{$WN7C@=jx?ivh<=PvT}$Ox(KN_Mw_vXdaswu?1N zTp;ju?x#JyA--k*53yuR_RFbf6J?Go8_KfHuH&G`97NTrR_?p5a znfmol9^xTi1Ncz^6B!ef8Pei2gsgEQQ2P_N-#1&M4vtfWNdSah7v&< zYr_r`FMhszif{NcxV&A)R3j1*Ps()q6oP=pN7zmh=>AUezNj)m{StYwmfguOWrCA( zF<-AX5bok%C>2;QKB(8(Ce=)0TtH=DI`WG8Y2jqixUgenSx1CR%wCkiBc}s8v&z8e zn+DzOP7;}=08m@iI^v3s!cjl)p&fIE_TAY16?j5i=cnYp)ntIeT%-*FN)Tlk?E5QP z5O*kPVY<$5oG|H)TK7}tz8YCS|mbg8ZMGZmSjW@6kRR*x0cj7jhBDX4^HB^kv#27 zO|0GF{q^~U6W2my6N6>Z;j8D5u=PhMvG_8-_dIL`tjWHnTW&GRRexnH5@$)w7&9B3 z^G%!qoz_x8RZcT=~t zV1r??*XtWo@$Ik6h)VYGt9>P0x$m}-c-VOk*xJHv)(YG|!pK9&^C4_YX2 zeCkExR1;53i!h5)&R|+A36LUkjEcewb7a3*nUxfR;;n|1`b?6?<7yjx4!i+A`50*| zx?N@HD8n&ELF^oZ&$-9)`z-DBsX^h$!t!~djq*T7s>+zek20x;Y;btO2Zmq5$NrK# zrF5L@;)n)kKhOCUb`tR()B__&N@+<*i6|i=d2Ln|h7onVjeOSK_ZsCTd1oBDnO^gj4S~MPE8ox;f`}Q{wE}I?ZeOu|?+ZPQUSXMLVM@l0HZ#l%&SsjgoQt ztIGJdcyjY)Fu3Ombb%QIK9knqQ4K;$7yW)`Yg*AONdW<&@7L1VAFQkbve-R1@ii9d zkkgr?$6Q{KQT36{Adk#e`5bJyg5EPoYd269%NN( zf|n`3%k7#hR96rUTXcgAGN(O?u{92ujzoM*30n}lg|=L++1!4$$bI*MTV-P$>eN0X zp$_@9rF7D68#0(YO0j4dRf}OVP29z`aQhG(5A8dFBHUl@i_{H9`wIV1Y7=j{$|dR+ zQ$oc{NFd8UWSU_BNjAeaadCVhFa9}>yVJ0;>v6QcD;Pr=jQd<}^H9z?=$N03G&&~tL zia^!1M$4pnV=sR6@yCT&hs$G(({lO`nVpFM8HrIg#8yKe+IJBpecdxoAdJ)h_`;`a z?Y11z=$g8KGRi|$rIRaYCmAHs82 z6^2DR|D;B~_h0Is6P7pr@EX(+fNsQdkP7K1I+*1n(EdP&wO13&^;xwCGj)D9&5_B_ zs^unB&{W&zb&FCZ?+_hV5Z?r!FHSu<$w~TGpi(hLH&LU#A>$J9D^HHr5Yhr`oS_UQ zXcaP#g3gZ2uaHA@`Zz{@y`ZO@S)##u(Ht{o&1hAlIoTKKsL377LB^x(w`qJvyOaN_ z$xa2O{kNS;Wa)`lo5R(ZTyPE|yGErbX9QO9>?U`sLov>iw~l{2wZ%5gnXJe}kftu5 zRQil*g@8>w3)xwi1?N8`>Q;_B-Fh;?E+-*JE70GymL+Q&#lV(+v2!G!!T!i_{3C6h zs!JwJ{QkpaP=zPZu*GfadGrZjo^gw7^SNpfa^JGaN&`QF7)tRlBzzQ6CQ{w)m__@MH?#v}Qvg z&fTuTY;ca;d?KML?gWvuCYoXZoQ5pkrXqVgg4f-_$FY46KtmSdWZUa zFQ=^iq12&xETp+}eTa((WKIE%jg=UwoXnTq+h;vIts$o!OqhX%zvBW469Ey9u621Q z!PK9ntZR2w$)`uR5>oD%w*6fmBAzFicD#s;Xqh)>?V)BsT zM=qS7>nq&VQB;LxSNdF_zUy8dE1N+|)FeRze*#PQ4#TKuwYOuD!}0Iw7k>UQNj8@y z!md9>_Zd4Ro^lB-5Cud%i~M^)=5YW1`V-I}tpHhU%Q zFeQrg9QMK)K4XFH1{V7>b45goir~C@KfEQdxj{#U;tw3db!8g;vyb!{zCD&fHFMnu zM5A|Coa*3P`F9312u)bfZLvG;>nFFWTMV7GJVtBiWp$e3kep4Ef?~i6Rj*b$k`XVR zLKNFf$_?|Al9xa!3}OC$qT`Nq|F4h--A$1(fG&I2wePxBZ437B3Qjo+Hf<*0d>1@B ztvPTH6xB_rZ1i%WV?x5Oy07le>+$@R?76s960JUAq%ohmoyb41E#8a?wAbRIo_E5- zbvw^@-a22eh)RT<o*QAns*%H}6G}t6uvqnck)3mz(ty*wUs(>rH$+h{8%5VWwE*o-MX(134L` z@Kg?OSTXkY4ZNLbvK;8R3!v$`IfX#l&~E4HQ?JefZhs>yPe-jzGG*@1=wK^T*cZ5K zl7U7z3T)pVDbJ39KU^!aE^OuPCti3Ns|5Jp*)98ryrS6}0#&t-{44WKM&I+gR*=dp z2_1;dLSSb=kxN1PxIojU&a}-?a%AIBWz)Eqg{-Jr$6-L3WOH}+O3xae$2s~~<_!8j z@$P?prU!vx=lho$M^lW73!I{fO!_3}vT{seUxS)M0cMqk`}AqqZ>3?`**@brcmFSN^|b6=Ra{B(?OJ(M;5$M2mdE{b1=`sFkzti5 zz8~(hO*y_*CP+BSsifsRclRXOpKzktQ`IDq8j zu*SN&`uB!>ws?hEq*RjPgN)NHWmFo>%6a|=$0^DM^FiIxb~Y;I8Ve7VdGP1S*Ga|l zpk7Mb%ii0uu1$*R=%1^`RP~~Yf%({+Fc3;N_^uyz@>YQb)tOMjm$(Nw*DfEGSgdb@^AL3OoiT=AWX%%>i4Ucm{ z>)4EPj^r$H6i4@Xa?IT0D_1*3S0vX3#-BnI9kYuKnLP`ZQ4z;C50YPw)3wb@WAA;~ zFc)s-*B!0X1Q8PJ<+w)(rF=r>r21y;)6S+fcV5+avnk+r#|fThoK;I!)8t6-vAGs zP9qd)n#ly9k@+#pPZo>yc-r7Fy;qOo;zc)R192CJCJtpXcK>DOjw~^sN<4dXiLD}Y zKH=><&W<@`KO+sY!y)OEkw8C}sOmBb7L%u>W-{C=v?AMoNloT!ynYm>6>3|nNd#$I zA9Cb@`Q$3TzPQ*V^OxJ~)`UOVA;IV;q6fd2X3e+IGWrdgU?ePUIzsC$B}%@)eXPN5 zegL*eSWimffbS3 zA$3D~6&GZbx{8^UUU+XEtDm&Hv;oD=MS){4oV`6Ssl!{CQG{eSOivU$ytgzpjzc4= zjZPB&DNWHBC=-o-%>NK#PW{C;6lYzx$0kY=JK{n*U2H~%N;&nT^=1gF;=9dE;t_$! zBvhYa;Hwml4?~x=sjPgw>cqK^0yk7JkdgAOm(=<9DnK3!Nq_Iy+XOTV5UMu7aZ1X5 z4B_+vd^tV|c1e4~j8O4CbAd6Rux6Qo_8+zfea_m-eZoZEZ|pmNYz;RXl>vD#YwfT& zT}>ucZhH#dpx&xop4U+RFnu*{k3aFjTbj9jODSB2^I=uBjYG-v_st|duOKH~)P!hv zqBaY zDCrjyqW_dKJM8zZ+)lv`RA#oo7|_n&P_B9o6~pzemJzl#+I}LcHsIM*?PuWsUAZ(< zX_I#Oh0pS1Nf3F?_t8_87aPA|jbkR(l=?mAu;v~z^N0KWrVMNM-o-&wqbWzjMa2GS zvw*dkamarVOlfK30AhtOI<6U$jX_ErP~DXlyjy}tUITlLRi1ti-!6e*o6h``%HC6X z?omdTRL|+YD|!PAJ9F;;Vec)&;!4(b;R%5Rf(LgC5FCQjSkMqGxO;FKcMT!9B_u%b z0KwfILeSvWXyejABS9N$`gHc$GqY#*%zpR#o$qI^iyw=1Rj;+G>aM4rx*r=yeem%< z?RPyhk9$~iRPly#UN8GiP%&%CGWZIE>`-gB1-t}TA0J*!rHtjv!-)sOZ9t-K;Wq)P z2b=N$%t3hxT${EEY0{8FlyUSkHPkbU8(C$X9H@(ujE%vAlUX^u*|6pG=E{fjo(XxLK^|H(Jj0Gj{>8D1{!H@CcX&T17!&h709D)(bJ6FEByvC^a5 zfC|!`Q;&7L>?bgNcHRjL*nPkhNh4N1=k|im1Q_g9bLo5r2Yy?}SIV`Nd?h$0=Yai` zy!#i-r}VjJ^slu(h~4S#e>z&57P(b}k*d3{SBZ^dVQNjM zpHf(PQ=57{T@a0{3_??$sr;@!I@T&T`~30{sU8!m`IIn|qah??Jg!H?e7k9>)c^#1aKa0seA?X zykWT9k7`#F5SnD<802%jHOT}_Q7v}pJU5kF7vn;GNm#hyvJi>e_tw#GPHFUvGVUv*OXc@$2C0QIgq%W_~MQIlp6nOH(TYH z_IYlLr8(VW8yRGfEb-1;ED|${EKOq6D%NYE&3K!my*)Xb^@WG;S;{WpRS;;?o4-$*_G{TFT?fYVoY%%76zCk&YL9Js<4jF5=AM zb}&x*6i3gwDo*+2KFK?CnU>LDcMkS@@Fzm`3_5{e7#T(Cv-VO8{Pa!+`wtc>~ z?1Pct!1uH>5&As)bRa8zFQc`Ke{)s=^K@giedBgb@T=qj*X!&Bveb`X@DGs=>?@e9 zjo65T9A2<8GRkuCtihxSfbdPco^j$jv1P)#ugbW5ceF$M(?g}5>D-|U8Z^%dl&8kY ziZWC_%z-zy!CHz52haL84w2#I2{g}Np9a%%e^Bjb8x>xC=GCdtcfn_3+IK0@C?5!v ze(K!uwnDuqMuTf7D@x(3g`BMR^x6dFg2kLA?oHe5k znIs>)`lWqV=^FDflL8OeNE`DW6BxVo_!M1QdRA(gb|GV5RV22Y5#}o4%qR^JRHZi< zCa6Ih1*mcFKS*PU?+}^bt0irIj1tOnI9F)e$xS|h!K7;w7}1sH?!`Vu943=A6?GlJ zMsq&zs~`C8bj&oFm^h~%?sY%WjAK9TTDuvASp}RO1YO02DnQ*NCf z*!+5Id8D9sFl1r^jceJ1wGZ8FD9<#eIEn6Rx55$(_;-i|y*Az-#9rU-bCQe9N>t!i z++J>7`{&*7llD1_q(H3QUP2Yy46r62*Q|3Y`Mh&oPn`C#1rs#r#V@_KBuvu!lhewN ze`=JF+a2 z=w~9$z|(m2`f6aiN@k`nkuQdce-7MBYILH^OZNr!_0>quYmo%^;1#y+8K~f!ilR~4 zx4FtVAt*6-@>B2NoUzH&wudd((&0_D&=aaW5Lwr_A5Qkvh5{?D;pWz1Rh{eAQ&a+Y zT7!4dvLPuElkGw(6AB~Ui-*aZE0U3TEDEQgq;EgP0^9{4g1vk)38dd?2?{1vq$w`r z`M6nIb^Do@mj`|_>s zksA1#wORF)G)7#$pa}27yDQJbji8Bq3Jwx=>Qn*1VWW!zPR?W{C(NRe$&Alx%Y~!S zQO0_bqIbrEs+Mfe$v4n=n`Amj4}W&+S~;zFaq>g*9r9CWRCpG=>kNlSMzc1FC_`Nr zy-rNU5U}5vOVXF;NA@_>DDfLpf8jBzJB7amx1fPH8S8s0yIehjetw{l?=ZG_u1ux- z#nVOgYcp?aR3TAQm+#Tyjp~?|7gAfdO_3|!lH+MlBA9tg6H-I(9v0V`_;_i(Q99da z%m_DCc%A$p?!GwsSpqm9cR@ZPwuA(i_k8rlI1v$gAD-9*LH$!BigPBDR*k8nw-B}d zu+8%Y;32tgsGMx3yjq`u-j>D}U0bmrg@&C8DwULHV!5I17e^X*WK^9EU*ivdA7X(* zurqiHxut4}XudL2(zKm>r{IQKA4E#rLX5fYNe_WX9d0Jk4(E`@;HX2EfhR%mxl0xo zHGitS1)+Dxmqrur5J0YO#qeRr^2P~PdKkW$6~#tfE1uKE0YDK}7hoo;X=PP|eIPL{ zpRTVdo-uqLRinf?iYcP?wyzwqW#AS(I}90DNHpvbj@xZiaY5$BNH6X4n5%gT?>>!q z5pO1bY{<@nG2=uJc+S!=~Sfv>sh?((o8i5 zxdQRrErsqcv9xJAB?Y$i;2p%nO zn;UKJ1Y2@dW{!{dL&uO6bWY^h8tCx~vbpr}35<-FW>enjU?uF}{Ro?L|xoy5Se+ zVkupG517oG&O&;jcbTTS`}i=ilc);&FE1F;MaUSjo-%Dcj1ZdWSrm9co`Z@?jINBa zRDkd}B)Gjso~SmV-0=9>pcvGU5QhCMs1oh-Hj$?RXt^E}MSMow3CoZC5Cv3ps6Y&% zc%C&P^C%ncp~Hu~zkE5ua@reH;fkXz#6}3;THdjeV5WHbCYDNqTjjV=#UN zX<3ACGG;h+TJ7^SJ|!||jX@^o(Y7HGa-AMsTPr%${SYnTLN>qSM75=zShGXvq3Ua9 zbiuA#_bhb2B74lv^I6UX%<^w$#x4?B0TwY5nK=hLm2fns?!b9DrnTE{Wo{Omg7yWO z^=`5dT-7G_@O5j{E>3|fM^Wdw7T8X5fFE@(W7yU03jH%<0dGkf69kz_Lo*_fE$B^| zbLP&Q!Wh&#*;3z6Gh}Z(o}awO4<6^GoNEXNe32vOU=53Pg4yF#n2^C1|Pd;=MNg0>D;vOYMyCnP}!8MZ!hH&aTU3G=yOdOnE|VEt(Q#gTT{ za*0kkU)AY(xz%v0m6BHD9>DDDn}<|Z6~;bWG7c|m>h3y$8^?o~3``Skbci~hNYTki zyEJ4(2|aOi-AgL5Lnfu*v8`AGi0FVcDo*>1z_mn&JI|gLJ+l3{UVVOrjFp;>m)ftcgOGAhmK9YigdfYoK-MzZ7^&bDNw+b~C$|Dz0T z5juN!y>wQx`o~yCgc&;8%lN#4bGhHg=d)8ooUqe9 zLI2yRD2HS=J3!NjwJuqAarcgPk?x0&LH+n}_19W5Uye)z!lYwxB1ui;I{s?S=U}|? zq!yuI_?+#Sfm0#ltcl%6N~x3laTOO?hjEQ(x2=c^y=pv$B7&A4dvZN%brE0$UldqM zqHovkTwcw%!E;+&Yoor4{w5Rs^8}j5cFaRQuW@z3zObyGY$5^-Lmlf>^c_A5D!w8( z`+H0_kCSxVoEW4NM#?-tl=fU2wa15EE?Wc2IgQhn>mvQ~=xan((PkHkNI1b!eJ8iX zqP3}t!G@}e=o4g!o9{}N3*B%jH%i2Vn#f1;;||kogO;u?dN_{0+vE{jOpcPyE&T^6 zk2+byEKn~s@Jf!;)K2mj-p*`T{xCo;q~p&_W(L2L^1z+I3=wgh_J-W43pd}TlmgYmAJ;bX zQb?a!))^*yn)lcbWkJu+CW71C`66SGdGyTL$@0k|`sSxXfQ`FE%6z{~&HU;9R_zuo zASKrqJ&u`W&6dAe=`H~(!RLTu@QO2y5mWME(~{0OaHcF{=@+!89Gi{X0ScKaFW34` zXpOCUYGX{(4)vJ}K7V=kzQ3+Cv9_!XI8V$tIPJM5VuC;W97Be8tBf#M#Q?SbIf|JL z`tdK6`Yg3p57H0O-@F@E95Y~_6z5a@XUI)4MeybHx(I3_y(}6Lgsz#XQS6P+72#hv zRSqbb!#dL zBD?l$aJ(;}k;H9=+Pet3vy(T3N0)QAI4UtQ4?+#trI!vGye7M|JG%sU2yKCb-(hXB ztQYM~edef7GrnxY@|y{8B!t*guZA>DzVvH8m6;fm3&;Gy#Clh;N+o1(eJ2)N&~*a8 zr$^s&C7OG4CPW?M^ys;Ajsbr@)m()&NNDU$F4kI`k=IZobZ8RiZ2CGrT6AW<#zOFvr0ct|PN{LucB@UE~*D z&jM+yRPngPiYvkfJ{nz7kJRA!Iwi-X8BMN&N}}CetYAJp@$%uDtZV|LAM8@C@F)x5 zz|{zBpBCHVar4nzfUBLMQ6$@mQA*rs3(i03C@nL*1aJ*zV`- zb@&f12MHhcS>|Z?p5){Xu67%PKUt`3V?Eq|`*4|>N-d(I_%q=rb ziM-~&c`jQ$i0tPbSI9*AGd>|vCJMGwq;1{SULcr?jC_Uu=;0S^x3A$@7d~BmD#u-f z%$zm^_$4?rfbmhsxzfl;gND<_=M8cB(ZBk$3(b5BW5IGs#+LW&?i8bpyG1IyT5nAP zx)uY86UBsT9{-gsxcK20H5@up^K{w)n^bOf(zWO|a*!8RP4jH}Q0HyrdC9m@rpyCfmhAe-D1 zdbWt0f2p=e`kHj)=}XFKMOVWvN{h~k(Y6S#0lH>jK!q+!gg}WaYOr~~>O_Vjp1W+1 zria(^aLZi=aqEv~F!7tI0{erz6Z}5CYD`o{Cy^OR2te>GpM07LJ}AS`Q17bam1wL?3fE19?^|V{<6W&gq$?06J!$3+kzTs`nFb57so&dM5OX?hH4F>V7jk^{kd?Q=@Yc8Us+9;SeQTqzz)`}O z&xJ^t)FOu(C$wip;Xcrr$cvhxFZBjW87MCi(p#N`p&`AbZ5pT7Imi^LNnL?qaQ7z$`b&uEiLC1UXT&8N4KA)ERZjmqKHUl@>hX~O@L{0cFIFl&2 zI5<$WGGF;FXkIE765s`!;|o;+?O|5{0(kTok}~zrGs`Nc0vl^%^jC@#ru$qX<5(yK zN7(mwgq1fzq0;dj)3>z=|Fjc1#G=lpl}N_N0o&ZVE{Y}>vmu5%oYW$-9?-Ggmcbij zEoPzNn3}Lp*QGfLW_N8*eUI}yE+9wK{Ynt_e{=78A%>2M^h0f%5+qO_ddJO@I$v3W zuAS`vPLN#?N&o0pe95`yTNwNi>g8nLYmGTn=D3Vjo9D+?@A^{f+9Y>oxQA0E$P2Hh>q+ctlL|Z$3%WQL z+nvFF-|A+MC&cIxCHqRy%O&#@f1Ubm@;#;`sqXMDRu6=NIVPC-^4i7<+v}TcpRhGD zV$G<_mnLnJ{h;Q^JLpR3P(8BoJVE2W-yKtbGB|N?0^Z}I!DBgs2)c`}WJJLrIf_iG znGG?H3fm>`c&V=1zIY-RhBeJwywDD@9R{~H!&N3Fcz69I`w?}VQ!eXG9MUK7XuQ?>z}ch5MGNLx9vyz zJ_@~iRUt$3tIJ8GfwRJZA!AcT)Zk~&_JyF8w0%!0@#;=@0)t7h6ppL}PNeu!z_1Iz zFEmGeau!u+UXas8bO*mbSkj11^mgm@BzQl*ZKbDJ^T|;%Au<_jEEHUy2=E!BE3a=u zXZ=kmRWnF3USKvDK}Qf>XYIND%x+sPSw?=nrXG+#F zzA{bJJ>O*IYFzc36r(s&dz`ufsNmGE7u}>K_R^Jo;VuacP=0oqLILdZnkj2*@v_3E zNVBFN#?2oUSnbC-=x-PMx}lDYDwtL={(QOn5ySX%s0JfvsZ7b1a_h?JT?)t6JdC(h z*%5q~i49xc8`s8uCNw$xF1c8@0!m@p&6fkNG^6Rz9`1Bi1a*db34Ky0km%0j6j_$A z;foOHJS#zoIQ+_HrnlQ|>M1RsnJ{W&gaV%Y*)Dhq*XcI940C-OZyU=;d_0{QLoU#4 z8I{wlu_=xc(Vlj-LwVR9CCP=FV_>Kk$*J8CO!|TjB~O_ay)|mRx^?Lw6uB6N`FYKD zS>&k`&a#2E`0t#zV_NV9dEUVz?_M_pXoAK8;tZckW7e8WRr!KC3w4S5rarq#J&PFJ zWv+n~2+(+#DJ!$*a?w!@HHc>2aO{dxEi+0zP0G&TL6A;3& zG9{_-M5UwlL|k;46Ko~0GOg!^PuwJ{$|?HJ``0RuWpbbOC4Sx|czoCmt1>^+ zmte{G#NY1Uyo?0j1hA%XC!2Ttx!ZmpU8X2KHQ0}Li_;l-q)BhK4$%D0>SC&KPdm_?A}g!j~>~HgDkA+ZyV483k&u zeuwjjPj~f^+Ynt_fW?agzcKQ^vYK3?uh7a#iyai-&|S&6rxN;oY@y8QUvUo&0gYgE z4L*5JD(%A6(7`-h=D{)AH*Ff_2iO2wj1#{Dhs>pzx zLeXlo7kHWD2~6vanri!#ftj)fo9Y6uQG>=k%w^)frqjc5;iI=#?mH`1!zLTl+&o4E zZj0;Sj!NIVsO;VN_q_xi(L$ePoI6=crv|NsGj((+vEZRp=(hFF@bf*%#vLh|f^l8D z=C#1bA#D_3+dj&zh8d(o^+AoSVr%YxNp4?@!d8CN?3;D@mFGyW$*FkK^`H&JOqH^t zy`t_K@yEhMGZ3s$qAU7>IBjxc-ovMhzCoa2!14Ybjgj&)8~&ZJno-XUWz-S$8a9m& z-IhMtk*oM5WmWIc@I9?3w|W8;^yR+?+$zYEkYh()2Qd?5(1mdfm{mP-QSxF(rwKtP zsd52}EAo!sf3p=C%D#}90elcifp0KcTaQZbj&dw9a3q1+)Q0O|veGyQN2Xow zsUlD#@s^+qM?Cj6*{m! zlV^Eip1vN^2@0tq*7^*#`W>%GUw2zWz3!nrEVX)-t4IGL13lec2C?fdB0_?U9(;)R zX-4q(tT4eyp=;R-BFWP81dJv9)w%Q`{%q$PMszy-r}*yEN+b(uNZ)4MbdgB+uUOq8 z)~SHS?MMx9K^Dh%DU@zhRFqnABOK>z0k)Rr1BNSiHzc{2M^YI3B)l{C>dZYIq7ZV` z63KMaE#_3#WEUW05huZf+5$AFcSZ+#RpFE=1aGew-nO+uchb=mTZJMw?Nac{8!|?3 zuLZbj$sr1@62qvxOy*K!ub+|VOocd5s}!T#_Nmck_=av1rruKY`{4}Bqaj()kK;Iw^*NsgjkHo@4N2Mph%B0tnbuCr$M z=Re{cqy`R?rAJ?n$x=9srIH+2bki;Z2pwlJYWBc*< zOfiFJ)?6tBu(u3Xd2h-a{gB&3FiA;5*p8-JqQ#jGwDhiQCPR}1EW(D!Y@=51?VBHcMBZ4q_oTL<}5KWK-ig08SZ%uRZbJ|JGxj>hGCT?LYZytXCtZ{znca4 zQxA-=G_)c^ZL`iFL+DmG96y}4vmONQfG2xJEQf02C>#6M!ITr2GmgcZT-p9)1BQFi zC$eA>WR6R=hPK1S+mIF>27`5D8cGXLFf**AW*C+xptsB$`fr>4ug9H#w})t|pfoP7 zK8Si{JCk9rb@6mi59Y;*8u@0-ncOk?l~D!|GolpIZo)*6gbyEF>mR3wKj zMFhk2e4#B?B$bTk(I)cn;iB9;JHyLi`fDx#)7LZn(Dw7!`a->-#XHlO(o0`6Ivi#c z8`=iA11xX9_ns-gRZqOzXM(CZJmdpII;SdUJisY&8&cp*lk_I?(6#h)NZzknoIp>f zbJ2VhKtHQU0#-x^VW7^Jh7Uf0$%`a!K3WxlZE_R9c|LeGujt-8-^pxdUgdY#5OTAI zk1r2mEyPyZ-X@G{AT2p`yiNZ33(5H;S-+GoMqD=HpxOq%EA?E+OY#~wvM3*o*zKo? zuY{5*51Li(*~gNPrC+*E_n2jfo)Eg-2Ug8c z-|FTd=z0;O(xVp&$?2ZyT#82_a0GOT`Q{WE>Fzm-O|veLn#;ra9iSUdDng>>h|J`V zbC6DOZ!V$?ZSiE1YT-u$4SKhOKAVDwH6+8c-i-#xa68Y4@7Nx+lpY#$TDFRX`yA0w zk!A)0Yb8iTHpg6|;;K_T>u55jrF#{ck}t74Kf%^*^P|LFf5(hOe#{PM5n^I=u8lah4tQ80s2lW=5P=p zaRC0mQ$2rk2T5e(=^pFonJ)kvj_9>ynCE)qAIH<FgB6OX6HAGAX+Qi1e-Krh9YEvs4Wz4nA|hlbVJ z9c+7D?l({@niIq`P)egBkkO_-1&Rk2Z(0hd#lBGT6tsjYc09v)r1!4%zWn;R7I^Ln z6>LD13ZIvLINqVrH9a5yt?XisS9#rgl3S|z62*D{VxbuUAr9icMRJ#QAvYZ$P&%T) z9`yCiXp65J>yBR;hJ(w1RSFu@*8uC|a2z`NU|z^vAI++9gIRBfZqIon{tk0B%;$bdA0b!{2_0{ur>=PywA;1c&VFnWzQdWrfWn zPsw2G=p^qxoj5cdSeLIC%Oh=$5tpQmcGi*GuOcmn&Cviz_fy9Y!bGF`l|q}xqyF6$ z_tWljIu;)lTEIA=tF2-)sGFE48Mk^kolmGp_3LaNnkaYF(9(v3*lBI?{~}%0@99DQ zIPH&df>$IxKVaW6q*ih65$-JmX6&w24tV&%LTqo3=?d9nzZiKORdX3l_F^jzo7M5f zu~8&jf^iT1_t2~vumOe_cr1))In#bwfjs~yHZq%hbWhG859+nfmQBoKpqHDTtY}Fg zC93n69xbB2{^mOT*VFwwUtHVjo0<(eoL=`fFex2L7vS!_XO>YG`GQPe+^irFBU%pn z;g6Ut`)siB?L!ZCDh8&~xK82rvn4{<`W6k9XCBw!>JwfI2>5xyE^VsJ!=j`3>AVdm~g1blKcmr;1h@USFd zkImMIQbW+;VkCug--K>BxuF$rWFB1?A*lqRR) zJ*kg;eocVy=+k{JknXLA>Ntr^fTO*q4DkgbmC8(Uz$kys;~CkoIQhzfu~}qjX|-CL zh(b*Ya^KS*^#?Uz|1mCh5Ha zV{jqq%M#R2?>Plgmi@1dRIZCTRb1F+O3xr|(_yiFX!vG&>fC$)X;%V2{^G3KXLT9% z{b99okM)vx3Qgk8BRdCQQ{ zI4#-`yI7C`bK1naMlyqASzdi`gZvQ*bgh)JF_~6ZR@H145EpCi2UZneDLPU~CBE~l z<}dWlf47SM-#ecgQJq;9I>Gn6inK}^)5d)1-x35fW(Dnp#gZq3MEa=a`}UFXd8J8Z zdzk$8t>IK_eM^>So8yPgUA`V3N2{613*0lv@(3I4h}HWI$S{p1+q&v39b1}Z#}-yD zR$#sZZm>H6!6#1Lt5AyT+rF*imYRizIb+8(U_E*P*@N3IvaBWy4GEV(WgV%l$Cr9I;JoCkv-(U z{B!U?#n~D6DFHwR0>7RCg)VlfK|TEZ$7;=Nev6AeZlHk9A$_jRuUnvlv_ ziwE+!!oSu2oK{=xwlV}W0>f=iN6W}F%PN*CD5{#yS+gVaA6WrQhRn_`1(&O8btZXY zF5&=tE6(CpBIY|8o~5flQdaRV)|kyvK4ViBIViHoM7(-HZD?D?%UaFR(as-wz=jlIxV!M^4m94De2P0V-PTPGjE=@{MgGk z1)Y}m1RTNJ7avUdLuLOe%l6P z>quVzMOKbKZZChg?cfF5sUSgW7Z~i}`@fyE-`l?!M}4GQw$1hl{+nguzr_3R%_RAm zX*=!sJHCjB{V%r7KlQ871}R^(Pl?8E{}%%0Pb2&(mEf&uU8;#`M&^IJYJcy=uM1t1 z?+%7G+tmXb#P6f@H-h?a8@w3)F}=fFl`6kl4}T+0|N9HpR3s@z6o6J6^#3rbTR*0E zi$u5JuR^*1_WS?XUm|5B&Z62;<~#l$M%C@d^qydrP7?f=@c#E^!BI>|oXMKp**E$B zzVwQPk<(jpi8j51wA%gq?EhDHBxQf#ET`htIoGeW;~z)tzZqCiI&ykJHz?54{~i*5 zZuwJ;{CR2o6eE9L8b8IzpCk!VjC@DTwcrW?imP$IaP72_NIjH7=WySl`ds`9o&Eu9 zL{!e}Q(PiEw%2GfQLmrXyvm8l`Sgl*Lh&KWn}@WhQoe_21A^8`Epsh?UNv;VX~O{{ zhhA=wk@OT{h%n~MIYj$pG5D@?&>zaU>H<*fCG2nJdGK;|8H23@r-Kr&ph~a)zS!$0 zN)*=8B$syMX)P6`p*}k5Iq{Rn~%{W;xp1< z{MSm-!C|NefC>xg@I8}gG=Gy0Vy?Js{C_RV`-dr+|VN##8I+nziqoK`Ae_sOl4{!U&FTdzBar+!^RL49E1yxtJu>3E6`^gm*Rh!Ma zZ1}^!KlX3$ydb_4{PRUWhwdNX{t1R3Yw#x+euCk*t^6k#euCjA82+gG{M;sfZWF&L z)jz@T6AVAW@Q<_GuZOIkI>S$$;it~ky`2#WhKk=-(MX$c>K96+&A9&wCK1P=cNv?v%-8lbv`#(S9 z%X2jSvf6N*f93jhyHHM&IO1%hA${q2T2(fe6W)Hk8DD(oY=H)~QJiJ-vK0bU zxf+84hX+z4^ndK~zdj53cF7;#B|(^Fj7m1B z){6W;kB7F7q^XAoT88RxOXZd1dsKBx(41mP>Xc4Fojh%so<1PfO>GVQ!? zNRs=XMtjT<$;zhVop|p2U z5*d;9LOm$3{?}2x7|ueF@m5FW6amG(P5s>wVl%dhUC1m@4pm2C*ds1J=eh|+yjHTs zFR%N*Lo8NvWcdTQIxa`6AUFnnX4m^_HKX@_{i474*kBJ?Q*~{vGsTY7hZV~D397b| zquN#Ly+Dh!r$CFg(rv5xpu>JN9*>b~@0H8YBX{kTlWE?W_*h>-Np6_J=|nEf6WZ^Y7<@NQaj?B4&fkoxFF1qq29tV$(-%scFUdSU8;SFEaaj9;(%JO!c;2p442%L}O1M zk}Nj6m+d_91gBM*uD(tk#Rk^ej6dN8*JgK}|GJp}aBTbm7b5yf)A0qD8!o243o^wM zvLLIh5toB^i@67rtEzxn`Ua@RkLSkWJ2-nurtF+5bmPzYg z>(Rh)5uBZKasKpVdhd5sohlw|sNH(Y$ZWAuEaQG-|sKEfkrzPo36w5*1? ze#WA>)_Z@ew}{4AO*i*EGVz7kSytB;#0*3@zi9O$ZPs$qvkt?7fOhQFt1otUxjlcI zEX{n$1%a}4>FYgx0$t??xyDp%mHNG0;XTnLeU%Wo=@?ox9UWp_sjdkBPPla6Z>#O%A6%mK&9*)MKTIZu%Jy1%EHn%z6oChv3tdkM z>@KpZfIBX%N%CF>dK-?;A^__a;|UGx2dgI(7^T_>(MLuMTJ!;{Wj#k5Y+B>Zo4!@w zuF7hhtru((ffc13ND(P|?yA))4745k*uXx0IL&&`(qhr)z31F0;CYr<(DsDSeHILv(uUa6 zb-a?8#t5E}ST$tMw|e;7x=}DaxCuSl8?4wQ)vz97mr4-@T8Vz|MpotU?Ga?7INc!& zxqr&G3)`sS>P^TS%#l5(8ZBRNOz9vIiOCY>$RGJgbV8yn8(*GbvHkXGs5JlKV9lYN zu|LqE^=j+F8wh^mZSi$udotGmYpycLA)&1v{4#fY%&|u>hMzgf7Ma|7O}@25bZc11 z8Ai1XvdJG#r{a3)Msu?D#{X7J@8XG(#IWCF?7dz&IP^ZX{qkci-wbg#m3I5I;d}DQ zDxmmxSq-LUG2Tas-XbOU0D;F-v*zE!s)n~H`jVvY$wT7y?M-s#oN$8zUs8*5C~c&u zjrM#k4jped+VRPM0iij#a0^r!JrG;ld#@UKR#R!0t(+pjALxI^^<;+3WfIuXiwHP_ zhDy6k6sQ)?aXQ?r3C?s!K(b;p>KEHLj-)!iUJIM(xwQFFw@NrRt#gg%8o(|(n;<03 zQ+~@1{cjz__p5!hEQ6=;UB<+(LD2V}geYaUek~jgDo$tfX7{Nc(##*e^1a^wldAXI z1fil6qTceGKc%Ks%F@uS!}DjS;kOow`j z1Ke_cLyZ`JB`SIo)R950+OALZt!zx)6!r=z(v2Gj#V>lWS6mN5Vz`3KP>fN1_AHeP z7TFe7A1xs!!o}I<2I?Tz_5fd1z)@lm1U2XJ%jmy3AZgP(57Qusmv4K{82yGniZSEB zkDFxs>gU~^MLiby`L8o+#F)+jfjtZZP8Z{XYunQ2(Ip6H`SUA#YH<#CmF!8|_+`C| zj~&a1?(agdf|>3@9b>L}lWS>2d)r#niE1?Ne%l)UPF;M*@PaaZ;rR1Cw3*#)p#xorM|mObU}7!YS=tZW1KlCJ zuUV8+AQ16c#`DGEfW3OXmhI(S_fvK>?L+c*+Q9D+vT=cyz~Yyw57t|sxVW(Eo_fZN zNadN_f~FdwH-TqgKNPV-ybyd0w>P?HqkR)~p0kZcSX5&oxZlKY*1mcJClZ7%=ZlVD zPN(+HShk!jd#Nb7K|cP*?vBg!^$VYrhrWHSv0&ng&C~NfL+Vy9iByyODpU_NoOTJU z*kd&Uc{z+nSWEIBWcTfjvs4hL7QYeC($a6^z%*6Ks9_gBiT>uYsB`t9)anYpU?uZl zKR-#T9)N92v0v@H%WFXbNi;_AI0R~oc`6vfK;q+7`^DkU3x+r_SYaIH-IvZ^N^A!gs2Oq?;v6oHfvY-C|o~fFjbl!z}RI~*md>nNB4~r?* z`#PE!?G7sfCUSZd*J`87BkpIBlL;E%4DV5NOmyJuU#Hjk_>F*@c6>UP{)v?fqMqn0A@X32&mYz_w-@cZCnw zJcfyR&hz7zwx9Pxd4RpA+n`+QafQJoj_3lpxPI7v`#Ps=pa0*BK|U?oP_jve0}aLa zJk@Mae*G!w)u~;nm{2im#l>aM-R5oh=Dt-7QVve{Rz zLM;4x-?fyZZ^jK5cLl-)HBMHbxm;SC0q4~EH!nNfs*CejO6P0b1{?SH&T^e*h$P$; z?<~h#&sDY01GHPp`lGt4zSo+gcWl-pS7{0)!H-NMYqZ= z+o=e~-*j(BU$tGGC~K*}Ej^{oa@8Jae5K#toAtF6JAmT@d0N1*iD{3-@Nf{P)o<(j zh14g@{X_rfloc%{mL){X4j{24aRfA*`FWVuWEGN3xH&s+XE)RnENwPE--|pj0`&FX z73^Q06s}tUHQewU`@)CkTb5w^_*|_I8{p6me%StOyOBe+86tI*ZQN^RJZn4b=`Eto9y{dHf{UV_%PtWA{@lJ+@=5EF$HF(ZhkMIb(Hx4@s(^($ zAPF<2n?w4=H&ttsXl2B`woc6Q;JazKbB}!8p_wK-k@%oQO?wjoG%pC($1M0g*XUV~ za4LJ6YURHZet0(3lEqm1Ht=Q=1h}{|$YV+4*=aYtrF%#3*%K`gd+n*s6%F-FO@8t2 zcXogMhCEtpyCPO-Xy55$q)dhbtjy-RJWFx1#Chv)FN;*O7XhwMZ}#38%bJ1Q9deh- z)?VlO5jOW!&O}w5Tzz0XQqs=jt9y@opiZdGkzVVA5byzkPA_-%Zsz%elU{-hg3?1R zH5ObY(}Z9aJ!YU<39VvfketT#B!k-tObc%DQUEb1K2!3zG`0L)@wZ#1lKIpnjccH` zrKcJ3cc7iYd;9MlB*eYUusyNf)uurgXdVvfBdJ7|dLBjdDJI@Zub5WC*Itcgu+N1TJ)w z#EY|wS8nF>n8KGX`J26V)F+{9_CY2!83J(nC^ZC@nO#NLEYD^!`2AYUo^2Qk#R74Kyg|BK#{@)fg0bk3469mk7<=B`$6=S>cLxJLk&7qbqz zclaR!wc}-q1s9iss<9#Gvn;r`oP#JCTvl3Uqm35>-Y+kr{1A^yx_$Su@0U+pP&8XN zofkYWF4{j1reZ+L6eMePIo(@gz%3CM-zyS2{UW`K4eTvVxojtN1*&iiJ2kMs^_vMg zh-40vpbDpUb{_vuGkTs^f3_uk^1Md&zI}kV+l>LwaVXIp&zYWIa{-v#ufy3)gTf97 z0&0@~mbuf+|8lygb{slg;kVx7@Bps8*(P5={I0kp$&N*)>3VB_Et6g8s&|U~vk>vOvgu_i|<`jfNFhG+Ojh91c*?3+(g0zG_+f471~Nbe_c` zpgtnyB-wghSKl2jSWtG6{<;XeE?bY3zwXrLdWMNBa`>ulL_$Kmne{<$)+l8)&7DMt zaEImW<_EjojPInXL#{QmOsd@?Gt#VJ3&0vr#yHJzZQO+_Y4Gv)R^8f-eeb=^;@P0I z31SbfN~RgwGT68K$+sy+54Z)->t1*nidRq|DJE#INGjSt*_lsIgEi^gXMiPa%F{UJ z`2<&|d&GW+jld9yfV*jkc-xwUpfPcXz_vlP;)9psf>(8^7Hxj+(Is4>HO9`aaAUDG z5=d6keNp-N0Jg&*d1CUm_N^h%^2K)rNGmkjLBjq0#SS9CBXNZ0a-u{QK8hHyUhhI4 zgKN3a2qbD@b*BCNEI*AWTG=5f^dre)_q2KI1J1z?sv*eA>ttMcRW^Q9OlqBYBCcW4)W(3#3HTHFpipm?EMA4w-ZC z`{rhVVj^`zY_8LbCf9BiBWzOjH6-kVC?$Ce&e);Cm^05omewOClpcLNg|MiV?I9nw zuWg|x4-V1#Jm(BGK+{rw&YD_gyq?q(^;Rtha?6fvTRa`bJ47!qXD(k5djm`JBpn`< z<|h@83-DJqBPU$z-Ts7GkA?^|uA!<^%?AJF@&z0Y5dpJ-)11*fasRE{ z`y`=S_AmvrX$xF2+Q5sF<>@_YKp^rgRZ1+C47JW4j=kro%UiJMHOr!I>hbk+;^Kj?vjL=MbyC zKpw~7ap{jk)4DZ#Y>^&6=-ZrqAn5obU&$(-?LKrGCv$qqWcFaT+`UjBRP`EWlei2k zU&UPe0)*a|uAvF<4azinYhnkX+mE95%IZzizdG7Zu1HCBO1`o%7D$#dXmtnOEuna6 z;eeb%$L!(shBf2R0A(K&IKM7Wm^#dUcSfqnZQnit?Ms>+?cBh3e&3T3Y};wSCT#!Xdp` z)G5i~niSB5*{bxE4^EKgQ& zL?!8+pKmV$h>ZfTz`K&b^H)9Iwl`}z7T5v0)eel08C48Bv_q#KhUcoz5D^(#TOxBJ z=am)lZyT~v8tvZ3mOU-HJ?9TX+8MSw{tsnu9uL+3zYiBtk*F*olor|FvXiBgh*_Sa%B?(CgF=RJ(#%?Gf+1Ih}J2PXQ!7P5qXZzjv_rBlXPyORDkB2ie=bYDb zxt`Z`z0SP(51#V_(@1TgrTcA0lgIQnHz$6UrSxyni?FO5$Ov?Gb4@tBMD4y)EHy#GQJ*Q8^V!B0=v%xCyJZk$8 zBIc@wY%5#rmiWHHzV)eABgN99j3kFlk=fwRng79YnM6k z&T*&z8m|C}azkqby6Zhan1SJad=7qt`N3i3J5RS%ZuGPgA7!(5;__gQw@}B+EO#9< zjyzsxqEORe`K5pslo?XA7KVr)Qqsc2$sWxolix*2?xsH&za^qvNN*tQbax>sI5XMO zscWpt>2MDnFPST8n7sZ0P+;XMK4;(m7v%C&Iz?;$tvkC?i8PPe?~`ndK(}h&_W#9s z=~i3G6H&B$<+CRP!2=~z;WvH0_>lS_LL|`K_Dx^y6fwbW%GQua8uUoDGY`s-E%OxX>^`V4pN{1 zba@3UkNtSs2!2KEZfpIP8Y-}g%SVJACH!SRPqh|3iRI5O0Q4D-HBv@`l5|CZ~m1eP`--12%=T4+Pzt6T6;*>cy=~kHG^Bc zW(%&+2q=@{_(X(`{1vo z!nw7~WOR+ae$iGi!9RHS^Zs@f48&~2C1?Bi3hc+VQak(tE!C*2r3z)?4uH&sSr!ibSqrO!uGc^Cq~-;Ht3&`2sF3b<}21C%EJ){c`17dL1P`z1#|ez?JZ}xkED;TQeMbixoOI za{JVe(|bIZ$Inj+q(VIm%y;TIZ7APqN;~lKYGHWHj%F64(t+Ouxe0o3lQ897rI%n? z2=!d*>PjutgN6e--6Ch+{j~zw^75mQC**MiW(*l2Rme$!Uy^sNgHDi^&1?=k*$)IQ zY@<_r@=z<9lrPfmmYs>ok?A4v_j?!;rJlW;{D08L|F12WO>(!M?dx#Oj|DE<#yyzs z4n+`@s{Yb@i!8-!u>sF8|29qmFcZ_{peyj_=%;ou+|2f{-Fk(6?$I`5? z*Z?kBimPJm?sC<;ImB!P{NC?+HcR|y#q>M)NwUrUOPRf93$63~G&)M22MZdW3bOPo z*@1&7qg%$=Hn>R$E>&-vo)uiK; zo=mw2A^DXz@b|ah4Bqm{YQ5(TKX?GwIWj1brRJ=u+bpFSlbJrPN1`j}LY*(zr| z>{)cf{Jw5b{*vcpWaTKj`@ESuTQnm~KuIEPn)bkN9WS_d06(hX>qn%=zwBwO-|tU) z;r@WU@wax0VT%xoDNC;?&je6RdQ1;)^mOKjQ#Px)Jsk0$iF%l!hgx$5$=Qq1pLJQ( z0J+sH&kccecPiwYP)d2N=Q~m@Q&H>UzhI~fFshdHt`7@6>4?KW0)b98JE){6Cu%Qh z&MnXA#0ITHzUNK>sSu)sGtAmp8E93NDxhK2BzU>a_xD*I#QB{$aiUjucb9U&W zXz7Et5qn4P%QA)=g_8k$E9}egV4o`$J*P8#ds6*1yzvvV2Z75vDRVy=d05%Lc<59F zEL$Rb3hO2hQxvsVlk>kzWg#7Fwu1vPWnT{=7|ffZ=}%i(p88hELs+SV*G=MogpB{$ zC^eb(Nt6_u1Z@N&Q^XYS^MzQqx|O2T^)^slNpZ&tE`sb0Y+iUmFL&KhBM#Ec{N9V}j>A{*e@^0B!??CGzHk%02Z`EniwKS}l4wVWeLH*pT74v(^^ zg&)`4@h64c`^Rfuhk9z){jkh7GKY*~oB5m$t zs9#%D(PNbCUaE;c?2~S6=!dNRhpPSmytsX)qWfhWI(0%Gc&_#P{kD<=|GmL+zz(w- z2Qs3*K5e`*jp_>U7*?-q>8tY=*Z^hVLWz}889o^1DkU*d#8ji&!l&-& zk~PpHo)JD`CB}%$(ymUV+4P!&^_-w!s5SBGK$S`OS4sWE44^yL9n| z6jB%B6$nIw+UYf`auy~Ni>|D|l~sr9hMMc+h&D}XM8c$>**Vx#ui&<0mii%FMyS}$ z!1)aS=WQ~={T+?zWqdOD&?`>_|1Wz*m&(lP9GDpF5sCEL@Zjw+QX}Ecvjt;3N3Yiy zlj5x~tC^_j+6}Y^;V3nCbn=)j#2f489+2Fm^jLmPDb%(MvX^fUw4o&V?R!$#EaZzv z-36q%29@4K2GrQUUBx{L!&U`$Eq_-FkRXmGm~+_x_ zyL5gD)GBV0zE`g{dRh;Y7X9Of4?eO zD5-*b`mK4oJIu$6?yWVXu5abNUBSLJoS6sE%Pco@AmD&*5{=k)mNCSq>x+W4We_HE z5|{2!8ELOdk$u$YG}b-QN25l#}|@uzd5kg~_;rWqC3 z;RuZf1Zt;&+LzrM9d6$4cJB-pss5 zGsd^&Yl|St$pz~v9sKvE;E*N35{S_gi3YvJo^bJmmRE^d88+jr{#NB?ZP~Bysgt~{ zVo&HCJVR>~>j~4`*X@de?tLiozuAAYW2##)EZaF9Id1u2yyd#m6(;>mS|-f=T+81J`~m5La}N_cA=I;0kd-wq`E`u0i@_d{#!|A z6KK$nT#^SWuh!@g6UuDh@3-&CKx-7%pdT)2VQz(dGxAT*pJOEzSONdD9<)ZS`#v|Z zIl^Y@Cn9%v!_js=gNS2?lUKe)0>VzZE>G}dZ7a!?z5SnT+s3nW52U#(#zKZfgGjx1 z--B`&tr5j*b1pRkYxP%J=eQA-`l;?V|ut$_2?fn^5;ZD zkZUf|z1-3T{@Mv`t95O3tWeiJ#uAbr2Voc<+_!MRFyD@X6{pykBh=#r3RuTVo@CG` z?@jS=;9XF-83o_)`#<+$gi6L9b5gpIZ_Z6z4e${pbJ8%RK>kH2m*CH4UY$>Atd|iv z8qVuOdgk0>EHMTcaSWj++)T8gq-J0F>-J76FM^bU} z>b^f8Oe*-1Q>Q$OYg{ip_siq&V;G>{VwLmtlI|n& zx{C8-&j^dXF{pk9z|4af*V9P;zWIi6q>KNa%ygZ6^_>t&(Z^G_NlEY?VsHxu8rVV$ z4QP4AKfr5f;+o4sg$Tq|xITi*$^*RDYd^0aI}F~@yZa-99EhT%ZkS@=E9?*c0h`UH z;8HScvI?DIh1<|(84BReD3`~u7IG~{$>+OqrFV%5==tmFcJn-3L`)gfrF^vYfRas$ z$%0;8YrTHGci{ctvj&4?X7M=1{tL^;WVK$fNvgrF5 z(S{_R@p)=9b-MjbDNp>w{`A209UFinec#|aB~p30{%Np_9W1jAGj+7Td0E`;{-YFG zLE2pm*8`~y9w!A5(q+t@HIo?aw;FfMC)lj^+l|gApZ-xa?#k{Yr0ujC(?L*>6S55S z1V&X8mT@=58;XB<4bURCr52M8kB33!or@Yr+VZQPo9EwB`wi@yjdlm;dgeyhKIl@PRGD19BTZ~(qo8Q5n@R_>A z7(UldA3iRPmcVqkPZ^R{J#_bRo~&bzPXDpUIbk@?OK!;Z%;|?MJ8n`5%04C@=0Pmh zy?Rc&QT#2R;sI%q2Vho&YONE1fi{+BR7pf}U8@h}IxgciJvq13NS4P9l>eyBIv%cz z6{k)ScM0_iW+pv)Xd#XdjQ?AHo>`#c+;wEJkgIqrOCR6X2sgb9C(iU=?k%4c8jkbr zDatFTU0%XW8MiD7_6(qk=RL%!v@e*521+#Kdh2I$ta?t2PDjgQ18?i?Tg^SFY71C5 zJS{|@lljcLu_3DS0XHKB&n6~JUl2@MXIlsZ?=N?iJ~`T>x7Z;t)2^1cU3h|Y^e{h+ zEN*Fs%Y9w(qialswhwJhtca-+2f~kmHeSod&M7WoQc_E-0+TB~3lQ0`aSHV>n3 zDsGvvwS8I@-=R3bDEeCs#W2Nb%8GGg9E}h>%0Lz0C=E`)pDncwsqstNMFU5`hm66~oI@DoCE&kIp;2 zXH=BD;|#00wS4TqHYYZedlHlA2gfwXq8%?~5~fMZx9@(e9-h^RzKhy0%Tb{_B{`_~ zc7;=^PAb^HgKMw00y2IJMH!85tKs8HIIXkh?dQ-I*Vw2K95g9>FowqLbY&HAYb)f7c(Pq9lJ9I zu*rHX!+n=n+gzi&B62J(J`v=}C2k)5A(3n>pmx_}FF(K^>M_y7w+wZ^o29!^-%jNG z=-PkP+nJRrmQOdz$aJX~O2qfodanoA1aFkKtzpdKxax4IKy8BEXipcLT?_X>VDlC( z2`goEtE5B9Y#{{jTnNyJ9g`$0pW4(>AHodfE8W?6MxGCRPB3KBzV@0qJIHq5bB_v< z_sf*dDch*(`x+Pry-n{qS$}w5CW|~K}I&+e|ou8qrK+wyy>I>7AOi|fVo{1$-?19{)ZwNn)Z6;mzv458z~2>T?GB@AMH7Z~PA z6MzLz<9)kgjEomYC+VglesIQ$;3if{Jg{{V(_SNJaeF#J$9jnF> zRMW6-0Ak^`iW8Q1ZSbdn5|&MU-JGD(+|~Ce`GE!fidC+C0{QW5#+QmDLYEY$E8hJ5 z{vaz0Hks@6aKO*(Ke5>~@mbN=)O@da^Z+qfPxN+Y0n4O$Ua3RZ!CuhV%oC+iX!Q? z@ixK0LtH@$)q8BeLG5DT3xGj$_gNms(pwYLlNU~o4Hp_yZpOS!gA2wRnuYjq)Bv zZV@}v-H4WW$2n#pZ5G>N;Kb^?#BH?lF&&{BIyf1p9Jdj0g=4$qNB*H%T$ z_uSVdYiLENEq-Mhc(V8oXmIyo9Jmqi*~NTsts?E9_Vw_e9sg}FFA<^havBoJXYDa# z%P|u3)P&^ztzrL^z`dFEFrSD^fL9XBp{S%*kCMsmGG)~-HzrE0w;WD_S`SShd*@tp zod+zhwx($W-Avzvcn=b4Xm$iODkDMFr9A^BwPn@xNkHrQ?%~K$gwDxp@{QSJF zyo*yR3uP-Ej8?^w%t-~~dS}Fun5vN*jGC-baNkjHG1yZ>%F2N}>>%T7iSt^y#qd#2 z0!$Q_D)1s0m!C|RGaLy195(`8jI5fQRWfH+=dSSOcF`Vcq%E4xv7D}z@2*|Q*ND^B zuUmN^%lrD?dgZL?Gif9s(&k%UmNYbPAerT;MHg9EYxwjmmo+&(5H`H3eXoD)>Cj*m zWLamc2O`ovJ+REop)G|pqYDKr05w^UUFqo1Zh_bm@1X7L#N|3}*wX8IQ22OV@@nsHMioaeL$*ne{);;(>UOoRMF%oVO3wsnY!vlvte_|rZC4$Hg125zZ53wJwtX9KXat;ASC5gvGWVzgi~*~EB!*>abUZN} zaJ<*6L0ER9&@k+Y&vQMQk(_Etv~)Q*URt%(%rVZ>i%b?*5p z$pQ(0H>l#Uoe}nzk^ulG08{_wS2tM0_UWyN9TfMp5+(xh?PP(rHC=(O8uK1fB^XRd z(D*jZ{D@5I+j~%x=T0ZUmY=Uk+=hrgy|=vCHRI|Xc5oiP0z&VSoU|M5P*DnRTy&+E6Zt90GggukZFt93|Mkh4~e8yX}W80QN{Var_iB=sAK zJUrYHtfK9@vbMz*bUE=sNBiH1OT=m5Czky7y0&f-GgFR{duW>`SM?(ND4f2y`kK=2 zqHeH+$lXQHtlC8)eyUXNi#(*eeq>o391T<0RS^PHe4ZQu!#OKdWH0@%1iiL?)cp~0 zS0%CSmR+NP0Ky6@nDpamDXx2bXaiB#Cr#hYI@T%cNuPW`^b|ENZeHSaA8}k9)xA;% zp73qX65C2|WTgqmbuXDa2I5S(9*YDOkx}>HmXbWn-EeTZYv{j}x{{)^E`z8*uRW6k z`>Fz`uKuzAb(}oIWWp6O4StaSf%Nc zH?psprPmsR-*YMPbGK6=j<;FXgY(N0fk|uVd;y9w{38f_nBmh@YVS}O8A3iB4B`ML z5bc(sq!gS>!G;`?I1M)xRXF$#SEc)w{VpRXXeoCrY~2;UzZLz%^@!qr_wGiGhNs-x zAU!XQ2IHh}l?*8~u=QRb_LDJRp|5oc*Rf;EL3gW-fmkS`=(D`Ivv(IKp29tYli&Kn8 zEO1aPiAIu0m%fn1CG~ISeEoCN5?5f`$ZK(%UvvKJBb~!ttC_#@zvr(njU}=CD^CCa z+@B!?GhnMOLpb_;!gtMkYMNT(<$h?9Dp1$)>gpxc1hb7z}y- z+D&{d(kCrHY=YoYfdac-XzP4%{Wafgkc{t>Wo||(?9`RoI(dKa8Qoso8p4@#9Mxj^ z7!;RKfF^%jF2i}izFH(;*Js{_2G1wdEiH^DyeW+o{zt`>n z{>69fB^^$FLBI@eJz^TqScS&7pW#pEsB_0P`Ycjh0N@4nu1I*zHkR*xvxF8vmVl;BkPIXD_d%C zSnM-{&A(K0Z5^dgsA(EM7{xer!oS^#c zKN5g%&B$gyGTZAhX?&SyZUKV#!P^_ zpA`=4)>~Gua}*S1%(X>n4HLKRZ$WFIGkRi7=>_jBjHytEzI+W=*i2FBEMSQ+E{qeA z!^xtja!vgO%XSX6)wzB@T#jQa((uKLq07OZVT@SOtu2qDmYyY{5A26!&j)kUv6Hx- znCrB4&h!SmWzh4z%IY1q9Oh$4x0?wm-eriSDzB{i?J2%*8Pv@@!Lrg!yZa5EI%fyl z0%qdj7W}L~ofmz5DaPV&-OdSF6Q=I^&kgz7c7I*eGku1s?J}FZ``{3Nu9H)-1d4X6 zA-1zMBPJc_Z$K$st8OEAas$?FSXd=CSm@IjM5QR-*WKbtP@0e@EjP15o^n<%)h(Yw z^)xE&KGH~@dgU*7#6#IDA&#VbN1emLK1*wMD?a_|wLUTh4c>2&ZmGOkZ(={hGwBt! zG0|Y0-Lic;S##uPJsN4hjPoZ3eN{w8l;@QQdGCcU4v=V?dTs`r$&_74#^#~ zxDtM`?XcF>4n(IgU1n3FiJS*y&Of*$fU7;NZo` z=eTc)b~qT;@L(pQMr3C2&dAs%jZ&lO6lH-J$s(z#J9Ct^ces%>m$6C*qVZrfs`SC>>a-tRb%bg| zj{f2VlV=VU*7IiBIqg#NZqWch}p8C^ppsivMR!Mqwe`6 zE&5Ftx=NkRe-;e$IvE>``H}Co9h0$G=kVorG>Q~&!a5KL4=@e(`&MP%yQD=RJ-h|R zdzK32Hy$mAVuvz3Pjj*He2m;%2)9{OXG>-G1`^M;timboW@E$r$%A=?Xw9RkNxOA? zN||e$h;%f~yQ#foh~54R#cQs+>!XGu2gBjpKegOzP7KBt@4vQnu-9;MGQGOF*NPC0 zn~#<;5Aen;46jb>HVWYbj@v{xMvzL~{a}=(%mY&Ni0Beuf6(`66}J7T)TL^xcA~3B zo~nb?#-Q|(Kem-dF_4-K(L=@H*s$E5VB7ag^3K|ZV5XswmJ@tH)5vw?25YX%B8k84 zR~I^XIyut!_Y3NA;Z6EI+k;5ebs0?u;*X~ivw4JB#YLb%!yeE*A{jH3J zatCZ&Y!rteyKsMINv;V{d9g1I#l`y)ZYNvw=#i|r?I0jnysWRpn0juuj9sH&$OjrkK>6VniMrbyT!%ra;+ZEQ7z)$ z+AaF{Lb_9k^BV&XQX6+})sQy$QRPP#p&Fs({n)WsKK}Oh=SvG26G3ROM@TY`2Mxx& zG{uC{AnhG0&sCu1#;o7Ka=(yG8KWI|QCqi09 zm~tkoaqb(Oedg$CRP7=}+EIGX%tEaZ3O(>rJ2Zmk5tmEvCp%f> zqwF}Ajv!}KFhZcP45Vpj>M01ht{`mKdY;Q<^v3%Ke}WH`)7sDekggH74o&)`Z0hgW zHg`jP8IYu7&v zo8wFUFtRdSUB)s6zE##pYJ$M*^zWQMdCK}G6C2;foKl>}Sr%NWbAr!rBj$e;`1i{5 zbSA=rto&2g^{VwV9ji3jEy-W_^gvhjj10B}M2B7&GMKYa86|f%>PcmW&;xl>kJX$I zRJ|c)2zKIaXXkw=tg2V0s%N(9z*XsV`*&-_KaT6tNqeduZOY_)uSjD`Ee2|)vMs&3 zNecyo#msZPUyn;Tde_kwV=wXZX&^_*^!A~g@yajlLE8PwLkm(InPWyb3L7*6_@Lew z+E;}7zlNS)7tF|r>ghW%ocRVxDPZ^$M68^0Mxy=&Kw=~{n%WWspoPq%H7a0w6(8Zj zv?1>#Rb;)+RYzvveqXgZQtA+*FGJy1j;3cm=GG;@x8xlSRe4Uk7N`_ckjk5=An^g2 zqH+KE=HR(M%1w!DA#W~})Ph4Ngksl<7J0`d|MDJpi7A9THLcz4`U2{IRXxglDydZ2 zDUZSf25o`JUo|vqH4rhpnAW!yTt)W^s3l$)QiJr%ROjZB#F&$#{-Cl*D1;m`m(l*rqXWEb}mKxAfVx52hM>MX?-R~SGF_cI4n7_7K%_JhPr zDjg9ah_l+`FAD#pCMSg}lTQ`ICpe|81$2GQPc)Er{IFIljU;Z~|$uRO4QF{bSP1!ALRnQ^9Hjz&6dE}L85VSgz7qblfw zBHBva7s0aC>oHTyj>AJXDrEr%B&Fi<$gkdiQWQfj(_eWBB>Ua*I?KAl;k0tVape-E zPCdHK=q9e$uX-mSBGVU5=st8S))_ObrY+1y4yO$XK}~z}Y0Fyq41wXh@Adw-YvPhr zk{3#>367$AtAh2$s2*Yf#jnu1xLaXaTNa<8U3b6uoSW+n4MR zgr`bns!0F(qZpm}-6JSxN^;un8q=LWN#S0mQ)^OILsTP`qRgiFdV53YecPV3HFwW4 zT6pD#Xuq>ni=e{`4IiGEPB)G(`4*vQ|kiin^f{1^T2xP_Y7rfpXnl+Izgkyre z8tIX3Uo-DI7-4B-sP*~tlxpVQ87Kprle8XK?o0Zpfv~3l4bUy%FK7~SkcECoC3Epo z*6LUw(JaF+pNtT}`AkT1RSkZs|Uh{*AxM5E<`ff;lhFIj}iN&eA|hvI+f|4|>{ zs8F6fRj}m5HiO7{ClsU{+GqdnlQHY-Y(h4i$oe&M^wtuqp5 zLl)wBxg;Mqq}Ur^rA*7kbkS&uF4SSEz4?$(SDz-3*JEhOYVU}*cAk|@XjaTuZEXc$ z{d#ZH{QA|ARb8#3sj0PRcx&-+bPbOyp1YT(R)Z{%`0p#MY;)mlL`3YXeZO$Dv7Yry z)Ww^!vh72X@vc@1>*`nEoJ4TkE%mIS%~upC+r1W3&k*PSBvJ9U4j~oz$u@02$r-T0Hmh zFwHNd%ARj}~mqy7wN*tBUA=%fg67_coEE>W0o?3-&Jgi_1xC;ODY32L^ z=By;$e_xIhR1B(3RK~($`VSxGZODK4oOh$x0Kc%P6#&Z5tkSr??)>1OjN@m(k6TvW z%Xb(q6QgMnieD%Fa8W3yB#QBv4%4cy2f*8Vb-V$}@X1r(PXYKQz-ejm3x&7vFkC25 z&lZh7G*I&&d39P5YbsneQ}m9Jx)G6RB!8f*E_@tOCup`M9(%h}P)$j8D<=crDY~k? zaDMUXH;`rs?QJUp^3uhN6M}}9?wFo{#NY*-3EzaD#x{VmtC;E-b?!Bta^@*nqiW&q zfAp5)v5{$sGbl=fjX|07S)N9lhppk_G!NAogKKGtr^*8(&ehz%Q6BblPF+<>_Y%Lz zCcLMtL}a+hzhh(qH_j_O_U|)RJ_Q879bqb{)K}2wgIh>G^Y1hdj*J&HC7_x72BBv| zAEieTkHgAA*;;zmm}VBv4El9aq%wv=v*5~Xy8FuB2>K}VDk0gZIZSB$DUM#1)>1D< zOiV|-P!FgGA!}z$Du)!O`wQ|?BqN;7VkAYKpOHk4WQAV@&o*#WjNMb)ShhFcGL*nb%AAI3n z9K|8I?1#?$W!wBQ&~Z}ERE>r$3TTWK7gs&3Ra*^@`14eOgV$7>YVVH3Cg9>z5@WFE zd)Mt$O>X~A7<=Eg3Qq>DLARJ0OpwHd_>sJzqu__ST7}J7{az1P-xl}%ierf=NG|%8 z&ls^`%H9yZ5zHG3yK!gb`AfqLK`~&s&A-XS*YA`2vjib|hC<|B<;v)ZBgWaohOG`= zJym}R){aFfirE}5zym&}D+OZ$h@0Q?!=h4e{zl~(jD2ATLIy4v0gI1K(ND@zX1G&; zMPDr`mb|?2GzP=L%vuPrulJM&o66iHDja!S1=fJECnWTeFlRZ@wG(^E*|*7 z%fKBwliG58*8e5^BrczD$(dPR5z2D$lLBjDP(bBGd=wLv$aR%*E>>9`tblObBd~t zV01;=&OQ@T;{5%Z32(&j;NrB|vm*+gb-r#bbqQ0O!yhH{1w%sVO(x}xsg1zQqvfqI z=tapB8N^XuvM6imxwpqfAx(s4?0jF^5H7+?M&||yJtn{87;iY~j8)x}}y{K!ltHYvk`tWW6S*>H}ANbSJTe`blBRdsIdp9V)}HwBkJ878Z*! zwM|>XCH7~Dw1rWFX=1gtk(=pMK$@#vwJc}xfeSq!p#c(&obaT?f*K2FYbS$jm6V=Q zGzNKJC|jIa;PJaykVT7VZ8=aKLbvESUHYBd^G4W;(2KFGWx-7aG+WvXi?C9K4>{Z7 zKrutb;TvC;mHYuf;m*Li9`Ig6ul7hnEFXFp+RNOutg9LEq(dSU(0h!o-ZabXF|CaT zeGSQre(PAf`L@ii)*h6SooFIS?G-?L+h=eb!=G{QT{uZmIbHx_ZDB zI1WAeOP^9ohSh9!p#EL#IHOQ9DWc+>~6yf7+dTwbvD*KzdZ+JwCPYF%|oJ~#U} zvJ42o%oo18lXY#}vNV#~57X9wvA(F50*z@vkgDV}%4x$>uJ;GLIP!Boj*$nvX%?=& zih7yEJl?z{kD=m?&%$L}HpdmcRqvRa`(colR`L_6?lbhctpDe_FJ0Wk<^>W) zl6$jD`4y?+P8VQB(N=~G*fA-6@r!DSb>r+DH>B>};GcA$%Ku00z5U^9NWOyZC8r$X zjYx3h?f9DklV-f*Y-@^L?m4Vtr&*4(D)Q7ZOg)w^jhWb%s~+S(DervsUuzEV#@LG` zfooe^TUhS8Nl1=_YsfEZBZ4c-=x(^ZvBhk0Z&{T_RXcCuB)LuhIJK@ghe(C0)?VTJ zINS|umq#&=9>!_(i5zVK0epf=jOn(Bh(}?ChIaTph(yTmeE$H;Cblq;FqVvsFS7&g zhFf1+5vE*4Nbsp&sqIq>9oFNKMN#ZuIeU0PLt_{^&{yluu@1LGK7#)k*-!t8joT{^ z7GeP;iPtaejFBHd{SebD-~T?U@f)>;gWiuY+z^P7bbHIrS+BecOypEC!eGb8XsV;g zpS=b7DSY7-8*@sj$E7_Dbqd7DwCeXs!x?fUIfBpo8Kuf=*Fu^9M=y8gf2;>u0+qPY z{~puDWYJVtg`I>%E8eu>s8im({Z0WQQMZQXZQ-b1GnR8o7ApzHB{ zNV9n6n|k}Bct4Db&gZR5^7S%z#J?gHME5BHBIO|L;Sv8a_4h{4KA@1TPc`5j2cAst z(|kQ$0Qw7!ZK0Tb{vyzCSvT%BIt06mJPs}>eFgXJe*4cF)}OG|Rly=<4&Kn>n;q&W zLT(8>_PJ_>40q#BKF-zumVnBgG}UNs&wg5T8tjI#X^g#bis;9x3D|2hr{V8cFwf=1 zx`3}lUi5<=o=dE=eGQo>E`Q<0fU4*!ssO#~E@>_qyK|r)6=!K7Pt!Wu1W2lynjOCu z-d+e@ToG%go(GV8M`NmA9~6r&M|^>P&uo&RWpeyT)h;YaUx7scJjDj+VokWbgVSS* zKui=zkZ$&h29GnavPM)y0Zb}Q2dK8J+-jAgIuhx_i=mXjZK@s9A_{4V zrwdpYjR)DVOiq0$epkuy-&^y4E|G-H$s^!%J5=yRTj0@8=VFE*NH!r-j`o2w-=x>K z!(Rm zxyRV|ce=qb_OKS1;VG##tIOz#zF3k}_$@zCVdcL3FSJ#nL6727>z^haezi}viaIUo z&81w&u~cTdM=J=2zETcHt0ubaF9;t-oD zxm;ngb8FajN}!5Na7q+&2r&;jJo~(>#Q|L}wxp7FCj{WqzJ&0uDv-+yu%I+zZC4z! zN#?gt{+s=mtjla)rUoj%e7kdX_tp%Q^q`+$2r zpYhSO65uN_;11r>PW;O`*ZkSq*0lk!&oFbTv5?mKhEUDX68J}1I|mYZEbG>ipsX%KCup0EOm4=yd%7co)!P^W#Ip2nDRLq zUVXYH*Zz(CaS~h1r|b~0g~~^p0qusP`$@qVr#9|ujnx>-s&s_3ijO)fct>h$E&7VA z$=sZfUNwGkV00&|KB&>8#4);?>pq8hiA&tZMC|gKYrS!N@#IzD`I+&UI>OHvmXng# zH<;Snf9f1!=M{~npWKV3U2Xm?*Js{y6Yl| z*Q8~=DO8x}sI%`Ou_-KKeFN@~VgaK@?+}he@_zVG=iTS*TP!)|dxHD|A~EYCN?^Cz zrR@*5-1ghZ+t?iNuO3li_{!#U;`g80<^{~OyFq0a$ z4D*9ia&7=2$hx*n;>|3a6DX=bD`y2WR>ALyd_5Z8xjcF`Y}Sx0po+{mvZq zpOAZ-u58=noDNXAkji_FAB#o}^~=bukA0b_B8-a|9zpkKf{Ki=*XzBBI>x@M46yj3Bw_D~l8_6CyW|~Nj)H*lV^>aq&+6@CThT6d zY_y9IMf(EBu_bXR|~H; ztPfz@GZN2_Cyp{c(P?s2TbuD+7u&|2n@O%?+^G*AJ$hzVZ6W?O0XHq`>Pd>;@^PZY zOL9uD?}qm`=m)ktULaQm4pd^wz~gixKz8&CAhK?(lKS3tISiwMPO!0^@#5m4&3eS(i0t|SCH42)FFX5~+R-dsKSPdnQ` zyARK3saYQv9x&VQy7*aEVE&u!nCTIg{?s;wWD=v)rkY*X!d_`x}Xc*sL~9 z>TB4w;e+`sZWOeQ1)6FiPT;+;=t1W|8h)1PW) zq~`T~D8w<@%IKTTCE7<7lpIkf>0TpV^>1SoXayaE1>_p$3dG*``Oa*|3S^{BXdFCW zOA?rlNphk(=6F!PI=-3yFyLhWdU)yXii^n6tLc6x3@*tz36~A8*m|XLWbDJ&H*OZ2 z0RSfIeBYXjEnQ)cYfZ&fX_+Onv$QGDk>j47gcG`hl%A2X#-@GgAD6j!p#VJ{Cz}=2 zC1sv^OXS7s603omv>B%!TQgcUOUctv(iBY>uyocE$qnGx_y**dceOLMg7^goQ7$fm zyNB(7H#Rgp1X$aY*QPhWpZRZjJaKuslWIMh*|2q{WO`zxJbdZ9`p3?jKi#n;C>D#| zF-Sct$Vke7HLZ@P+?IF&@^c(bNh61en-i~6doR_OO(DKNHhbw5z*(e`&O_NRmeO6F zhv)gzBaxa*<2(F{T)Q5^C51|5CSIuX=2kyh@bP_oYC|9=&Zk(sBF%D*G@}_#Fp%vT zkhVOlP(M^7PiGaHV?{6H!Za6EHXjWs;^sTVcq|3d%eufZ1f!K|=NtyBiI%4n>Q(_*BP zzo*cum8bmsrkg8&qTYR4x)h>(LWcCM|S4XX)jDi5S;zF%2&I!wUYu?;MW+vV%LKGklAVo{$sB-2h8Dqn}H0-+fNU=A3H0B zA9!-G%EkHYv;w=gGAj7wKHg>bs!#OCCc2B)Y1L|qdxHE(870zlrjhC}`9~s`ch3It zyQI5C0MxD1^vCrJ_;mwAOUoqU{^u95bGTWB-uxm@9$$XRuZmTy3jbB_z+OE{*rL_} z!|$f)K~=FkouR+K{t>eZ%7PZ{ESxfLWC?#aUPAv^s++Ei$LV*sOsO&~2pdJw3g`e1Q= z$VPvT?&l4Z#>cFs!{&t?7tv?|zDMX{7XUx1coQ?wYKk=|*&vQDi4HPwZ86Qk;y(0W zGQITMT(K?hytgI7<1H(79rW5m&B6PYn-4ruXVS3lc96g;>gRvZ ze<=|To)q7mhzn8x9`?oNY7&t{p&of11AOlWtg9LpGv>5R^6t#|?Cpzy-+37aDg! zKF6(sbgR=DzgakDWDY&jZZP_Qpq$EblD3@CF;=)4yG6&*aGdN-IDOjius@aH3$6wh zWhC1uqrE&-fRmZ65cPGLiUoIwZw`m}^|Hfc4Le0GAaENh+&Zb!#VLyTa_~7BzL^vg z>4*c1e>}?NPC)2b)SnWnu@-^?z?OCIP@*k-5)lMN-hw`5GZw42f{|k7plq3NGHc-A z9d&tPW0ZoUdu3@~}o-(SwO5derG^PDrF`d0v zNZ4L)3qHr%K11jE?LJ<2e>c8#sTx`h@suW!+r9C2(m~)m*g!`7FGDFb4?0-#r>a(T~gy^^~h9gMzS|4p^A+)Gn;|8<-Ue3w%@YPmjmqv+8b0M_s zh&3Ud#<9h|Gke={cZxL3)b06sdrJ=OxhHK)GN>(LHn^bjw?2x9VYfNlfQpfPuDfoll>vxqDYJD4>W4Ej*KZ1GC@;mH3DNE4gXg^>P z=C+01%lgtcfV5njqO118%=PJyL~_5F5Z0o3d0rt%thZ?kwU%qLD!tKijn^6nb=DhN zMWatSVhJ3zhhJ2Eb6oSS%f%Z5TyHcTtb*&uuC}uBf#^vnhe3rns2>B1TW5z2i3|a8 zXNa=YYYynUyf#B5Cmc~;4waVh>5Yp?_Y3l!PLGUQk4MOQsAJ5;)8h4#wX^K3Z>z$I zq3$%=L&jogd(QLW#d6R}IjLZdWI)kj?lI0^n*N6C>UV;S56NRqT(qgY4n^QDp(8B#yKTI7QV~u;^O#LhZ@vA! zXU>@<^{mlTS9~sKInlw!K1jh3fbZ~SD8bS51_AObMQASCx2@lqpC$R5^ zYD5aJ4OXrcq3?LK4|W1dAomAPl3+KE$!RmKcHvWR&z$Bm%?kNkA4Rlqz@mjstd<5w zi4|P$37hybu`tyV%B{Ob15>^anoYQ=I@!6k>7M}4a^e=$=3Gb)>vKrTM-386!_ki~ zVGy&dv)FobS&7whE%fqIx^uV?KhnTsl(U~Otmx&%qBE6=rS=vlk&Xn{NL{gZM%yNM zuQ48NY^48u92Ez2zz7ii>gTh1iy^vGfE`b+$51K!!~*%|FfJLSyAKX~0Tjr(egFV) zM-{pHslO`m1V1RTc?ODlUn0u3`SQ@^Xj{sBMG@(IWWDjK zZpWpj1DGleW@fKldHDPZv*!ZOAm0|ZoZxxz8^5Q0NIu~wv@Z>*;zg2#`_zFcY064K z-n+YgiNv*DniiRA?L5|~8Wcx%DCwnz8B>+oKH^Yu-u1fy1AQ!n82=zBaTm|f_vi7@ zsiCHo(|G~L8`4fq zt+J~WHM5l^rc$seDH1pBJ|0u!ZTihGv*2mV)z0T$+DQd%5a?WYiB`NOJHQUur{SCt zSx$yTlV9%En6(bZ5-w7vn4_#3gN}v<6_QgQH*55rV zjHYXEbn0|45{S<8ey+9_SQNLC(dR&_vOhAHT}Id|on_ONYcnxbhx}krg7l~DKJuvK z&l;f*ohyaHb?XR|FR>AR4L>kOW9JvS=qt7tBO_0HPU#zIf#fbWMXWU&gIv>lqK{b3 z3C^~>viW2kIq09jks@%p+qOjx$b#oNV}?N<=@U%AeeI+$nL#L*o?5Ahx|FPhXimqM zBox^TqsLm-HLb3WS|o8BSL0S$=NDpnZubQok=Wbqep~I(&;gxZ|FW=VN(73ez2GCcR)Ehy^ zdBZwvJ$-wg@)W0_c9JdT+;fI}r*T>Z{HV2_tguKjq}9GcYxD_*tfSNJ+yT|aKttP5 zc1e@kSH55nsyYcB9n*GP+$K5cpssmvYDtajKoqx$&}(8-o)-APodO3&)yho~Qsb4K z(6MVAneF~>*Nyy4AAkR(J-99~PHeV5_z5nM^1X+iU2u$|jm_^i;ng)QR+wr1$-E*B zkK*@cf3L|*fwo+4l_<+$3>}L}Iv%}0kiW5eeMPH1F2g@0^sC>Kq7vETKVX6OZTxW7yPeVV{U@O-OK>O4vEC(8NP2|Eo3f$|jz8;uFaAl%LLa3LB zJ03EPYiM)7{MlJ#83$fCJnvx7$(06yJ^7xNuz7NQCUDE`*Bt1pB!e}|)<(yUrbId8 z0n`EA`ylJgY}n*z-#(9m_)94v?KcaRAPSG?ndQ-OQC#Gt^o#x$GY`6~OyB;=r|{Fc zwwBNzL~&rbkK*2Y>2Q>c-T0nko^bOv+^4{=Ab!RCYg3Ef<^xb^K|N6I4yG6+pS&k7~jPJDF(ellyvh+)~A=Tr+F4o+*hCW-c_4-y|gwic) zE(Zw&@xvh$bDA8ryPKrK#(VN5dUBCNnV#A?@u%0y@j#xcM z))S0Z;CRTi$u0U_F*x|aa4~tby!&S9aLjZjzR>ph>$IfXmyw;1;L8Dq()x#KR`txs zuDzemMWLMFjn4~Q!9Lk$mZe5G_xGRp>07@%t0ju#TFnM1cmdpt?I#&M(d4Y*1FGIu>K=THOepRxUGS+I;s#ErO2w{&;nS1(0B|xax$KVg+eV+`1LL!q*ff=WzQ5Fsr6WEIjTyS50qKJ821_;YC`R ziOADXn~54WSuqD7efMTKrgl{yUXJNg=zE;Gbv21Ym-Ck9SZM{vO(}MDeO7_G`Q3HT z7aon@*&Du#ESO9Y@-G^pZ?97q7_1B-D^6EKiO*h3!R3|V?feL7AD3Un6tCZpGg5MS zm2#u?s{oZ!v1)^Uc<=5L#h6?@*Kv~sm9HCu_XQngs^Y0^rZArybJ2XH*lmwZ+q5ZR zE{~5b8=_;|i2H52)%~4viYUbMf@`+bVsn~&wPSRyV2;+V#*G6HtqDMx@#&@I#+W`O z#Z^=U;;{NNGxcQgs=^yZii&wRYs`mdLsRUkg9~|DhksZN%MJmIU8wTV_xCS|qmQhb z$V!G{$-~`-RP^ImFN}Am+^Yt&(*4Jjo>t-t zm#p9Ly!iKLi4G52c|wmVx}uH73^?%C7Hxzk-2u_7CC8s{2Jj*{5Gy2_`t!Dvocj6> z&w7=X*H_d$v}^h=hc}H=L1PYb_JN5e>&a!t2>uPmrum1YF51d1=-rAsV!e^t9~Al# z--B9$_7cqV8d)p$T-&&M@on{1YyZHT&?#=#=i>w>CjB%?=TjM`W|jGt72TJ(5ZYMZ z8iSgoHJ2~xO`GGN(o!?UKdBQa(02P<8(4Kw3zn92eYV*hcLXTM@TnPF7pjSMT-!>c z=Ii9INgyW|F6N#K<@Qo3@&8j5u;7A5AKFb{ZYLu}RNN}fE@&rf5;X6-)?nr+pBR#Q z-+cM;$8bd6n%-cq_WE>Ftn9hCHq_hgJl1$&gB9c~oS+q$Q%E;kMld1RDBQGas-a(J zt5y{)t)&7+lm@9HNmeo^w6z6+;JfczNYFDLAlt>81xGf3uPj=WY^J(5(8ADkfF1Tf z$3Na*WAnP1I;Tz6(BO5V*VK#1@Lcg<s^i}6os2w#cyz9h4*bgCI4z#i5XKIagtRXZ(&*{1T2bcaQt>X4TT*2P;k^*JJ2V$aQ-edR6Vw(CPwZ4$ zr1yST$f1u^LMV9}a0x!+Ihg@e2mr!yn!0wygSjG_Z`#E1mYEu<;iEKRpt538U<|gw zmD{J^FgfMC_icf)B{b{@jEayqlSwTH z%hh%7!Ny<#UEkjY%(uFT-08Aa(QYd2aViIOpDlOQ@hCpC)83^22LhNO9v5|bPCyvf zI)sTH?0pzuR~RwGu|rvE)h0TCt6_r-B7NR1{JqX-{WXcmT~?^IMw*eh>TZ1T$Im~F z#wu+P3eP?Biw1%u+1V+V-8?z{TW*dxXeCdBOP$<3w96QboIFqCY8Ea>*AJ+lTMI-0 zAm9Eig4fF;T%IUn(yAHfgO;6C5eAXh2Wje%ph=aQ@)EOeh~qEMjH}(_O(*0uINcpX z$2$9O0Z-1t?@hq5oOI8z-GO#I9AvOiKe~5!>ny2a9>dH&SypyG0hych;^Jfy>^ODM z>vAAfsJHbXF_Yz2{+}|k9Ixpm+6y=26|Q&ASIy6zN#k4dPhtI#08HN1QHXmyZ~CaH zB{~kgNxj@7gIlW>0{HTKTW-h})e|6*ym_fJh+BdhMTGHb@b+bU4${R)At+)a%>m5$4 z6_g+EfjGp5*yF_)h4N^Zlw31}?T6ayh4cKa+O<>$RNGy$6D5cZ?Y^J}JyYOq9 zlhiL@%3##_zRSiKOnJA&slsP(0lkxR4s|nK+CbWFg}H^zPvp_+uHfAg9M9Rf{V=dL zQ@yKP?jP6_qsR88ZLg;l)rg;0r8I*c5BYMiQ!3P(&6$-=^L>tsUsI#Nh_s3?2rXfO=mYe{4-BDID*ZXGu#V`BM?6Jz<{<(Pu{gig#hR1_0;AQIKej+P0kjyuR#iP^^( z(Vf(oGh>>N3U>F(>Z{kP+Jpe#Mv7_4iIY5$84RNjnQt6J*pxrEi#A? z8J3fCjPANJC&IfUx}E%K5OchrEIQ46iMwz+hm+1r^w?Hdv{IKfC2VoUP#>{W9Dk6? ze6D<;e{zcEmqn;m`>J0~9QyGIIP8Za`1qGL>~#ScLVQTJl#W#<*Gt2yG^lA}fq48r z0_nY5eJ!p8YnA}{G$>&Q)fO{TH?1_QsmKF!vcpVYglI&QkxTHjrb5@Ec$Q1kflYgZ z^RqqnpOD>myLn8kU7kqb#7*-GJ%qQ-IIqU_>sc>LX9d)lfip|1;unB!3w7xJX0~d< zchi3X#yFaH;m1WUdSsPuhp|(*P)Hx*Cvy(+P;ggmb`Ty8Kj)7>JoF>;1;I|Krrfg2+} zPTyM%{etVBXJKCvXIGrXKgnLOuyC?4q`f_B0YSJ+-%0cF@OZb&l}QGz`%_5RQ#(ILrk$lkO1pF55Q4N6*49 zp@ww_Ne{HooZD7VU~^xQ`~k{w<+&Yb0J7;x@Z6F6(3YvU+RkTe3GhO@Y4 zrbCyk?Y|8d^VxAW4;Po8KAcZ-l47d7;!v;9Tw^pc{ZB@LiPC!^8~4guj}TL+5;z*zx7J=L17e`4yi4is^3lA7Rz+> zb6tNoTwWxyhZ11RD7|XDP8W6Gcz7d32h zQKI8%3h^-S#ni}yZ)ho6=4fkF@ZFD7ZnA3Dh%)LamkVKgq8V`WIK$InczgOogS-xK)pesk1}zI&2rSbC?KM z{WUvmv%P>VAP~d!BlOI<9ni3adFYJRKjC2Gq9iV+<$JWZ(mH$85~OQd9b2KC$fVqG z9MN#PAw6)Rxg?m7kW^wPzH)m-nz;fLAQvj0nmPVm<&ghQk7p=rD|!U z0BSXF)^gwFLE)|bKAP~EWiGK)hg1BHo0!J0;0vG+==Xhhp)d>WhU|yLG|0ML-YIoz z698pUpln%eU=70OklAs3naN~Ki`3`oF;zyRJXamF2Al zx`<+f?i3pF4{ZyK2!s&(YY<`Zch&V5lYpLCV3Dt>wl@|T8Z=BC z#^$a*UTG6_`Xht1ZsjKyce$jvfx*gmxVwa^bEk^t)%cBb`;H{mqm3{)`jHSlmOVay z2`yUt{4*;XCZt0bIC00@b3l7gr(__I%1&fLL`ZYro$=l$Qd@8E&YK@GyY~QZ4Q6{{ zt0l!?w4tQ9_Ewf?hKf*`+WUqDl29RKJICYh>Q04nNNu3Yl@Hy;WMn$%-bI z1%E9vP(%+Hy+c8UNNPYbjXjPye&0> zohe1fRHRAhL(cC#fay@7<0U9nI)b!33FCPC9^offip{5G@gnVw#9`jdKFF(H>gNHA z0yGdtU_9#Xm!F2v;sHGi)BaYPyMHH@AW#o`f~pI*X0;ftVt1zD3`-D#^f8h?80dGAIN&j0bSO=gBp|IplDY>H@YsHp9I)RYc_Ah#OL;MK#Xcv*oZ z=ZgV6orNrJ_6R95a`H)yYOtC^5nA2uP>TWVS|&DtDXG^=@6V%H;?#byFBU;Td@arO zP(^SlJL_Tn!?Li7(Rk!ZoNV%&MHqoRAI4L>eYtQEGfrptiMJy zB_NvmIHNnA`x0bW3HGa%j-X`(a7B^~up)s$r9-%+uCiVItjp$?t;A1w{xFF^PK10| z<=Yu=NbiexpAl~kS3T&#l*j9rDoQEn`uU@HXwtLsyea%1XRzr>u`nQV7MYfKNt5=g zC(F0G&>M3^dL^O>if1Y<3p)I)>_mm!WiEn=r=}(MCwNsnShYV>H3Wp2Uak4LK7(|q zj;xy1B(C4e-Tt=y51j?tB3~Cza_{ap+CmG|;+A7LXF#=nwDxicSA(5>`UtGvwg1gy z=wM@XjG$;75x2EH&4V<~c`0mAlVDJW!THge(g#M<_&jNQH{C$AP0{8IqVe9$TM=x8 zL|O^F=WKFuvXvU7Ky=uW2Bl{Ur)n8qy`+gZ0^pr%Gn?P>A}K$LXk2hBi|lL#W8&S8 z2#N)|W;rW&WidYnLz(-xJuC($xG5_IKE;Nq2fJZ5jk3 z_1pGFyX-_TazeF#^qEgt>29e?BhLY*9!oei*-OEe%Nj|nX~M_#&rTYxr)< z@6q}{!@uGkyl&VY*l(S7^&l0!T6B#%+$rSMS|WGDcVR~P@B4Wk^blET2kvj^k5r$~NI z?-h8YS^XTi#KunV5Fua(iI{0wg7=zlA}WFg)BW5OI zPj-YA$uiCA_`MD~OfPtTYxw1v_%cDvF6%(t!2`n*$J_gT%ZFXwEYB7>>PpI8e>kyvAsqDvMP{k) zR`WUPnQDO8?yc{YiqGzV%gAx$ummq__}$4y?u0@JjHtr1OmS?kP1KfTs$A~ru=-LC z537XfhgY*EJC*Ca?%D5GL8oC~0iOA{lHzZyzsv{MV!_I`(|GCe9NC35oh0wlvI6Q^&3lgkNVi*xq};*#x4Srgk>)*4&4nxu1C}xDBpOwgy@K0! zJ)Ck1dH1HB8y>1W^fT&FNXXM~I3$4S1gs=a3GnR@l~QwtC0%+T3tPVio*j*2Xg`s?vJKD!)mu5>_27H?7F@XOXiJ7&zj9X8s_!Bsr7~YZ_8E>q(HMGGHe~ZUtV72SV4TAL=@~w5LjSEo1;FHsfBT+;obdJmQODwE1SO zEYFZGuNogeqL-jkUJ}YN$l%d)V_mbHPpkgDS?r$_J!FmDz@J(Ge_qdjzwY4zvCnoG z_{|~Pa*yEo-cVZok1!lVV#(_f17aoBQF8^B@wg5S4m+JlpLlt@!-|IOW^*2&6}h_O zT%pf8;nc&*0Dj&viPv3g*z&HQ7@S~-KXh%ls9);nT(OEe`=nm!eC`*a_J6y|zj)3+ zzYI?D^=Y!|vZc`0ASaXT^yDc3nBwIg*KuG^PpFe$O8|m*^G8B<(G(c|&Y=?JnD^`& zUBG18MIbzBH%DFiCjR5;@p9WAMYC6@)y3B&_i z?SJ#zfByA<|2Mz8*AEGcSS+d51(V&L=;LV~6ou;PZ7fmaS4(D3U5ol-zI}U`7wk8! zFVtb@ZSPRQZ#YNeD`x4}uF*q=bSb;&G$9eZm6-8&zT02<$zQ?6FOlf0v`xXfebgGx zc^0t?nBlu7<59}#-$;YQHBFa_MN7eVsE$iy5f0R)<3m2QRe#x1FD>IKMKE1y@{}~9 zi;g2Yf6DA6?!%Cz<5E~`!qJDEUw~avKR^nHgdW_qYJCBbQ6jg5-TOQwbojfznTtDs zrxEi^a-5zkdJOI3Cqxx&eJW`(qw#l+BbK?;qiQ2Vq@SZ7bB4~uYDJCW@i7?SY5txp zFNEusu;B>hly~J-$cH;2VPSevXF65hg=X59lwfU*hkgK|%Fq4wBkmEen5!_`l!6nM z48CCWnRcEmW4u)I@6f#%>}BxTNVR&_3dLb_k~+?N21)mw*l}BSYW}`D&xdglnycQH z$uiSc7tH4SLucc6qbm9T&TIV3_7_|ywtxe3AY#;yAhQH?TThs@;~W(YY8R!V6rV}T z5gRu;@&*I$P8%yG+t^+xAX)ACNOj{`-g;YoI@6%p$BiMjnX{vA#s4o@|2In!BOxe^ z_->Umc1=iem;<(cMpfoi*4~*Q#Q}Tpiyy4)$5|nzfdUYE0>>p%X7o|LF_JtlPJYua zGL`TPZ)z#ZP_95zWe`M++uoKM5acM5t$bfU>I*T&+>=wIE+f9SU=WwWq{7UN!j?Qy~pB@AQK%&|{s-^r6I=ks`n zHkKk&dzcsUrspVT&}f*f2dKSbZa?av(#8f}?L%>?>Mf(R1*!AL&+vPS$6NnK<@{^0 z_R`-VEGm#dbzNsqRjEu(DiR&V;diKV^$Kb(KpmmYDC%s%TTSH`0UBiJlhmHuCmH{e zrQD;y=cHqW5!pv>DXMy4PV{#^{(q0`|Leah=C~uoT2-y)Q1X?WDa)ns9fPDZ9i#?g z4s=}9K8^j8->=i;KTjphQNC_W5+6C}n%6-geqd>nr69)l*V7-cT>97FiW-iLejd8b zD9me7B}H=qVS7xbU97DEkkVHh;eY;|oZ*30)ceTbA|L(ix6k0maou!`UcDoRC*I!1 z1;6!B0VxJTs?y}tf+?$v2ZIZDqP{X+jCASdjosWN*FGwg`Em0fvJM|>-k6kKZ7*?s zm2H^k1MXO<@2gkI-hETwXZ1srwkRLvh`$gd* zE-7VzC=`XIuu5JCnI65D?YIABA%E`Z|L1G?s=`qA+J-qdWbcL4Gn!&_=2H^6shSZ~ z5@$weEJbK6!$NTtP+=>5wz6ocSHOGdj3mBTpdQ9Fhs-P4SCDDFYaR6wE+qGLw= zTgmsuoqS-c46YKkpKOZtjQV_^v5RhiqY!bbIm83+Jxh_<21SXOt2_7Hci9TjKcl&< z8k65Qo%2N9?~kdwFy$mTm+tW zH2gU9#&NpLWvI>Lbyc4^>+F?cG`K)Al7nYm3wrpaE78|jqY#y zF#p`i{I~LCRXlSaxQ4-X>5v;|7i&`liEq_unzj=*Hk4LwsoY|g8qB=?hUt#16al`t z7y$uJtC*O|+gFG9;;K?&*>6Xt zz5-{gNsR-6_$sU#%~)K|O=FG(Q3=;M{ zyLD*$!q9Yyd_Zpm2bG|)|3E}BS%xkx zrDUr2WV>(YZxRpsj$V8Vp}o*$()5a2i<25mxCM-Nn7I64jX$&k#5nHMx+%_2dPf;! zr1sBky>n9(x(Q#Q`eRunoSH`&-)B(CCJF5w5C8jO_dggzEi0}cu@*#0)XO0%`o1Jt z9>thQvx(|i-;ITJbB;~5i{ux0Qu`N1{u)Q!HDtew9Z>WT@xvr2 zWUh*k=O0IQ6ds%Rd(BSXj7s^WXQdY-#ixIdyl8yTM3WC^v!f!g90vx-g#3pK`8WUA z$Pt^x)4*B{-nsR7U=%;flxobXJfBXN&G9UG6VqUcs}os5F8I!SKiP1kC^F21x7ot- zdT2J!y*n|9v*_n0`dE^7YJ8)QzGiA8Yh8IRp{bLMjwU(n&2B7Nt03}8x1J`|3y?X@X7L>{(Ygfa?NQa54(5P_xg9(3 z3(`fI9HBKtN&@%PNx8`dtG*Q>X!pS~N%BnQ!cKN>;!F}mS=YSL|`Ec@+_cFLK4o|&*X3p~Ue5GbB9wWwq-()ViCRywo!i&xv zPC-lA>OJ+DVYz}GCm;`YSDFtc8m{;Jf?v2nC0HT+=YSC((CCjigOFyp^l-yoJ&LodWXX*k*WH@1i zJIR}4b+?l_CJEbgno0lRjl2o2ddvd9s9A6D z2Pol4mR&g*dUSQk9{4bZptj`OaZMtzJk0 z0>FSIETfPt7T9I7s4$j%&X<1HI+_(FAdp=kg@7oq)e!83OP!d`7%8(Tx7fHHOQZ$o zh~|}8Lnswr`|Hblt5zBRGne5Aj$#s^X-pi$mYYhX!>6rA%0(tvJ&0dS$Kwb45uyiy zwqHgAYMh?@WX234D}jTcHFYV+m$r*N!Vhg5w46fpuKh-}X)k(R(yOVEtxb_3diut0 zT5hIHuNC77RT!=IJD%L)+kyzi`QxgSZRBk7?OGoKGM3x2>Tj9SIvP_Ko{|^o{D5Yz zBI~54P?Tq1>8_nlJ~m8y?KZ#f@Cue{q;d(C9|I_kN@=6aoj^ItY$z|{SG zuTM_+sxPVjO#IQPws7;fLtl4(&xf&XG^J@ok;NX8*M2m`;tGjukBeaxuoKkX2KuL` zvJB}&uM|^dnY6iLghx)Zd72AXLPJbkRhV*;BJIkHRR5|I{d%8Kj@aHcEl8eXq8^iR zL1qS+N~$-B1D2<71$MPK{h2r{AtG2$#MWO^IWa?x5v>%aCu;6p9CE8`m8*jn_YL#J7Su{GL;nQgc5t zR5$p&na4HPYhR0e)gxm_MZo@xye(N4@olr<#NXFiXeEH^wVohwQtN-$Sf8k{m+by6O?(Kc3Zn*ztq1+pD(<3~AM)>i)p&X+2 z?bCIaqk6@iw$7^k=Tj5BF|H0FZa1&J5c&tA=`UR;110gTQtC_rm)T|d`QfAr&_O(t z17k;&VAgzRvh4N69?LwW#*L*fE4vBphe@ajczW@%MH8;Z*}BV0GRdINS1pfjE_iyJ zD-n?v$g1{A2K+<4dTp%AC!31Vo&D;ciF0r%OE9|)Oh55*GBZJ3gnlVYxDDy3+ zCY#pOR(CA7`diznX$DB={Ex9=yQ%i^l9_-&c43Q!B&?y%8||vX1TYcL0IA;?6z36cWP1@o_3xx+2AHWzDLL5qkJwmm@W6C%G-ii zmoNX}G5Io?_6f;XHxSA}g1T{BmlCdH=aTT!@~7BZyx0G|4*z6hVocY+e)#HD0VegU zEKu!iKd6^^&(pe|93UOpmEZA9*y<@pdA7~qytKLSaSUsWRb*^@8~x+Ck{6i2WJv$x z6AaYXKEA`!H4xb$_fk2ukZ_$URQw zPJsWgL4o*5AOlfztP7E-(J?25M25y#wo~6T*)$%v{0Xb~#0gwoqPi~a^_&+SfDJHt zEZ*R8*!K*f5-3(U&MtZT_#|`YEWfqE6lU5sjR!SgzP?z|hCcg4qc>HEo4BWLbKFO! zHxVT`;75`}Mx>g#mdE?%ZXE@wrwPY;%(K}q(TcV9G(F1oG-e1Qfji5+v1CT)$LBO)yNW4DsF?Q4T;yChxeRpo)mcq zlknf~U!Yjo^Ta!7ZO-LWsnVZ`G#zh{+Mo1?^FB)&%8P3dEO+I)$uDaCl!xNgn-f|efwYYvCn8bP^nSRYu6Y9VoMpEP;QE@*pED|*E{QosTLyRz@|%$ z0Xw6!QRQBJI7gLBum=&92mQA#C+kYAzgMfNvdFV>^SP_aC3fcu*iOcdq*Qk#W|(!o zi>a&9=@KwmZ1+=rq}+S!Wcl<570+>764dQSL*0BCPb;(KPswtlGcylR3~R2al%g3IO=Cvf#fOdQMBZVcUhDLhfN92u@9Zv7qg zsj7x|A3FIB)v3DmN)=x4!j^QFM4p0w@Cd<@w04)e7aQ5W4B4d^DwAl8D3oNKKw?;` zVD#8gw7m~A#=XMzoK+i(!p-_*{ zKP8wY@kFY+PmNdBbD9mfK#hz(MOt7g{$g$B!_I5H@Cz4&r|7ySqUvf^Jt1uM3sVSL zM}Ljbn04NZi>eM>45)g2+O8sVwVci-nSfXWvP!}I5e>-uALW40qc8%t&tdbcRhYrK zxstWhfcLvyfL^6P0cm1yHo+V{u7B}8a@6PkTaqf zo>8^rvps0~M&fsimp{0G!e#k24%`7V%6ad(RRcIf`Q`CP@VL|GV`I_|iPr1xTsI-W zB8>Wc{tT}%!Cn<~TeJ?gS>!h0Ox}JQz(Ygu$PltqLad);jHt9C`HF0*vpu;K;QF@@_CE}A9{>j! zk%*JI5#OW}=2}1Yw&n@2tt50S7>H4=(tDgiShTYhAcB5h{TXnF>dp@-0;c;J?62Nt zVB2^QYf;fs){CRJC>Tp;6I$8VH3%Hd6BJg4jwdBX!&lbpotC)qVKLn1{OHqdwLJZy zbaM0Fw3@JJ7A2-5CsP+VG@^uga8Uo@OHaoMCi6x17^a z*X!DZ8ubC`mMSPREmk_+X4A>VT}h`{4@p_ni^p=vt2wIhIWQSsWm|Qr7f5!O90m`eFdVee%NH6c)*(=thatL#A_yfqLfI@^zf^t zYO&;Px5Cw|!Ay5%-~_)9Nq@0A{Il@zdjcG*M9q?0s`Z*?V5N znj&xMpn+@(+k4cAH+rR!W;mb8Kq-+0&^3tyvcG&eQ^-0$`>0Jkd0wAPL#>0&t=yUW z?;RG7!V>0xF0fbcYm?tP?i;=T$+p0+LcnhN`r?*Z7t79K6SwK=W>_}5e_#-H7WO&m zZB?p>2gv>AeP($LyV9lULhp6Mw&(6Uv1w?pz=cDdBfzzr_un8?1+}-P@&++O1La#K zkp0v6k_o2cp_7V|9G#<}Y~>)T9EAb@=4#{LJ0lDS-xH|QS0`9rfq8P2**{omKy7FQ zlxRER9|z2Lq)Y9Xba4>u%*Xyg^f?guE8t@XhJO)rt48&E`jnN$3V>GA$MB zW~xdYE4NceRC#K;ZNT5}c#@9CuU2r?>BT)wJgH2aEb7w2=Cm5yDKg>4lAqu+?l6r` z0DUi8@P)K}am<*xuEV$Ro)I~-%%k)%E#U*WU$Ktubc1Q}_QyNjF)bCL;A!->KE+Fx zorQL`jD1h_XeJ;pen?}a;?j>7y#R6d32XOcu~htCIAWN6Y;R8M(#O}`cHQrFO+|jX zpbLl+ek^TvUe*oLtlBYUf^-I(i(>=Tn0#yzS^*k-i9?!4w&NwyHOEdna+}SLr^88x zBaNv~6uAuQ*i1tyE1L`JRV!-#A7}3!)l}NXiz*<3NKq6A5J5mt0a2=Skt$Vs@4bZH zL#PTWO{AC5d+3DTMMP@ofrO$`LJJ@zNFZ=G^L;bt%(>^>b>^;>KY*2lWbd~;zxKQl zbme7-nM<1oah=?wcdAwvO~4PpN%G?*p3DaI?yw5al?_4qr;cITPR9{}{5B0ptk;jI zL&uhB=yRsiITNnbe>uKF&4F{*NSEG0_^EGmJxo8=z5seQ)1PxfrhrO_^wd&J*me0D zHxr&<-R!<^`_AgFn7<*g4A}73RH9pC#tYTx%hgUver=rs<6<^sx@ICc;h1asn^e(u zC|e)ssZ%xOoGrt23A;!gi3yCfH-O^d)KD38;apn{D#E#+Qk7gzKQSx8u9Vt^=QeA6 zB`Jsr!hM!&lvqrg3tlU6Dw-koHT9n^OI)QheaSE ztM!DW!K=4SC&)t{X)hf1N zu&^}0d^y_wk3#j7Doj%Qz7EJEEB_V~YX9X~+}?{}+fNO1TAC$3p8l1CCwu#Cz1tZ| zVZQ+fa|ULsR;Eu)F=pDtW-wNwQWV2$`soQXWr~fHFv^B03uZ^8JJCAbIa~W4x=^!| zGr2jc6=VR{1S&7flyw;CNe8YQ<73)5VQ&8Kiyj)OgU6Ha)`@_nGG4voM5EHA(}lNC zx3KmTtHCG5=5pzI)O*sXCx-Q=LFp&Ogt78s_oc7#?UAwH03@~LF12}FHd(3ts0Tw@8dPxNJ9%VAx$#){UkUqPvwu(SgzfA|M~PvtM3bW9rw z?3dYU&ch)oT&*zDud%{?Dp>*^*TbQ=`2XG1{6ch@ul#G6@H4owU$t9Me+nB6W@ts* z#b6*;mp^jvF#f=PVkoIyJ6ze9`MEQ(njp(zqie*s!IcOP zj6Cv}X&9pCB2r5hT0T0)Tx_mW8c3j{znS~8=VkL^@ z5f@?`bzo?pZ=;;TbpVLLVb;E=BYzY;Sm_D!1Lx_ruI?=r?+ma#h?;r8@VzBqLKi?W z1{RxoRS$zRJl&?jE(q~|TOHkc=LvwmD1)#U=70ty%Eow(egLo-N#e7$GtR{wxYO-w zSDR5JtsJrHotX2_&Iv<$I*cKP4H`xln;XD4^^=wazyg1a+jyQrJqUQ!{tUJ#Yqjj@ zq?joq$dL^vA~Q+iYV5c76L#!ItJiU-w46$7rf(epde;wv}O0j#+b}m_dq3L{n+(i&5*POiIFh6s2K?I%ECNJb% z;O`K@a?Q|E-{o&N-n+^(sDEOA&#w59<%?Phuh~6I13$V%Ub6)qLd5%DtsW~M)|>*7 znjAFmNJ0-BG+!mvQb)Ad4O`=9XC5^y@W<)x0@pU_+DiYUUW(PE`i%3s%Y_|OAGu#y zKGI`-XjE1u+L7!;r^lH9s}kkDh;;mmT`Y9;%FhVXw+v*m9bMh|eRAQt^_ddE_a})R zEx)&4jY9=c-{HOc@9Dd)c3PI6jrKasHy5JjTHEBwM+t-Lbr^uE=p8@qmH)&ErfX#A z<~*T1Uq~{jH$3L+*5kYI6J4y3@sD>q&FH?xwqJcP_7~JvQNLmCE>Kjqhh`RoMC&D_Xz>bO42V6 zs8D4uoKLvP55s!&Er2n!(n3##0V?ay0*0^t@KqN4=QRucgX4Rk>qwSJc$>bkC8#?6 z=~}BpCyL7z;8B1<<#b)^yBDBNhJL$E_N86O1M#u_qAPTb7Qk4}9Cv(ef_-2Vj%}M; zdqmG?`{`n@DQoaEK?wvYZD^A@zQ4)-5m;5fMV$K#q(1Vr{@ z*8hiZdnORiy0{icn%}$Pm-YyV&VgwYunj<~c^nVu^k;Krh=1g2o%GwXU}Rs~IprA2 zg_1#HZ11Cjh+^X#kWRMj0~r%R)!*uy@7&`FX*eW9>Ma;p3=UZW7DeD#+&_i z12F-40dw#3A6AtO9ksm_H>w%5g6W^Tl5D>;2k=lH_RKIVxTPiWVJfdNcp`SH^9d09 z4Kj1i=7hHTz50-WtKgHPPy$HOo_49DaBvV+Q`Np8RLZU)M6!?kOZzmkxmG-o$jBF) zkiB~L=p4Ji3n2G8a-D-_oA}daRqnBbPmksHp6_Q`~<^CA>roUX!3*GBiyf7Jq0i2)EFSvh@MiD)}FOKNQkr@x_^YTW+eH{{CgT zS$L(ja)dePzMhJk#|dUbssH71c*VXDEh@#?75&C0jZ`cy`xvZWrX-ngXkm}gTOsG$ zi0qG2B9o2iqMv9w>iu2ngM5FJ-tmaOa?C|!?DHT%J7K6QhtoF&Y`c*NH*72AdJ*|dEeKR zLXbsUs;ZTe;XePl{wgYtzs7zl;Miy5E_kHpq|M^2;hG5SW!s2Ji;}#`smK?PU<$l< zkjUizext-D%{y|SF#Y<*cU@AnuLEj0;55uQ5Z8Hj{{qXhajFgcu;P61>XYoJ`Riht z^CV@u4^51-N^yS(ubr$Ng(?4O8)yPw#;Te%%BauQddAHgWNjHZbLbFm-tOZD{!n!) z?pkwKGDy>w*Z2v5X+O#>Ni`bi?VPQRfvIb9@3Z=kf2ri%D7+^1{dV9`;;hHgs;YmP z2;1r$A&ou8tDH1qWg_BQ8WJWS^(=%>*K2VA zd!+oeH<+y3&?lq&9X@BDA7nr*Ve6s6Ujn~6vN_Giwif_J0gh7?Du(%|J9$ny)N}P@ z0={^s8P)XJh7Ql7HcQb0TOshtmJA#z->FDdog%|y`(8N%;qrCE~6w!{Lp z8QM_j+vN-kgX4B`^=L1CwnJ=PhUETlD-JOmjaLbe-#X7V41V>rf3b4ZqntykTV_Sj$L5eqW|B-&J!5;@rf+^GwZ!r{(K zV%5WQ>P1RFqni&@zI*EdbW(~V&ms*|jb@ZBN2MlCx*y6@w2F* zBqJI34a*vXv~YLDE!AN%bpd=OPGI!O6hV9uQlE4n5JO=Vl+K2?DR;+60v-yAS83vD z;Cg*wCPd(?==BFC8`^v=X2RJixjo9jF<|;pU>XPg#`lWtp(dyR5Y4DXM3B*GO54E* z3pz(=HEQo%z+sPFV?t7a}Y+Xt(Z8(2d<1uU9dha=a;rM6s zy&pdQXL0Y=Nnt&lYI;HAEvYiT)~_uVF_juhw-b}FQ_MiwYEB3hu9?DneEgKOy}79o zA{uvqlk)UIbq}Wj$;8_FJ1frz>L1Gwvt`BeuOHS?C|7<+&kXGbZ)gGE(>oM@XApcJ+|0G&|92ipd23N}M+Wg(?V1tEPwfKRS<+p^0$?{xdn&_C_6 zpIm-wSErKQ`Q@y_3p77zz_g{Ka1NZLxA-jI#@ls*d*<1RkK==?!}B4Z7h_%6d(3fr z$I;t~^aRbpi8!gpw4_H=K6h+XKe4b}s$;^G)8tkBy>l z$aJR$)zi33*RPzkzJOJ z(=NBLOv*rHV1}0lSe8|2E(ppt0Fx2M_NUZH2$69ye@I0#+=Kg&h{d8;|*^QzCtwcl2GVQt&r1xNx45SHq%KA&F&1W z@9^U(cD-6|tCI0`Gk}iOt@9cnX$CqKxyGwF&*6)rMh%d7ITi`txLN1 z_>tTm#;3xU+kgoo8zl)G{TVB9uk2Thr-< zYVn^1&DevV032(flPRZoxSw~^Z6=?UMJSlP^H}1sQQODm;dsFrq4;N7&t0D!|Adb0 zsYGV^9PI?+>%|S4+d%re-r~R^BhK|(Pun{WFNaV~X_oC0Pxm5)M4h8>9y-E@o*&Mh zJkjrvA2DruNWDC;x<8Xn@cuDS?=kfJ_DIGA6=lL>IS)JGATzc-;h(;d<+3cK6mO2Q z3VR-Iw2P90s86V^I~YUqt@l@9lBZSGcBUB8IJ27g8m(Nc-&~ zZo+=Qe*ZN19tqmwxt*!&m_8{)LPKB^QN+~R(|ics2rxU_-|@!b1-pdfnmO+br=Wv$ z=Spt}4j?h(y@RX!w!@_R^o_kjGaHcoT+1uru0wbKfmUhW6A5x9C&hJ~NykFPL3QOg zN2K^wAYs+yWi>H} zV@)|3l3u@t35TyTph!^*lzct5{AJqD`zW08)m^^a#mn_jZDoMWb;il@P8mn(x}qMZ zJTXfG_|CV#W3gplNB|=pS12Hs4ru8xCs8ljvw5bRF>QOESgh{&Fj5YHEBs}$(RPE0 zrda?l!BnpvX@msBY`xm`9S*m9%x=#w_(_}es+bZB1%Y8qL zcOK?CUyqP<9rqdk{cGt}(8RPsk-aq1ll7=&1YU&@m`@=!+mL*miW~oS+BRc}k_Tu6 zJN452sF+hp;c~-<#37TL2d(9xZ}_%}c6;6LIsQvg7i7@f-Bre zC7aMcYo&bZVOG`iWrnx0-ISK#v0-{J=o6FDG9$;SH^O(hmb?H;U%4DyWLJc9@lm=v zQE}YN3F`;k9y8{TKmyy=5yELgt~E^KL#4%4F-|)1h=7jO`jqtqP%9cQ`lkP+>dIky zknc<*4&t>K`NWe~DhOY>_L^(EcU`sIY>%;hTJH>1{b1&#M7qPoP=ZSW-Tu8!x)&1c z%U>a5E7n7|ej?IqZ2KEkc~`t=S9s_g*K>X$V;28xSYucViQ)# zzIcW1F4S=hr}080nc1i_SnyJPkSD>ZSA8l1sBSSuyoy?&hKA@c@i_t#2FR*Fhz?8# z`6djv;~Y~Xi8nZ?V=eB#Tak7tHkH&7Ymtp2nTx2mzeGUWzAJrShnbCikcD=rI#&REH?LYE%6YW8w#bQH6BaWh}3v*5<8eOeOX9X!KlR@O)j!)H_MW zYEGc3?ahoeyC_?N7ttf=Azp+ZuE1Gp)}B}Qa0a#?Xp2u_R;=Hn?x%1)OrfVpo?&M* z)X2VEy28CbhpnfUY(#Hool9kBo81}me1tjv6q^oowrw}>o1n+S#~|PIa3XKJL-=BYJE!4 z#b}c9fW2qI*?>qEkbO?%cKlz?l&1BHEw{cS@9R#WG#dba%oe_k9oBChXZuqWrk8C8 z6%QUL?`eU+Gv-nfF0()1%7K#{-C}KxroLxhU|+nA*U(jo&$nbZH}%hwo!qQ|a?+Wt zQpnBe>vO`V3bVG9jG@AC)#)q4j^71jf1{9Gkce*x4nOTETtS7E@skYG`U~)GI`L(8 zAN$&dUxDf)U>oqCA0A66wqEm1uxWE}Q_to|x;31Q#x+l5!qTPP|~53+N?5O^Ki zH_e|1w;uUR#Ga|eoVgd76o=ZyrR9tlyr)f5iOP^;Jm4HQU`Z$Up8ggWh?|^Z5yoCw z*qxI6N(iG2Qv=m10A`xOvjuxMgK)i={>ib1EJ^Jq2Zk`Xuq&XUTSxh4doknpUpAiY zA(yMRcA_!l3Mrj85c`(*Lcu&VW8h@c9LJo1O;hG(;OLGjxjNQ1)H(mLkK<^MO8btK zVOeUTK(=annmice`i#Ed@T@gp1Nq}@&QnTPzo^by(Md`QzCBBECu}}}0IH%~Nq0Bg z88j3yY8DD{qH{690oE~9h4`e}^KZ`#gnlV^X1k`F_{{t+-J6G-VKM5nH~p6nnki}z zahRC1b7}s@kw2bwEk3IGyQ$KjsuEdhh;8=7rJJB&L+9FzayS1K8np z`jd&B9?@$$gN;`eW4Y;903*Vj@S$i0JuTx@xg~lG&a{Y4<*K4jGkkY=^DDjTn79K?CNwA#jDZSnUKG^tsTdq!aF9OkW0 zDl!BS^Hop5_CT*8!_GmiKYnH8q5nv&9NQA+K?mYy5Syb}%p3fYJn0g`8T9>wMq}r7_U`J}bFfoJzB@@Ej{J()Q@y9^YE}KZ zZCIh%Sk}LK0mRvmeW3$1FRMYZe(%4(@T^F^Drv=Y@*nX&3S+Q+Zl~ z?Zb7v?PE&K4(if&G70v?j^TP>^rg?tszqZAaS~fcgY9)DvZjJPFx$JMydUxxs2ASl zw5tkU+N*Qd3KaUb@l5d2H*#I3=@V~v*GuP3;HxKZ&nvpwux`9oMMF1+Q5zL)&&*Tp ztA>~(4w3`Z=hj0{FpHa@WPQrm$rq17In%l2f^ItCA<;B;uXnVRiIXhGlrB>tmYhyG zjY}efl22vM?8mUzkPa@zQh{}<@1o0m-lC=Ss!Wo;LQhh2rlM*C$K7ZrlNRfBBZVD~ zagjx#girmp_;9%6Yc%PPmdCQ6WlLGF7=yhT4ooP9-jL>tc9-GrUEdlP(zoiA-10j~ z&=5*huDjXsldW}UV;EiF64@vhX~uYHs;B3wKOBHQn~#$tju2ehZZ!*Z3jc7J`&mE1 zU5D`&++Jn@+|!Y8--=`Q(o%<6bo{IAgZjLm+%lv(9NM&`6`wfzVW?88p!pw?#pR2XHS+VOAn`Kuj7$Bp6WO3E#UtsR&>?rn3? z(p%f3>B!G&WAf8Qu5EVAfg}7q!46Md0gxyL^Z#d(hE?@NcsYFOuq?*NX6~Rlh*%e@ z!3kF_GJF{NDByFbOWgZ!zGbs!5Nqt$;Z!b=>Q#T9&S-{PtodaoKX7rRyOI-UAjW8X zl0((_$gZKljGS2F5rD=CROM{4JPhY=(a9a0f)m*j$wgQb)Yzg?THQnYhnvQ>1s_Li z7yZ#$HUK%fPcoibK8!bhnVtK*+wZK>GQ%kBJ>bVZfiXPVBsz5dzQ_ayiKWJF3w?&C zH2ZRl%Cd_FWG(m}Hh&_mYq2}^>U_#%;hIZ-MX62`S!LSq6OA<2I}#EHPlBLk4TlHWQ;mqhdX_F)hUk_B5;4TNi+#1Zj)V$UX=O-6xK?43 z7rm*XzVPh{Du4D7Kuq{>U}0xx2fu%FiB(8Dh7XNeZ^yi9c}X0oyhs(mB;lW2v595I zN@q%VlBS)mgDcH-DvBj0yzQN_8WnPN8yhG5M;UP@08L^Xcd`Jha4w>N`qr{+z_s!Q zf!QVr%r-_60L@!6j;5SG9ikdc0`xIJXM%D4F-iaP6?5RmVl8;}YI_i96w)xVlx*4C zG90gzhiN&&VdU;7-0mZo?(B4-e#k`jPUanbPhpUt&%1GONEc&rR4`g8BW7ja)ef#M z+cx5t4@PaOO}{O45?-_XCu2wRfM~?`7GWe$nyF(zxQJ3yc@SUUbI|^H6#Go$80v^! zJ(umooE`W}0k&S#R?@jP;1EEeCPfS~HFgHo@kerAn!b0oAv~eDG4HZax`mE1F|C&z zz(}3QyddVC&&mM9~4rmrBkGcSPn3Wg3Mu(Z0+Sk+JRU#`po zwYHotuY2Mxr5K@@=RTov!3PF~bd(H-N9UBx8R%Y_p@*?}ZdGNj{qq~HatcEpz+l$} z94q#G%o3H7dR|0ng7hEG7W2Hqg*g0XjutcPcujA-qr71JBYfkX{`Ro6kpadGRK0*W z{hTqQocT*|onyZp(OUsd__11b zN!8&<$|>MI=yyz*@2*?JulGnLN>BtPO3#NeToT`03k2k1r74fXwu(>bE@_(rMxnOc zhq`n8bL(zT;!Ror`#u)BiG98uGbuLYhKe_VYbY@OsQ0tgpIR6|$rub~@MKd?Kef8E za8@iGlM~_1)S(b5wy(2*okVSxCH5y=VbrZCcE}lzU`FJ1(yEIaetj~{{edBK)%0TU zo`^h)dErcBe{L+H_qrK#sKPjHCb@H%PI>CP{UFO*AXR4&a4xdWDXurGyY7d}t9wzx zbeC!(+jM@ls4!}zq(vil;K5^4W8HOmq{B`kfLPgo7NxFa8` zzqPLm>Mry|E62U!aYMVD*sF5^-*`O|%H>hDK2a6dr~qI2=v~8O+~*gKeX@tXWtUw$ ze(vvO3h`1Z?KunYH^&={9r*OA4u8i3#iWe()R>~cQ)T7+be%1(bC!@U!u{P$BchK; zsngGPMziL$)x}t>nuyQd2>&BH1AQ|_CaOo zx20RM4&jtlAg#sxd;ZgL-vVR$22j=v?I^(%fTr}He{0L)i#j?(FP+n?c~8i%!(#%_ zv+bvCqam-ER$fO*8cjB6xUMYE=5&n;Jkn~(df*Ska4V;909h*xbgVkl+roe9JTg$k zBE6z))+r+`$JTY_0J}f#O*#DV172KJLEl&m%Q$<|XD!kY7y;qE@Nozu%bT$$K|cou zHbB|jGAs>bfD6-T;Z-H^UyAH5joUfvGS`bftAy6{sV!GEMCS&F{uDXxpkV?C-n7!4 zP~7vSlR^<_yn^y=Pe?Q9G{B5r#3A6_r7r+9I&RmU zckPW-3P87;Bm;~cQdAOAL#RUe3`f53@t-pj)uaMAQP^#*^_clx*gex?;x3v=WYXBroV-=zO@?NmbFgT{xqnZUq# zVY~1NK}c=7ldo2g(OS9>hwY*oUk+R9b0{0syA2TBx9I#1-$rOQ$XbBoMVI}XIk48K zohTbX{ucTOnMK8nmpe&`g=LXWip@Um`7}G8GMBh`mIzdF$AnopLCvjvoAV=r)GM*Q zm^pY7xju_~4lyl|Qx&JxdCpjtvCzm?x3(`iTvm1&cBWKxAdQ9Q*6--}&-k{MZJ(P$ zOzn$yFs&WD7q%bX{cvH_j7EK%$$qc0bebB_?hOO-erMC4z~Ro*8X)LA+YhA_NN}5v zmB8+VNNVAW&W$QnO4XP!hm+V?X3;A8_neS%WNfwmQ*|mMxkluX$85okN~eiUrf2Rg zbrir-Sx>Z(9npsxT>1Q$Hz4#x0myFMs*IZVT}yQmt>wVoeQp_fXN+JsoI0`tI5ahV zvDASLuQ362%~!(lqPc+MpueL>p}q3SC#gn2o6)`?g5kcq8N{85zLEsPd%*?K;yU$h zOhK~zt`WMYSB6{c)(`a5Aaik>L` z!S^a+nVi`5dx_hw*{G*YfLJ{1Bw0t5?p%iID(R7Q2nVw$A#(FgX6d|w(_?IRa@lGv z&`;dM6a_msxT)2nss7`A$J<;P2+9k-!PT5%dO?BV6+~!>b@6 z@IK&NecSX^*ie9u(gl0CZr?g$#<@wu2<9#^$SrT;jNa7;*&TMQm=Ya3zd+Lox<_<= znuz|$2@7}3eC|EHc^rXr9$GwOYf)3+n^c)a$(MkjqO8z{(0k84#8q0aSC|}{2AbOQ zeT?0qO!6NL?=s3joC3lgc0YixNR=%;MiBnp*zRiaJkhI()bb_^9{l;o0Kk0MfLbL? zotPBLb_YrdBcr!Y=+uOQWgqLiKFoe1S-@LN7` z8Qw~MhCn{6wP{NboG^m=iq(H&J@yz3(O9zCtc2tl>;dQB+6FJ&eX5c^S@{?u)^Lz9 zc3&o4d%=gv(f}{uyHH2NmG38A%ia;LSzp8QIO^mhx4$Y|JJ>yF$7_ZkJ9{_zLJF&z z8jt)18E3IEOLJ@A{*8NyG4{rpp2hqYQ<%R0{n2-8pXrq!{Xp$!S!^F-Yn>wC0u^Xu z+MG=D+?$HyU)k)hbMC2V6b;oEviymV^v#zz66>7#cGh(C^QbvA<@Pytme(vg`!TKE zFf9`+f8GP{Yv)iNmsgVu7`6Z==f8|uf6{R^>Nx{FgtN~+WL&;nsMn_V($_wPMUI! z;m1J`1E3#!jn)fvmtD-=hmejx*v>Qf7fFdl_0oB?0vv$4Vk|@l#5>vG&*Mv5jjAz_ z@c%hhJ&%O$yKV1W5F^N2hW(#@sO8aNQ@44#ru&5$Q5{4zK|jnkt!Lhp?!oBaj`&lv z)-J+Jx7j;?)kCy{P1`K8+GDbhTP2tPoz0*M83;``sg!O+^~=@OI=*(We{U=BeddwF zXE%c3QTeM6dtN7vHcJgqA1&$6dxUOX9Dlbz&Hf`ngJ8SV43%Q>4x5T>GbPEW?|2P%vtC7RmjF(hm7*;b9cge0^K%9qcfm>ATq%tD=8nyn{D2{-C5^jS42wY}=nO;&)jB5M1KCfj6z}Vm z$KPo=?A)AiM#3wP; z&*o2~V!)@(2QNQA_V^6n-A>2N_ZNN`2;5SC&L8g91E$iZv(ic9q9k}Zch8viS zM|D_#0Oz6Wx#6_M5?>o%17VlKlaE!-93B0gXFq^+rMFnCW9Zy0pvAUz_;vx!n%+$j zrTZ;=(ms5?TtVfN*g{)8qDaTzlEra(3|yaVRjk%}-OEHf`Gq87lb6VW#Sf^{w3A9Y zyL*9Y8QSVeRUf?=LHNQK-KwS_;H=S^tQ}bLhMw@Wy?~!y=Fr^)+Awbez@Ro4=7qN! z$Nsr&OtF0LufpwD=Xb8+t{)l{f&pSEk4n(|@PNKG7<4kdRg`-h#8`#yC?2+kd4qlJ zEov!*$v|~(6-XgJ$cXpy?^m-VS?|^UHlfh?J!_r}2(U3*mY`RBDA>Ia@76&wOsup0 zVP(=nHy+^&hmFR}bKa2ujIte@y#Gmt>*`!s*-MyFu8R9uHju?YTlABrm%|vAy|$Je z9Gn=g>YlpF+P9iRNJ!{1ezZb00rS7zc!wj)91yH{w$uFxt+*_pc?EV$)iw|B%ARg4 zRD6Si1lSna(@h?f_b9GEXk9e&OvmonTzJU=J4Kp<;@Nsskmh>sr~7IOkptIc>33JT zgf0ouoOmqux$nRDo<=1BsxG7IIUHP*Zn%tUk5!ArNbJoe|1*)w(n8j@t3pZt9DkLO zrG9s(e$TIYT!^;BXL;g&hS4O9epRbb;;V3yPwixML^{+JFq`hV$HfXgw8v!+0te7I zy{X`tJ-VR}q|$1nUt~Ah_qh^&aU1z=d-HtQ5b6Skg`4Z3m&wPzHz)f=(edJWlRsz| zvV+$j@$ey(McdCyC0dJB?Qrhl3pI!@;%Z0|iF=2}w|*R#;M>;r#@vANw?zU`Tqgc_ z=_3tI{+D>zb0U6-J3gK{`<8Q&g^l1HnRQQG#eEJD|dC z)^%X64Sx$55T~usFM5M1quEbU`E-}3RFj=kU+@hTg=Iz;6wX|O9ca4umwV*WW&eRd z1Mh*+onS8x83>c)x?P5<>%!jDr_a|3H2bepl}5|5!#jD#~u9 zKd|SW;Vd|er%%3L|G5_NZc@ZqRQOMOF1(Km0S5A_Nq~bP`rCHCbHhqOPgn| z{*<~g8hl8Ah74qH;>$;G+O~t9+ZZ$g5ZaNn*af!p!zZz z2uqwu5KOLyWl7o74UO{o;ejVKYEY_YHuH10+Yz8(h}1d$SBlh@C$H+lPp%wKV1M`c z=|iW1fGBuL)=KfVP~N-G#&PDXuAZ=_^2f~vbDjAdrP-?{DS}qrnn-x#do#LT9}$5~tRuS7DAhP8}PFSF;@00#Nq-?N&fSAgAyuc*-L( z^v>`WiDm1BLyW+*ivMr5{Jn#2l=maR=fO!u5BkdAO2=G1dwoHe0PM>kkWE#tS5P{E zZ5tN1J5yi=K^RP`>F=}JDT3<=5z+@>)rJHsXh%kw@GB~vqyAiam8J=Rarjrmz!R9^ zleNLpp!>+{mpeWLJ)2tc;{p$TWCQ|`k8Bv=@jPNUKbU1o`&#nY{ZYzGlGFjr6@P#t zf<*jVe-r`n_4@(WTCa+q{~m-ca;fJ9`(l%}bQoUck3gK|sSt-6&zMU(<4d0F#fFBo zzVJ=}$wm2G`W-l@z71BsMvP zVXCIef)I)O<6Ki+hlf}6dJP?=no+e!3{ymtTZeH`g>cGwi~-O}xkfW*deEd0$d4E3 zATCR0kFC8mYYj44<-QhhmY09xaLMM+tz`7gAB(CKj)(&vO1#LjmtU364+~eF&v0(Q zU|1Q@dc^Fb3RY7|=U?=UcUo}Zo}QWg zcUZu?75uE>G7hu0O&n>nee-MdfFeqI+mfF8H+(Fv5N>3F}()Uq4t4@?l8f%v7;h(#}73H{CZep$=< zi0loG{rv7L62x|-_f576l4-ydp@%5~u2vT{K z%x(Vee#}zQjK;!&VHSAfJ(-#2!d(Lsv}jt735ARLn!Scr(8+{njni3#17foFD|_jf zkUnA$kgW<4n8l`g+K52O)n--wRkqFjm)Vyg&w|P%-r9ck8H$wn480^x{AZVd`N*?{ zj?)pAlgx?z7J-M8{avUsX(l})CPaW*^~Sg$qudd}zY1AkGSQMX^%4pkhQgx<)x%T8 z1G>ir$%6wjoy>uPBTqCjce2Pg;7g{F4kVTt7wZ?6X(izA>qi|5fXMg(>J+%LU`U}i zBCY^X7E~j~dvSyDLU>2r2FdKW_&rs0E5jcV?fWg-!Q6qAU5CR@nF>FMo5u;BMrIdo z=KSygqIO7nhh5AP&q6glzu^8R5a@577NHeX+0o|Y+5&X0q-Pw@l_D+27Frk^uy8X0 zL9#;=scyKaKq|j;DozN38}>Dkd9>*+P+dIc1X%qRIw?t&S}5!N7Q`0ihC1g#=%|Rez#n4CUPk&kUg1!byiySCvq}++Yre z#MPs0rW2|G-XaBD*O-*zg~=yGhf)ag?cmngA}2&HyhI|3^qQ~hex^zJjuT)^2)Fq% zb>FBZP+)HAq`AlQFi_~F-?kXvD)BGjoAj7o$s4f7zTY= zkJav68a8d3s~0chOi$NnfuAxq>TId*ifw6ScBh@ zw`fJEe^z15@d>X9yZswx5a-0m`Zn9ty4yZ#^=#_gc1G2^Knm0ow{fwZryDoFx(5%W$%^Gxxdn$!PYS3wLB7 zkSYbQ0SPBGi7-%0RIhGqZ}y>^9c_I$2R8uM`yk*Zc?b9rve(xayWhQ+%CHHqsP_q3 z|B<}a2MNY!2?y3UKJTagAn~zJTv>d5-#F9rE)dW>nxAnP7T*#NpVW9XDCA<7?cdUA zw`4n%RI7?Yz2U+~|LQ|5B+Sk7Mb6v-+H!%2ep#WfxJ&$x{jd9qz^FZb_wxA2!9s?B zT_}OCNID0fF9*K5kz!G7Z##BY)yd7nIO#+8_E_gga68|0e8?JhVz)^(mNRwH{3I7> zk+QsAhf{`btMGRbcHNoX5k(t!W$SD@#`0>eKQ&W2jLIcNZo~;m+K0rG@~E9QRjs9b z@f}WaH?vs=n=Atva_k)qCPy{|tt$4Hz-tFYH`^y69VLTZ$m{QwRgmlcu*fiK>!(*qp{uZ!bzrfgHJXk|%8iYNn z#-9{)Qb5G&55!KD_ge&QCUEn(Bh~P{K>=s0#bOnQiEov}k;e2s8Pop8Kqg~$=NTK= zhUHA2_2llX6wv}ndWPwI`dj#s-Qo>=6M! zGcj?cIGk>*<4cBWOLLq;Q2agrlzEtWIo~p^vFWM ziMk!-oUdy4XF|MDVZsxmn-d2x_v zYYKOwS(z%sc5|!S@YTKjm%&w%$J-+h-=#OnXH!Jz9`LsVfs^}Xg(_J?lKU`pO>w#4 ztQ}|SB~8K@iHPXWJS_o(VW1Pq1FIH+kv#LNbg1`O*;GhT zNFZZl76Pl$4AzX2^ZYuZ(kTq@W`Sg5tioPHYtSW~x;d8Mxe}?MQ zT-=LEmV&SKW#6)wq*6EsQhqg`_@X)=W*-Jl30l9``c*UDYYiCHme46ZVY_>u`_eS;Lf|w_;+_xKr~H^ zmqEr8C-@J{3KzZ~#i9cT?Dm1_8VSr%#-%V)>4T70@UA>#w!x*(9`{1q>>!r4{+qjT z0f_0mm~0?XmWZF?0$lxo6QYROaXW!ws7%gGt60UNIKM{i1$8b_ij(1l5yqehuSfY+OZ#cJgx(q&R3%JU90{t7JSvpMkkpH z=u3hnCfQZ?VrTh zt)OT4Tr{BC{sc3h+&7q%Y$i{A6X+{)OLh8!LjlB?D;LCvPfeAbIV$%>_MwDv+sBIH zotOsNjkQR8n^HE+o-x<HOPYh*Oj~ctW}|aJc#iI&K!=$Z?4@R2gG_-R--xv;{L05fGO|fFSHe6bpk%cwC zB+|BB#SWL4Es>TW?7Yi0Rsz zHseqoDiXKYfos)VZmAq>=oU;YB%40dv2;ShXFoEjM~m%Jez{E zM?U+jPl{nAxulCS$`z zEYUp^ZuqkYIoZwco^KXO{vwxHnl7D7UEA)yNJh|TT;49ekrYKhx1X>0UL4RBFi1WuasvsUZB1O9)blfN#+ z|CFc?JyA9XI?;`{AQd!gUkCLkKWpdKuaQqKKkj2az|Lp_(N?eEP`CO&zpCk#-)*}C zpI?&DkbMN8&*d;{;s2{kpce}C85;n|)*7j8%@b$E??7~7#Ve<%sv%RRf~iQo}h&sSQ-!4mIZlzKfcht|J13UA&oCMZL&gF#2{>{ z0!;mF@_2A!k`PY-D=vu&j%#0~NVr7)@!vnJO^9xl+m1GezCKJ+@9VF33Qnh6E!S7? zb|kG)D?{;e4kylEB`yTF()~Z&y=7Ef+qN|tEWtH}J0S!Q?i$>Ky9NmEZoz_E@L&lJ zg}b{24en65yZc-0`|iExyl7wQ3#m<6Qp$gqrQmM%XV&sm@oB!2%^by0pQy=fVH>${=p#|m)AQYIidub$ z6vAKF{2Fv%#OUIN*_X^>j0&bFn8IjEh3>GDE^}Xo@Y`D?UdqiTiT$rEHF^jkdr*og zrBkA`lgITu8>1kz#Z(L>-r6c9r7(|ClhSUwBu9;St^+-e|BgNSwn9O17n!t4rq}4#7gXy%dX9mWEb0k~=#i!^ zzeTfbed^978sigc`<|LB4;zGkvUlk3t5{_#RG^dd&GGZ7go2Ab`Mq#}<+6{2^FC7a z%nWCNPIYFLnWA2QJVSEos{Q3XoJNCp3Ly$2`%TJJF}3X8WE?YPm$W9HUZyk(SRTF*o@N4n>YRoIt_0+MHCvmo=dZ!!>6v zkCn^`u&yXKO%$eRSly-3hVnKZ01!?8)D}%U82kE%cm~-#GzQd^dVm?9@g^4*H#BcKIi^bc4NPJO#c}8#j9R-fKyew(pc&>$I+RfLyZZ@ux@ zewb!@sdh}xsNYOKwZxVJLtDRT4|uwr^^IqJ?GqqrP&(am!jAk=%IL$a+9RLAh>q^w z^YG!eKZuc+A%6fk+*OZC{%MOP*3)t4b?NGqbYfQa7R<T@1pAadMv4*TRzPdI%QXo`lKwmo4dN|6;)@P1q8+o~w=kWv>`_$5Ol+xEm2L zw?a&{6K_3B#vp3I#8M4?P4n)l&L!#oteuC?h0?-fsUPL^Xv7Eo=}T6~DGsBi`jYD@ zznkq$amXbZ89gB{Ew3|;2(kNx7sm?2DTLe0aNX*34(sYygroX{;TW=;&%!6)?Fkm^ zqj}jDcdPI#?_%4>knJR@!mRf8j{-IfRG^g6{F6cO_ltd<@K`4d(zF^6lJosJavqJ$1d7X$OPNXxs8H&s0alyKDaMgCZO|l{KQgP9oB3RgGrTxipAbWr)QZjCBL|F*AHAntRT=GD)Y2dv2#<;%yT zr3l)r4*3e%MrS=^4R(CK!A`$!i=lhvf}zn!1SqkVe7HW|NPxbfy6vhYs$-XYE5@IU z5AGYN@b1;+^5z!tPU0VdmoP1;8^JuJEPR)S*#S%o>7^J%}*~l2BICh2i@D^eW!Z^xzme4I*PDY_u5Pw zG2WjLkV#xgMWQl*H?t$MnX8ufRw3go@#k8;S3|@Zv=LzKv~62sL|Ed1-#=O^$*Gr% zu5r8a)+lq&N<~J9b&73eWyrS%&9DofH_7N#DfTp7<(QF7zb+wp>J*PacW!(l!^^j_ zN;<8+-%3F^9j?WS;Gs_qI@|a~;QzIc~r{?6~mcFLuU`*udbk(`P@xPTRSo1z7NH>J{+#E|fAmQ}CZXJDk z?kdYCYxzODM>d55-LK`O+x6!5!ZlIZgJ`F|#Y?YA5WORrWa%bRniQ!WMI@orf~4%x zkGrts`*pn;e$$EY!~sixuw~H2?&@Z~x%1om8-pHC3e`YY+gbSxT&BEgl3w1^o7#1k z;0T{b*~9JWMXT2M5i>VtP8njK2MXXyQVi&oLeRao1`~?s$g6Y~t4=Gd=|GP5&*q$U z_+#;=6MWbmZ{Y1)J`PMrYC%a@xa3Z%~J3Pr2=GwUc6_Tl~=e0>*FIfJRW1sPW>WpK5Kr5@9@I{6u{B7)ebSR%FQK z=}bV35Y?A{?#vO*dk>reER1z^e}!R39`wgX&~^A{zWt95L&9D2V52<|KQ&s$#6QB9 zA~fzclh-H>3p$LkG?=s6+)aQwe_4w`Ts%bxIj?hA@_23t8p>-qWghV*MmGD{crjbG zmp<3OmFg4;K^n;EEY7zW7m?rze6;F12tQ;DTfOmFYARXVnXgZ?pgE&HOKcqDQ_H2- zX1IfnN?tFw5y+4T*91}lyrQdA}A?Q#oESqGB z?@sbGPTY#Q-y1*7n4K^r%17a^zEu?^hKCkV!T?kDq;Yzb?+e&3(4><|2g8Jc7(S)4 z9axv3w>KR_h{o!TvBnv+X%86esCNcynqSFY*2v=5&8TmziAKvyhGdFni{+e(6@5OC zHouu%*T5veF&&-`A6d4?0%uy@Fy{<1=@Sjti~IYP@8X)Rl)3LQXjGY07F^BViPeRu z#K0$zJnSLtELZ#Q&)`62yu~P2xgUWz%{JMYa}Gogrx1~1_KbRueAZIEdCN$Z@+v-v zH;<%_B?j;{XwZ-kwt%m4yY2C{e#T~ICF)ISxnn20+vXwJX}^(6<3*O#O~vV`K!$Dn z-F2RsnEw4i%1C`z;Y`TYwpwWf27C`j!X9{5;@aN=#FVMW!BI{#MymU;d*Oq-Vh`8M ze@W#@tWVF+fsk&o5%;KO>dKtsJqXKzIPlVkGQG6?hN3trrJ6}5WQ_|?ef{0 zqabPv%mI(5OlDJDM7_NVDiII0$AlTb@?upi);s^lA9}Vqfk=FRe31W7CHOCYC3S+` zF8j`H9hswQy|jX9<|=m(N!`B^2cIa%S)|+Ks1f>_E;>IQ%_qrl%v`15xoaa`MS=iw z(!5(ro9hej27j9Eu{urQh4f$DbnV!)u}{Gt9FpuFrkWf3`BP~tiGw{Tv=zy&{c*9F ztlAORULxB4>g3mcm(gGmj3FpYdb$`V5I!?nC_s^bKI@Lvv@n$wTcn7?3ICNT-n|*0 z+QqNZgl?(k=!ZymS6xVi9j~zzcA`HLRgSCqx*AEVmL^9b?G^zm(y_|mczM)&|od+~(ccS*Hm=7(m9gJN;fQl~TPA0-=0&>bG0Bl+qzRrlqFX+;Z7N|0OK&VdJNhJ0lU71hiGm<$$(aH?H^oOFJ?8 za8R>)KfAko-irRoHSEwTg@8(OU%>G^pw@EdTRN2s!_G`o`EKL(Rb+~ViuxZInq;w8dJrp8oKW54COq>4aUDCDk!Cs z-oRIRiLyAkIbp_X8I$6Q3pT+S)Yq1sii+sU#dS9yP58SDoefb`-p{pY+;5$xg7y}>(pC8vYE2k4thx%Xmwt=B zniq788rj#7R+CncNLrUb-_bJOABbqYH@-;F+2lbx6smPLE45;0EjhQv&N%PI^l+}d zklw9o01~#@DvJzd1~oCwofk2?y8(||89x0X5Cx4o_t>tU9)tymd|*0L#w_j|MWODZ zU>I?^zSZiJEAiS;CnGR-=?D0*FP$8OpFd)gt8mswD%IN5H8KB7U-D;Y$~XBhsNi3w z8!S}0;c3Yb!`WH~9*U}Cy5D&Y1c^Lr6K(_RC69ay6+r!p#hE}(`t=O76ktCUce)Y# zP7mKfXyQL-0W^I!pnyNIT+8QT()9E)m zm;laSwy1m-xJN)#Dh}3aU=(6x-W-bUU6-fPYYFhQj;FG0;=2`En+tjzQo+F0wG9tc zK!V;%K-uF28R0({GTEVRzHMtgvdzM?ietHUUTQ?P#5y$wDXGdI%}&Szb0pL7{f=Hq zSQPEqat2nOANmJv_;Ckz{=_fIR&5*gy3LH=4R=@3WX(4cNtVVv1ATieTy`N% zazf-(VAN@qwcqN`L7jbYd?9O~R+H;w(eE<;`2H$OaOf3Tp{d|L+SR1TtE*8Vgy~m4 zmdh>@o5c&HKyocr=Plp-8v7u1Cu(!^jSC_9waHkMj3z@wF`YK1%f75lZD=V?!`tTm-Mrk@9X$6zfQ5v9|hh280LE;1c07zUQoJRb+Dzt3Uk4V z;P=W0abgEr%zV4him*_dsXwzG?=s@{puLysZ4}a+|D_?!iTN6zQRaMub*GqtGhV34 z@0}XW&gDQNwOJ~ed@3rNwMh%1L34F-s-w*4A?<_&{ZNcF9HT?)Lur$Mb%p2Io+X7y z`^}BrCiEHfNRaaW>An|5_%S6Vig5nfKq{r?(a|^U(QKuMf{iZ@_#iB!!t+W5_tZH- z%|PapVTYy5JQw%vdRrw*LMs;{&eWn^zPt!AGWY`i49*X4X)Uw|3L+G{!zjU@3syyA z<435mwBb2qZZvgoU5oB>h0Wk?(SW!^^1wOS1Tnu()wOsn%r*LK8iG;?`!d&-R+_a5 z;BDiFR6+rxmYYMrJ1%X7l}yb_DL7yKO8a`(#EVoedx-~p731bmo~xIHcEG8p?=$kPHQJDFgY4w^U9#R>?_1HrIP}kvIf@!leM>D zkBKLBHp1s~AEH3Q+6yia(v;M8($BF%{|27u;{ss1x#OVs#*fTuvRTVF3)P2KaB_vV zlpg1oz9n?F?<&c;xpnnFTTz)JU}UgGcqz-A0>ajdj+L>{VAz$y>H`aepHk*sg*#-d z7n7xNhyI=O15uIRwhmi$HcRJ7fv^{U!<}{<7%YLn?;y8yyGsQ+D~i1_5;*2EZZd6@ zZ#pTLNowwU)9HJdF4P?EK%{L+7TsQ7=sj?d-aTe@_Z`L2ei+O_)#SJrEiMX)dS?K>^eE6*T`DiP!^HM({}eP(q%@JQEfk8)@Ok%@7NTm}JEn-|M3?z%o76*# z=k+x;wMJ3!-lMS%LdISzqmI#`m)eDg6BkjO@3OvCina@G?bZ{xbd6&Vui3`QdRF~a zn({rEWLU4}=^7kCY2i31199{It&tQp$Qwkvx4BC4G;({&d+_pC<=Oojcm5;km8z8!%m5x} zqUkI%gnB|s4EPi~-eOroXx&}n#i+w3zkl<)dHo2nVWfxWQzD&imy}f1 z`6UtAx=h_b+QSd-cw%nsxcvQDq?3-1(%CD?Kh=aG8>@`kBJyA2 zFqEnWY&XNt*Wn1E@6k(9!W(unHiWr0Z8ZnhxmQAPth%YP|(R3KwUZT zl1SuZPLm#aJB>-a>%-Xz^k^Z7>Y^4!yQ>nc@6`MF0%2mgpc<@lJCC4hclRjd!)VYZ z3-yqGb`RsCp0~JldQj?vZL>_j4@ZXTwNc)9AZfi@z&I4r_-OE-=g`b`wBL)h`{BB zU@Nf@L0AR;3ZjhoGhpNEW-)oN;>j0SXg-f04EsFJG&AX`pNZs(w62JwH&M(9t|Vzc zTu5z1=wAS+Q%~{aVT1WbJEm7xrvPj&VvRUz%3iMqsM!?@3|q(|r-}y87j)U6(NJSX zQ|%tXx`ns8zK*EM#K)HjpsJCED*IZsUTD~O_})2E{U_sOn6|tUp7pJecB0cyCJ+M_ z=;=?8ka69`)96>zX?ZC}6)5v>L`0{8?QB{h?^L^61|i|jW0*DoHzhCM0B<9XL2?h1SW(wDxzXqRQM;J{N49A`~K zH4m;LBU@zXj6K{c2<_@b^&mAODEKIGoS(M%M^uZ3+x`Hg?Ap5>YEkX=R6A+#8AhU~ z@f!bguG^OYd(30Ix8z@9q*ZGb6}~+`RGpR(pU6*4OU7Mx(mKLVlM{*~`%#6KWiRCYRlA zdCV>n(sCQJ59d`=t{Gw%mK$3Ll|J?cEkDtWs;!#VP)9Rn*y;ARmP4G#Ib{HlTgRtS zlb*`QjhaT26n?pM)sog$HtXp6F#u=D2WSn(23>HE#M72nT7+LBJ>{;^zsH?MtUFld zsEcaA&f9-5iQoG6H_c#0DIkxD!*u8qa9U!H)vU55+gU0J{D69uP1ej!&`zV6H>}6N z$cuXf3mv2cFM6zRFdTZ(V}Nm(BzNM=Pj~}>@)YWe?=LKbG(^184qX6QAGCM`D8*SK zaY{BVbf8IP&-i+KI!8T5n0YJZD!X28Hte%vZ7#;8&^fnhH#gqzVt=EXZi`x64vBrj z--~=`soX`J?#$}%Rmzm^xorxR>~r&qXB+10G!IcY$!V!PH@A;Nf;hY;yFc};s+jb5 zuRCH6X9P{Kp^lcA!IX+(mn`l(>A4?#fnbmGX7Kq4VHYjEt97<>-Vfl!d>9_g*Q+c9 z*B8*NdtaP*XwP59KZr+4UwJ$ks6X!gj2WviAgUx7SEhgf`mGwJedR4OY4wdN0haN% zkLBtnyH2n!EjG)Z!{s}=L|OztIc`1QE-dc+E`Ndb47;`=L0Je!c)kBsEl`U0^IfQG zs8HI=LhXnMoN!HYSupiL+Tff`&U_+zHh1^rjOz(4Z1FST6W1NTDZ9VI^`%{O zTr*LHKkLr2I`+Hq`o_CihwWfHw#71s()vwBzsrhHAq@1aC6@fe5r&0N1i=;~!9KJ% z*S!Usb2f!f-po}lI0XP4klKoC*7b`eu_z(Xg1vyGu|EL zs;T5JdY8{PZ=Eb~UwOV3o6jflXJUf9VknCW$AwfbUG?zNiC!#w6@3Zz$lyLW0*0qM z7xK`#K5C_fEc;wyQ1>0NVZUYgYhar>S}+p1=+5RN8>}(aM!>-7MK zb>cF1iQ`=Sp;^LO-%eR&q?4XP-kc;2`9e9PVEwSmpnn$@_atfN#{+Yde3wL{lQ2WO)l?+ST!ro9h`CFiyb$@`Mewe?q>uL=rf}gOqdoq4< z#cq*N?ZtN3kU|5C8=M)4q&YiS;TW=Nf@gPAq1E8kX>VVhXV9F4dMX6rk$h}&8&qyd z8lK)UM(JmQW4@Lz&z!#7khKhBP#>=L&XN9P8>PwD2ifel#oY)qS>F8`_+` zah&2f8}Eljc=mzqt7tO5#_W8=0V|wo`Md;K&z2^xRpIxDI1}cefnRGbOD0`~+psTT z)?8dNe608!&0fvpHr1QV zTNk-Ucyia_E$0;BbXD`s)yCzCqr^AfUa@X4>|B*kN=~d*LmmEIV)*(wga@|qR(^0a z;|e#}yB=bLf-dp-h6^fTV7&T0nX+u>)dKOEb*yc%t>%w(qH{hufWS zAbC6nbA9E=Xj!J5sM;L~HV$OYkpa>qR>Y4qt_+%$vuvWeBu;Y0V5KsO^t&T9XpEiq ztdrq<37E>~jxgm{!ruoC*I0MWqO*#W;nHs}8I^nw866Vx+bF%c`xj||iCN=E8`UE| z(LVf+dD5)B2AAaRZvGUX-NkIYK2H^h8Yxi{n@8ZDH3Yno=?xbN<__Y2uu0QBE^44~ zk{!v7EuwWP(e5W*GRA$_c6)N@Iq9Z>XBw|`*M*S#yWU3%(WplV&gUZ8RN{$xu0$#{t|qxm%am%qh{IOy$Di(`a3st-api}6X)r9eh#C27^c)3vl1 zomGA7Y9(wh*XbbnD*6~Y| zO;aZTJdssvgXL`!Rre#P*DKhAdDpaI{2zHO6*N?@{C7OO_s2htvl_+(^RUF*4#w0V zJarEapp28GQ^M9T+o%rjCc_e4rpbU*1eY8Q7^*TDn3vH! zBgdC|`@{p=U+v&Zl+*Gp2#1^jPh63ZHuszOaw<8Smz?#Y+(8aIN^kh`(Z~{qFwjcP z$TX)5QW^2-l(42uD(`BTI^h{IYhxAx@!8^wO<4;S?%y!dqVZtA)xZpe>)r>>CuJ%nQAoX}C)b&0m%oe= zTtI}PFzmnII5p|;=ZBwo>wO%$aI>H#rf_rU66+{cC#hKNm*Mu#lq-G(YUN0;g(CjG z|Bd-s8WUP_kbyLZCCfNKs;(S`r*g;_oP3NvUcW#b=?dOh(>~G|1FVE>fck z)DL3mgl;L-$?KC}OzR+FK7td!mp+Q$Gc;S%?gYa}$VYi_<6^tYB>V*8QjSWYMuqS{Fu zW4~Jn3-vk@<B^=+r}!I&>DtQmnvJ*RF1#**k4}S1QaeFiNv`*O12VzGcMKGP z^W9fsyr^WjT`R6HfN--&k3Uh)UjIxg^L>r=#XrgEse3DPqsYAy@ipoW1Q}kxM=r&P zP~MJld%3t7PumxY`8qO|R$Ok@XT9!vhcx_abzx(*Uhb!+PIJhwap?9?O5tkLx!exi zymw$@GUj%{NFr{DEYl#>kP550W_d^<$|(I|Gal1HxoMX1L_Kn*3Vh;wTT{VW)O3x( zE9kn)wL8?h_s{S#>1;HAZsc#e!xyeKSvp{9N>mqh?vt@CWV);JSu64+@ z!YjhBfqEqOWg=$~V>oXYcA4wu2#-ZZ2kaD~kSTAvljNml9VEOta99>Rh8yYjov^78 zS3&FIzVF@3mk-qzb8YeWyQXVz7!JQ%5DfotC6mHoH1TF^biP$@x0zw|NjCE?)tI%_ zJ6bHLZU|f2KU)g+rAd;6y;AbfQ;;_zI(HfQp{rP-{t>JxDVd?9SqqL~ErHy1953lm zwl-9xaHduuu7rn56zhXpHBLM*r>)lJreDd;dHA-6Tv#ZxksAbmzuSE=yBC1Gn)JjDfBe zxjinc>$%QQpi%E9d3Ns~Bv;w$t@g;_9V(4(&c#X2NSys}7vceD2+I4?cGT;l_gcpH z>eonXJ+Ys<+sDTYv?XeEE%z{MtM3E%T3!+M;AF<evC!&B>tv3;zzl?D z2*f7};F*?iakdanS>SFp2Jv5eXp|PrsnF)`3aM${A^yC4=5-yUu*Gq--jBlPLrzWW zk=8VQ9@}|fdHM31VM}NAn!&wns!SXc?tJ*>Whj8a>^ zUQ^@%^aKK&m(&YjC9V&@VS23=kVw6Km3RVhKaMi(db$k4YiqI>Q7oRH^#R99IZsN_ zyj#pgHB{TE4WwNkeymN}F`=iaJ6dfC;_upd0qsFr+#Je;T{8P=VTmT5)@ZKgG!-7z ziR){%xw_i?aO#Lfl>eq@MEcBwtV@BH?=`!6GTYSkC^RM6g|6M?M0x3u~mzR+^=`!|xTv z|4e~mxwI7I{;M*H%+LBgvA7-u5*xFL_rfm$V#6c5mC z#CFm6P^YNp)?=r=?klc|(RPO^(pLiy3zaA%R`HpSd`m4 zT9@vJgNk_zz3lehmGyX?nuYe2iD|nFrH!9z9W({Rdv}lL#p5DO_=l17>E*mtLrX-S zd!h7$-MO$Y4&@u}yU~;J0X~WCS9!aj0UpF|9Xzk1w(=Q!+7j^eyT9w+GyAv6?mA~a zu@3k3!yYRfLCUcd#o!Vql>=UVl$3(bY~_OjgdFL-idpt&ZtF?r(M=V$f=Dl96_pde)Co!op}oW*|Dr4k6nO zS=Bl^V+{xo!uB%5+c6oJDCxid^0bmQ_S5ad&R9dT5;lt_;0cLc01NXssAVpVSq`9xhqi-F9z557}L8V!AWR0!>b$b$ zw5k9B2@z9U|Don;?Qbu}X44unVyglejF(sYmfjf+%#=k7S7VK0kRUuBh{!G;3wEj0 zdYSn~`K_;qf9!`#ExjkYpo>~zlm}UqpSfP7FJC(8U!oy@zFS?+T70ShvW zyn11&v~e<9k>?VJq&_L731Y!d|Eu&yp8%~4 zi1%XwDnqm6QzO8ZMni3!MCPpC&B%q3+$>SINtIyQdj;E|+Gh9A9o528`4QksxMq6j zD|*REFRGG^S=8H~p`P)|*O71BhV(>ve>Zt~ID@oW%bDuz zu}%76WckN4d(BR>_r-@nd;m_<$0j%F+A8HW>grxPB`1PO7H_?)|K+D4>h5B`M(gqI z?tLA;m#F9Is**`rl_{Av2Ri-H)DaIZ=k4+FW4cD2>~pBoh!j-4_m0~jE&uQb2@4te zo>%te8xyiWvK@5DmN}w66YXZuYP9yPaZ7(+wD@L829#e({VJ`fKS{83ZL(f&@G~888Bt8CYtYTIA z)MH*g6G^fKz=v_A1fkn>q+ykwBl2$h&A>70#i$w-l{OsQLEeX%u~wQ3#x3UBJ-l{7 zGc5SJ>$*-0dH<=N?WR9b1>Sa-KG=)^2Har z#yGFJCSx(oU>cpG`*#~^flAvqAH*mEbuc|tjE_rZDONSW{fzsN(qhe&jW0Wvx;=0M z^*N>{c%B9pJpX`(|FM;EOA=Y8%;aa^piv-asjct*rpt@2tn{k{XIX;&uGz4NYZlJ^ z)PWd6uYhaxCqY$(0klzHl5{(ZMCTq5FWr69zH0B}`E^=g1F5QL_=LvW)2*SsDN7w9 z&oOD!UrE)D5n2t^7z6~Sw>+8hY5=3^a*YshxtCr+gFotfcCk~w_4PFP}(Q}#j3x-GH2jZ*0H8B)Jk(G0k z17sxIu1b01yK5r0l_v(iIR04*h9 zKAB&@i{Dy~GCv3MYuy#U>yqm6;}v%_)zw)MOuO z`@c&y$!%*cIvTQaGQSAxiJzxQOxOq+H^}AGZfQoz-XF_NzHhONu*<%%M1m3idUd$# zTGWR$O0zn66K0b9O#n~BMd~)@dsBkG)7ImQg1pL-@OqoNc`hOVa`U`jV@*q@RL3qL zu;|^4$QGX6^Oq|=y}58d1zl>`ku!+i^qXI{cQ1x^+!FP%km~D}+clb2STs5eywx=g z)Bvauv>987CJLNb-tB{eenMh@$4u%&ewGNmG_LuF9yCYv3s`m+v|ai$RjX&3e1*0s zn%3ohA~U6Qep^+3+}N~=laasvvl;|8o!8j?ZsDPps&Tr0f(g_SH1SfqWk2#$K`~YH zz=qn@Vd!p6{~x=ymBshq4*Jb)KWObW!p{u8(~Vz7x$(=H*7F1t5fh2}Ab))8PwRtt z0^6igd8u3uhkgy8#rl9QbbaQPAhLp>w$ev1Uk58mM1OWv)1!IH#&NZm2S+0SzRu6W%&o z?*S}FBK>Ds&uLHM8l~K9kxJgh3VWi;;Dj#}`^VjxJ=){6{?PToL*FBORS|A@?UA&o z=z3ZXbq!4Vy~+Gtm9kJMZaAmk5uozjGI!n58>2koPva$C%mA1~;o0NTvW~1=vAgoO z{SRrN*qHcc^bZ`@Yb1=e*F&|7W0Jeze1jlvh)|sSwQIDS8?hJ^NN%D?ag-%_{y(q@ zA0=q?Omh6G!ncW;m^@(h z<2{_xJQWp$IPyypQ{`&cj%&O5=o@WDCa)%rcABmN+iC4`vmm_aZ|PnmeGTK48R@h{UKK^N{~19A165mvjG;fvPn9!Om=FesOU7>S zKS9w23TGl-OTi+w6&l?oa=ArG4zO*t^j>bHhW$dD2U4!@lVykFTIy__916=KPii|8 z$Q>25<8^z+ityW)@bdahJ_c-8{uV(lCmE!MHP>K&Q8@CpRA(HO8#dR?=WZ_}BK9rp zcYnt=DK?NHwo*H#_ViYXHX~3QIKE4ER1}*^bKFagg<19|RYy^ZynLryRW@6Nq?HmBJ4LUo;zXGGM1L4%iBM`Hc-I@TCEfSP6u>2%r6X1I7P7kvt>FmSrM6E1l&8^? z%`M@E!BtyF4Gd`FqGKih!yNwQ&uH&wRhd9SQOJL{;~tq|5%bq@w7dQj=YoX2fXzqG z+#HA%r@6Jw;{^-z)P3lPm`u^1RO7*`2O>Pu=>{W9g!%=*{K&CLF$wvO#D|mq4&`9rQuoBnmL=uO}x{JqFmN;#+&~Wv|li%(uA*XwX3=`^APZ8#0P}Hw@ zaQSLpWTBj)N}ZW*coTm_WAn1HR2P!!3jYp$%?%0baFXmqeYIr)=28VEPxCju`>KnU zfEY5<&Phr>nvZD)D_hUHwpjj5n_3Z|lg;VK>SWj(Uc@u%o9)oCvX-}=W<&K|b70Tu zw`zBj9MtsOIE{i>9PNQOgBE*{QL33yi8cscFJ%%OpC2kPnSe75lL^2DCdsJ++apDk z;2{swE#DWt4F?x=nvJt9$-5WtoXo2;l}|FKX#Sw(|AqE8+5nhNsydGSJFY$`}V*Yq2EPXf~RQQfpPznb}NLRAX9Una}Z*1BrJc zdYvqm%SVf$evtOzx%8A3Mz9v2Q5a&aUD|qovQk5>)nWboo^xqrakhTP1()%o{hI22 z9NtlBh!0%?pp8v)&f`RhED27T*sL}Ww5Mhm`Achh*5@fc^Rwb`&;CTR+qV3rO$?M? z$S)TPqJD#Ze}gC!wZz(PXa5j6fuM@CK4SA7p4YCQj%?UJ#aJ`T(a+&i+X*R`_iclc zxus>Q3?O8Hmz}5Nv?fMFWfK;W4xcHObzsrqflbwu`A&wOuZdx|Q*qDh5hG%*`4jqP zBjJ+1NXJBjROriRA~eiq1j+-r2dQ{R*&%+(z_O{=XR7J4jhDX)>3MP-PYhMRS(xRl z%tZGhri#}=yal{Uq$S+$9rI_20QrG2mY$cK#bSw=_3wUwnlC%hzWd|$*U0!AWgYVa zD5j%0w*eW8w<44k#OnbR-$hwuWfE zxNF&Nez&@`B)@w#i7?I0!Rce`4e0A+eAR2j?-I=H&jNWE33axL)NSTqQ##<*mVG3h z6Y&1q^8SoID?y3^YoGIzF6>zt_kTP-DM1rB@3V>b7!)i9aWKgrA2VPq5$*^gnNc$t= z`T#9J@p<0-r$DVGX4{~9hgv)7M#}*xAe)qSRZHn?X_`$HY;Md?>9_#T)O5VUq4*(< zohc^bo&72U>36&Je#v1P*>V? zxA=x4`eB3vD_a%h1W&Ib90>FYO=8k^6!=_oM4~2lpWpw>R z5YVD-9Qrmd_G=P61A(?q#9x2A)i*4ZEY^sZ2AyI$A2y{TwCY#1Tj5SyNo6e$9Sl0L z8J*BL=q}$l`w7D9w#ZN`2@twq$O5Os&fhsFDp;|IMD?mc=6=PDv#aWqY6YtlH`uS& zNs{)rR7-p4P1=(D$s+&bvS$-KCkrT)wB-MlEd19K-+dv7^0o#jy{9ooIQV<&XJv51 zx*FMMWykQM*8e3(0rQ3pI0KsW}5ztWo(p1oKCVM;>Ey-CQ zG{6dR2lr7BSzR8@Ey3%rc!yq*5Pl_l!I*E|T!*T~nop6Y#m@9V3wUU8ln@R+xFOCU zPPt&WlikVk>Nk1mU2H6Ye->ZUjrz>}15ZuR5IV{IHPjWg*eOD^)~N;) z)gLAS{Ml#gt`CqWgEZ1(p1YjO0;d~8vA7EOijW=zyDYteZ_qB1Bf*jNhFyi|mt3OS z3v65sxX9gnFL z0zeN-xi1;u*?ZWt<7Yl;8i3NU;J8Uh1P`+&N}q0xFxESQ$^_6RPJVX%2wuIha>@| zW<=Ni+%$>O`;hO-R1i$9pO)06v-TT<)R|8nV)nPGa}9j+4KefRyQ*|r+_E}-iBwVC znW_>>L`#Tkym5?c5BF}gy?-~W0Dxx|`NcI<`SCCRV9frFqyGoH_@^sL2cG9m45VQ? z2mg&Z{nNkw^V?P60Dhx#`euFfAHB)H_gpZ60+3QC@KElf|M^}2pS;~C#^>U^^z2vG zGf?-xd-&3c1LY;1i_{F+|Mo2aUZU>v&;J|257^28|r7wgOQyuS5H z9jGz?N4D}mv5)6#1TV<}L%Zb8;Kl#HSYP|+^|j9nAo`O~`9HKf-+fWQ(Dt49-B|x> z1^;^8qc@({cS8<==da7QzkHY3Fu>4e_dHKO|IH%)^S1w|i~oP;Na`!5SC0SuhCB|# zZk8;Nl9>)mHkzPh>t4|Kn7$5)d=RnCr_*f&2J`eWcHTM4Rtc~n04$yUNG~YGVneQ- zx!h!M=(7fH&Z=?fGT)bv(uLs>D-J0#F<#*5bx0#NRlWV@`8NuOZ$@j(HE3!^Ms9qc zh6_H?{*`$E25@X9^soHpClqKQGSg2BHV%Y5u>v-_)GAH+Zq-)62%0#$!z9K^ESE#H zXn%2e2|(%ay2!l^treXNT(i%*Mb``q2K3UhX&;%Gtou6xAkF43mU*)schIvukJ57zy|MK7Ao&-mx!=>AD&>{cuTyhP*=s zdXSorU6`uf=OP6lp14>t185=Yxnh-^%=6tDDJg8)-2{#t0?wWdf?9+*cq9QvpdBs7 zs#BwkV5XS&wPsZFIWerBlLRVFVAxIM9Z>&KZB!Arj#1{gJ``Rpvlk;zcZT`iEud7d0LE2R^5p4KYzL`ujAb-FIX^28luq7^v+vK) z3JfNh2GsSXvY4V$(4e&9QU|F7giep4Xuxce@SO!#${GS9UA1LUf2siamZ0b+$h%xhSpj06V zcArVHwa*QjX*>=ExCa27^#m;*%caxx`bc0n)ihPC{IMIHm7`E{pFCdoffk*@M77Fl zOc1|75GRI1K7G*ql5u=E`55VRaYEn?_h#s`?B|epMv3MoUghV8tUWoWi1+vE-@#nZ z6h=?ven2du!X7YCJV4f&*jsok9DL+&0Mp zdg0LkGVFryQ_*NNUD5u!`< z9zBfSJ5iz=j4?XVdmDAMZ@c&8-gEAEa>{>xGqbn1uJWvBttB72wgh-G0``KcihjQ2 zA2r)bGBaNX7$hs)vpkV#Wh9wt!#$HF;WY7u9K0RzURNzjtR>VRd;7V_BhG~`Q6vTK zmVtu>z@fMkTtPXM8>}QygX2Y&L&}%QD&!eDp#Zepp)$58vni-j;eEXa9Q4((>im!4M= zL1OMN^xQRm3!_bmUF*B86Yr~f8W2>=bbeJ@q4ScUsp!abaBDBqDfJy`e1`Mn{P=3Mp z=L8d4OCp)6#>b}lqNRNQk-NYBL*s+^=%+TIR?7*s=RzRH`$YRS^1H;|dNt2T3&#x- zDK>=YFaU^%CMP{jHv7%!?7Fe#UO9NSKnK!&&H0-U+EMA_eZ1MW3lFZZd)Et!!X`!g zLCmdL5voR&=7*v_pZlpp)`t4M4j#`6x!08AUtQp9JWr zJMIwC?e+D6292jAyZcev)ed735!x4q$AZU($C_Uw*T7A#4m~0*!7qknQ5Euq=i*hT z)Ao(O3~XHz58{PVo4XIcDL!7KsoRc~lUW;$Q3BPu0G0fJSV`$qHl$5rV=;U&*0VrT z#|OR$l;L8o3ANj(-`i358DFck6=qIw-ik>vVJA$q#NxaxW0NG|m5igVB-`!hC{K0Z zmcI`qz;vF>FparWoelY9CJgU z0qSYRv!{Tbvy`+1cu}Mu;Ivp$6n9nV6aflai}Fwl<86Z$C1!a(dVwkhC#wO;Y*|jj z3AvcOX?jX$v|N#*&^b_Eg|Z#&o}jq4#QCi2;+qnX6!1ZYhFnzqy>+e?{LLF8iLMCN zFFi4QVcdmkI{j)`%a^4SYw_$&MLO&2_9+?sUs0DB`ThNBRYMt3E zT~*R-?pP5h{qg{g-PpoC)?5+Ys3W#@RvR(dvsL0VjSPbl~1*n5h;a)0}Win-h?| zHdt$D343tc>rpe7vb_yZb7X0Z2FS$`J-3hdWr?`K1C3w9+RP_>xhe2ka_Zuo%++M* z1q5IF{cZ5fK_KL$WzThyg8gM#kzD_Hf%#Jg^)}Z)0IBI~G(Fxp_m@|OyYYmWAt2te zmC#(abuA?^+9#|{`*oWej+krZZ{En|m}=MD-73H_RcC8rdXePz6p?d>ewTHj8z(V1 ziGI(j%AV+3gCK%c$oP>tf;F0NR;eo5&n#{p!{v!ps9APF_H)d>eSj=2V=uy~7+Ui@ zs`7wFh{OO41>ZN7>;en^MZ`qI|I*K0(k^2Dtt9yM@9mg-R}SIZxI|f7vAPpD{QMG< z0dHvW3_xtOV2_O;nqY=C2@)FstVN6&M-yg91b;BEzu4cFL6+@~jAlBjxbBy3VO}c- zqR<_mH>oDO+-$_HZWgbOqR22qqwVI(lv+f+_n$GC`P%IPB<*>o__c|WfV!gr=gV|R zCmP{I8A1W;uMTt3$4&iSgFv2x8k`5J8VQh>&BeSQrXgB1r#7>&c~utKxteQ`DOE@X z^^xb}K(>VaGa2mm=R*;yO`fk$dyb#^;y&WQfP!zSicX&kYSB_3kgiP9WINHyw+^8I zyfF%>qR5W}X16z^5>bjaWWwmv1KOaq=IV@dN7UXta0+m-HAhMSa408`%J@*Rju20% zOo2w^UM9A z_CKA(zN@THB?mBoY!3vnDdld5KtrQ7-tcd zjWnt2AfY#hz2RB|tmG{1^sznzb=c#TVi8EE1w<4#XQtE|zBX$J-R#DGi+~mv@AmN# z8+*?@f^7O9tQz<>*&Rz=miQ4p)eo#5&MQ&Ze5;n%LN%)PnEGvI|y98f%!V!!rdM5)}WyvGew6mWsIKhd0}B>L;oC1_I)m%?c-8d6i}_ zw4~hHGqVEWw5PuA*`}{FckKcGgQtHOHiidmQcPkdZIzrb7avHF>~%yWx34adJDQbC z$KsF^xk8qr69q-;Rm2Gcs!V!67OW9QC*udDY}OkFx#;J18l4zod%u(D8&R$=Oy;NJ z9J1On#yJ3@t-l=h1AEGxdyfGf@#UkhujZ;S?#qX*VRjtvuYV!2+i4ZRl*4k(=XYYA zDkjD+AFeJs(8ng5lEB1~Y0d2ZR$Tc>f!lgv%?#35KA6YY`VC0Xjs$4OztCkn_7zP# zs99?^g6UIBL8A3Bc8q>n_h*4f&+Y1TdXdMhIJk4SZZVHlN{ijk3~Fyo3CI7w8n#+h zd#<@ANxF;z5ks5`nTsUH`WX)7~uv{jls^7p{ho>mS%V>J+G@2O7Hmg&REK0>EffN027!KTzZ1(acxACohy?@qy$C zyad`32V5Q8~ELxUJqF{J9JHu2LOndHOO~0+m+A+GQAWg9EG6IC6K+ z>Y``pgHAuhN3nkS@TihVKtg7TCDQi=-}bzD1k%C0?OOnx?wL^nK=~+{ya->Ph;d;( zgqzM{<}WKL`=IPuA2ft5bhQdu3P$a$r$jN=pBN(6%6to|KFO>BOHf(4M) z1SXX5p%xJdRYZsD@Rgt$95I+1sq+NB5ZP7()>6;VHw%(wD!f4FMMrDJoXT0T=a=fZsv_pv0*E-fC8_mkB>MS~r%A49Y z`5#o5R8K0RY}gr8?*tYlg7aV7b^~mjcpVodfi`Oq!ESbJj=bS>5&vs#ooC3gFvbbB z1SmXT=ywM}^U#J{fM`NFb(OYi&@ zmzgP)_zVQ^IrR1W5(P3N18L-9?sF{2#;B&|qK2jk3B0(yaxbeQ%8!eF*1G8lZ)|-IfN7#-+ByYusSq5vx z6s&pBHUikTDP%cB_?dve995v@p+tS$qUDH<}i)Zg+J330s=cz#6@pzg59KEIFcNYfW+swS2SunrQz| zg!HwK(ds^CUUMAY48hZsc9CyEGOPt^ELxGe_2iQ{CFlwu(!6hh~(PK?E6VG{U6R^DMYaIQ&mX5={WRwwqU*;P)Rin zUYpGjBb7Ug2Zgu{>n^9$WK$Gd)Mnw$r|O?E`uocc-A)6lxexjC%(HMFtfO<}R^EX00sVFC%Zgid zs0~Rj5$zki5t+H?t1%jju{+|sg%o5AoNw|3wrwxM{Iv@wgAE6SMBF6U-d3H zHi!d2_RIc5`Un=;nENK5=x)3p8DarS-gf~#1`wEB;zgU}c3QsbK&eh8zPV-B=a^w) zeX(27JOC*j8bah*%Xk|~k4jCS%1-q!T`h#fbVWE%F)0PtDV(1jiR>2oOXI9IbEE9c z_HW7c`_BoH-(IX9w`$j^WvU&rA95gb?1>Ej!21wWkX}4VupZO*qvFS@Gkc2`uKe6<@9O76#Vync5{k za;FFdnP#R0tMfzG=Dxm(YRD2_(5IdRF6(&iB6kk;impEMw)p+qB;<5>79d#bhm~>T zv*-<`JVD*i*0z9nVFOX=Y+R^?)I`IUw}F^5e2HBaC9b99)zB6F;5$ihC>8+(W|@kO zmpx3%u4nx;A5$K*Feb{HjvgztpNzL*M8}oAbot{gTTCQpml7JAe6U zkCAg?+M-pl?mGq&u-@Orb+?9-a zL(p#8y;Cwvdm`U<*Hb&wYXwh};&**p!r>U)Z?eNYkfg@BVNAA~bPg-I<(+Edhf!To z_R!D3o(qK^p5?hd-mi3h>@e$mV87dW6Ndm7qGry&wQ0#&y2UetZcj7btY9B_?(@>~ zj;C+CsG`3>&_yvqE$OgRFD75tR4xBu*e5Z!l6d1?(avc#;OgXqPsZP7cJhrM!q3%d z(LvF$#xoxnO0Gf0*f2|>u@RXY*EycrA}#qYwm}oz(~h(kMuG}eb-82nOu7{wz8(m? zumVj$RuKp5CNY$8S2B3(ozS?6oe5sUL%B;$L=H7qOm{s+rYp?{`y0-jTbPc=wULH9 z*n?$HCgC?^MA|z#O8h|kro0^k3{Nm#bSy3>i4s7) z+er&gVK$bCDz89MvT}19r1eBa3s^#N>dCv-QbjM(@k+CGP%4kB9_&z)?r_j)sm9Qf zadK#EaYM+sW28`dJTY}2J*r;+h(%ks#iQZp4Vwg%X7ym{K(&Jfan)L{UbxW?`gVwUWcqfBhD+OU>6%fw|jhzIefSJ zwNHZF3o6&yFs==St4kSs&wRj-2NLW@2lf`fWk-0I_^(c%rNY5qv7(z+mpL2BJgsII z$jYL>Ek27WblR7)wvM8yFODGAax2hDeM{u9MnX2eBE%;RnXP`v{M$xE9pl%?Dy-;L zOnM%Dg(1=!U#S;9BN^z=KL2Ejz%gE^U=!*D6YC<{ebx>%L9AUUf(eTO!PxLLu>TNF z76Y>)@YJz#v9`HJy;mt7pGCGw7TP!le}!OhaxgRf)bQIl8RUg18hz7swQnucU{sm+ z;TO6A`{^@!G!`U(yT)RYNvjui4T8`2y5R*kKNMA0sOC+~Yt62vH`LdMTI3*m4%G0U zZ;6-=+njP1-(z!yH?5~H+Hdt8rcpExp|sAY-N<=2DJdiKRDo*2wfd#&+^H(oy_Ca_ zY#=5Y&SQ5x_X_J_857P^Eib;Webopq8F~~6&J^O zpP+^rmF7_(yognvp(f)qO~hcWWzC6H0_@@qffyOHZ*EHc)H~_y>Wim*I*iF6#6y{HOlj$rpxWggw#g!Zs$a)mMhQ4i1mJ2o^;PJ`zWz#rwQ6yskMou@lIhD>pO>w z9!$9IRo}oCs)&g_Qe&81s@Ma7}6k7)!k=3cl)A0>a~Pzi-wDi{scLeRdtP8?l-65q#Lx4Nfr9#4XL z?iD=0#Z#6?BI>+8W%;fyWOYb>s?F0oG{@*oj-0o5QxwnFW@2(BxmX8T;$XctvYG^U+gBZ&yn5hm z!mPAP971ZhCK$VW4`dEK*O>5>eN9B5O82P6Y@p43nnkTspP_1{ zxj?@v{z*PTaNg)EXtmWCsr7Y5P0WRLK^{q{?vce!!?2MqUbpKTby;|m9B%K7LUWwB zF1Dha5}!F*j*=RK>~Ft*%>6r{Ay1azu664;JtLqNrs^ z?IQp=HyAY(eFsoUc)}8e$IBhj+kwApOXz}QR<4>~5epX5d85$i-@V%Iv1Yiy7LSve z!*f!f*j@=~2Yq=D#m?j#aQ}!e~(CmTb>>> z9cne*0{a%O_zUHEVU!-T=B^uD!8pjh_tY&zRo${lPRuVW}-usH2 z@GHV%rBx3+XLV6#J>Cn$Hl7=X{30hS4PYJYvDzM5Gfz)#URe|ESY{0fQ4HcCI3`HLY@SPmlj4eWRajIGNuykdGayG zj5x|*_#zf3BSviEDfeKB?*1+5J zy(qoI^2qbu9i&*i1=D-^FJ(2Zi8^_wwKfqsk`c7iiWg7u6QnylPrSrT$#RTyA>6j= zNI$;v+qt|t*^YeOP1nq{vBtpBF-6=_SycPOI1HYYFJ!RB(D)2kq=FLtV4N8YWUtw*N8G zQXy)@l4i}gFx@YQr>u5Ro49_;&3bEfK#4VmlOdl1c{mm4{5!BfJRE2FaMZEqP#S%< zs|GiD&Vs^n@{E5kD$;6>4uW!>Yg>7B?h>HXlTHV7tZ_|=3k4*_y>Gl25Ka@#ef0!Y z78|t-byW^L*Pd^V&Jm+x_LomG|IMZS-vhCRft80o{uFW{np2Z|gG$6!@@(r9K5r2P zX27{iK^C-)^}AzSHg6RAru z{aut*cgg)C=(-iA3LZy;fJ0&(prey($7olmVD&aFLFnbyLZE^zAdhQ2d8M}^p){^v zZ}7M`a1GvYO$scq$&SE<)$jYrC!A&9@;)Z7p39Y+=)JI>pyw0WFQIzMR%Njb-*H?l zwI9dNaUR`pN}&Vc|}&W<*k!(@ddVV7>pB)FdM4>jv}-o;Xh1r3+7g`%s+TQ_n6E)m3Vat5a9fW>)@{`+Dx>7eSiCimP-5HP zz4*7zCD0qTf#!h6Lw?}n5Ws;S%8#oarXl`8ZS5)%XjRH*6P>} zn`e#=jR6IsY-m)r$iavP^hm3-o=eZ_IiShFw^cTOd|w{FEZ* zax>R#RMge)1TBr0J)vST_0k75dJkup3quY=23HerRIlEReegR(?ss>rT53l1@uSKf z{+lq!@LR?M`yIiyH9^Pic=PXHWVG5Gb_+|b-y>p2T9ohQepX8nZy1m!6ScPKIoQ9?P`@9Y7IPS+*L4Y7pX()=>W@;1?cMcuiT;G#3v(g>aHvPT0zo^D;*77PQ2 ztaaCAvKcjpaTzt05{yf$qgV4tELDV3EIDkL8_&vBxr^$(x}94rUC*2Bp;BRF@4Vj-`);$Oku(dYb6iTu06^Y8OIPjQts551ynF222{XEHv( z@$ZYP96V9&DR*-JxJ7!-sCj6`VVs04dzttP2~ap*2G##wCFe$Mr|{~Fme8@RzIbNb z=zLknL~EhL5o@%1>rlL?7iT`W>eVnPbMkh*-0d)$N`FpU>YK4(I8I)+CB+*=S9(Il zX1I0jK}SVWtrRq6)xM;}JW3@SbYG=QWA9kA+C!O8gRfw`t{1GWFjef9xtjx4Lo~dX z7f<-9&G-ki1DrEWz$$?cb~aU{m|UP^EBzT~`3h|5Y{klWhg=mr-?oYK(^ zE}RZKKw?7ENUX{&EM3&U0F}!>P7I$RdTyl@cuMrxCy`pR)?`(Z1Y;@Ls-b^w{Qc3| zhtplX1|^@}ofKd?C_3F9_n4-HtDm$Dk;mcZZI0CQg?ucvRf)n`n0U7_NyCs0{kG!N z=YtDkOBRgTQw`jA#NiV|1>!-UNj>XOdy19?M6JqeRNk9-gLE3OYN6^BmGOArq;eye z=g@N(6NY-AQsT1PTPOWTi}=&enm8|w)+YXAY0d=D>Zz> z3(kKrEJ9Y#VO|b^aNXzc{4;(w(*DDQiVeF;9vOy_RVRb1zgM?EoyEVu@R7$#baQfHax#gz=Yy@1J&u{rF;?tY z3NO)ie(qig^QAGV>aKZ_D$jD_b=Yv-;o8XMF1nOx838 zLwmD^H`fq)@w$+dJ#zF*3!Q5^#uv18Yr}F})^}Ppsds3F1HgJhRNs_V?`J(}$BF$0ljzzI(Xm2)Dlv3G_t~%~+?1@bji;#Jp zSmvAp*1i*>{$g#mI^d^Z)*mm&DXaLa{aXT!r{>X@D2DX$G$Yj@k0x+|wQZX7#{dX} zw);YBYZD2W@dLS;W4gRiGSc2Wpo8|ipN@Pn2DVedEL2B3k}L3i8)q6lT#{}kkOjh; zChk$$ZVvU5yNbZj^u_^Ha1|f9Woq-CB7PN+YH(cJso$u2RGV=zY8pAauS&or3w#j@K!> z9opgZxu`*S$da&fJ@1`?k9_8GCrgm{GRVrFn z%I71iJxwHHDLRI_3ONCUfD@mB(J>bsUH|B&6tv$0o?D_awZ%-*m52j3S$&hUo)PuD ze0C-HILKPO44kbskvve^sHnEDMP<1DM%N)I$F~MBh1{w3G*zMMiU$83O(X!PmRRSxnc!6Kp}La(Pp=9RdFbA>8A}TGuQvGKed^_#r z4zsP;&M|=ZNB7Q6l!+p6&uWRs`hL2eyKcclga$wrTC8SiEAe~kzwad*cqedo3=H(` zDm*-QgO_=jR!O8{%9_c%>F_q=6JpE#v@MUfbdEZ7~j2Ri-0%q9I7(EFWEC)*TFkWx4Zz#$4e zZ(3oh=F__|Ss zZ9Z^UR@!*3vTO%1$&rzfF{8U6O>iUJ^>2WQvq-cVwV`HWnuZY6 z;weZOo#d+50~#4hHeMTOmcW$(w9%Qkih=ocgWzKZ7`bzRlt|fZ@ad(Da&y9xAf9+mQW=X-UExVH&W{IYdN3psn=I&k5L^*Pwm&}oxw!(s z6EecCwv*LJ>h-0B7+6@7g>C~nQRvqNHVP0o^Eq{zIP&#)JNkgObYCo8E^mjCfA3yrBa{mq_(k^2ry07)sAAA=3F6{9Z z1B}{kTN?UxB(#33gsv(?!uUaNP~w8OP~|Lz3s z;PmTpB&7A}_+aNg&mcW_jr%%&(2wKvCk~=`AF17D4&cW@4y@uP;{e}7MCHlBe{5?INhbjkCbDHQAHv046wg<{Wg777fJPq>8c>4> zNyzoXDBO?CcxjSa{*I>+UJC5d%D-k0f2;QfdiN9=%O&~m)dE7xk|e=p(xSJ?m;uN6 zIydg$oc`^8_hmOuV5qhtroG{#M(?lqAo5-q|L2Z0Va@Y3UIp{#elGtI5YmS6H+JbN zM(`U5fzDRWTD_y@6yc2QQpj452K~S9zxW#roH$l!DnP22kVw1BFJs0d9^=#U>$iWl zWAlVp>zxY@`}cKgrc|;Qr~sMax}*uo`tRnay-#2NNI)aP3Pc03`ycTC36k_*0po|#a-PX?B3a&kdlGj;D2B7 z)4yDm#kZo?L?G5~z;a~5ccX#Dt#hmw(E3$mV1DUi8yp z{^kp#>NiuA&a6-ibCtYg*R{5OlLZa{RUMFLstVo*7*-S?n=A@ywB<>EJz{U4h|^fV z_$=3!^e(oy8zZ-=u$C{mNXt}8}|LRzt{o2=0+oYu>DftHkm2*o~R2D zft(GtjO9RvKA(6SKt`UG*~L}(tP}{m=e%><4v=$zSgo1pyG#E+tcs~ zNPaBKHLQ93tLL@xLIuR7l2?4ziTasCEWT#Rpd<$fAvB48;ts(7?v!!~`!Qq;8S#s+ zHs0Mmr&)35yko_NJI@dcP z^jp-+zoVUhPtH*Uw8}#IUvJ<4s;Tfy0IMmDjQRS{|0P!5F8S{V@h5BdAAQ@Q4D60Z zSNF_s1j7Fg>L=5{03YA_n?L={%Z+jXf%ss-*zT`QsQ=yb-yY%r{qE;)D^Y#ZWD&jl znE%JE|H*WIGsYjY@&Son|AUYJ;zb$&aKR(zN)E6?{>~2kX3yR_Dl_>4|=AiG!L#4-rc zF^;-SbwyE<#eWi9Fp>o>Pu7THBYbC$dHzHLvJg{^YuqwyHhQ~Wr7QA2Q+Y1<6PgFw zWv!-5|2~~wNsLg$A){&P`ppHzp;$Qts#X8k2gLBmrAMvA`~;sxvx?9M6sBbD)|{*8 zECCJ0xFnbT%@asybtxNX0=-b(TZ8V~W*VjDP~|QHWPti5~dkfM(tQ<~0QVIpE`lZMmOb=?z-6evfyRqVZcS(bP`B4jitV2c}Awc<0 zha?XS>CA&?`phV;ZhP~-fc>nmC$}5)+y27Dv;7Rk@~(=(Re(C$RW^!i1mMxTs*R~> zbi>Z>qKiu!N2XN(foLAyDK`2Q;5~e3%DriMek#CawEn2gO0N!`R#9T=9W42b&vqKIZa>u?mM=KalXmJJ-yLmV@*$KQp z`jBEW+o*4VotG6DC+6EIm@_-SgLjSv74$v7+f5#!_76lVE#Wm)_5BER&^yt{cg4?B z;mHJ(9Gdz(`A#_dkt$>7o*;9atzcScEyKiZJb1htUWioIvvAG z_vqy!yN3P=;)}K@Vvd^MMaJa3T5{NSl;bA;H(7veow1|Ald18pX7f?fdsjKNOAqIP zM)fxhMo7$qm@ggwCgZiLnW5A@-kv^Q;=DYyt#<>X(B-*tb3>mfqPpY&((=Sv1ZR)N zY1mycFA0h`0g?b#GrqOzGXOn*Z29#zHUVDwoOXZ7^Ie?{FFEj;DNN~Ulbig;lBE}m zlcHhUdF<2Oxpgt)d;zlk!AEQ{Y=(#TU(k9}xVzbQ<#p~}40nri`CE{5KhJc?oP45| zKYb6r#PR7eW)2jGUKva+m-O|o9#48-o>18dG-EJEHe6Q*cv=dob5*mOcmeqBMfuvV6C} zPw90gaaj`$(xa{tR}Qa-jab`?oO}>==ti)h&F@zLY!ZbR`!52mFC(XiZeol8_s*$O z2VSlg*Z?r>q+sWomk_KrV>*);bD{S`Ft=4gUAcv}-nYFiMv`tc{;rejw!pyW`T0X2 z+6A+uqw(0uuj6(p!!vdZMPztcA6wYzv8d(x>YNQP@9Z8(6D#+qorJ8Oc1FJ`|J<_jq86(GZ-pB~FEv}BX}`~C4o=+@p171wP^BqTXkrC7U1OdZ0OCiJ$#1_* z@Y5Bl6heaa&qjSI$nw?MHAnXbPinhi>C@4gS%Fy<<|4BAM6G`17%NifK;KoAwo<+YNyOVpWa72 z8}p*z5VdK}E{B3kzK#LRyMWMCy-G)K(0SsKkD9o~QUMV9a(4{(;5N?{A<0*TBA-LI zEl7sUOUXLA94Qwxxel72r$5%|RDD;Zc??>rMXG`jpUeEhk_1+3YTfoqNv!wBm~9F6 zyyO~=7o2M~59{+h*#s=!_KC&GR%sF)ptiiDLdKmsBEO&Adn_z`y!p?f)L7vFUMSWC z(<~aIlA=jU{&;X{y=1uip)IhAD|3`{H?q1pA_?@|6?Yf9O{W`=I+A#c+|DVl5WDoRXH7JNfFof3-+aeLob+@iDbNWe;Z~G-BlHL4q0{*n)OY?W7q4f9ZiPhX{2Q$W7QKf$|fAaCV>R4H~xU$n>RJ(XC#n ziyCzRB=`tr(VGIkHI&9A>7lz`;rXVZ9_~4}hS}RT;K;PxFqN*GPzWSrw<5@)Tk$`sV<+}b zWYKgjgN299S2jkE+3jR!%~}9>zExxET>HX8DoqeLJw!<+JjO3LdS|O{p2r#wTSy;K zTUalz%k^Z{KuR&`kS6H-V;|EfK(;tn>4P@%NED}CH(xq8`lQH5LIo?L2y|B#0nS~z-vj^py)s`?nJxp% zjz-b(k5mG$i!W%7>lSR1)@UALO$_v2yUe!v0&;YDvCoPnp<3?<f5d8|=1XKLyJo{!10t~6Sr?MC#8i8_ z%#M_~RG>MtQr1z3J5(k5ZSO1Zbbm@;u0p^Rag0qnul{o9uh#xIu33k{r3-Rps@ge4 z2rykTCxK0vkI1md6$}$2Wk(4lT^dN^rry@nspo!p;^_6rZ(Y-5=j`LojF?U|4ad2v z?o*bz`huVr)0Bq_xo2hZD-k)WNr;DOe%$5eO*@$d&Z7(S-ey&$UilVIvTXj*%1QP&A zr@!fL`lO!20^ZXwX>x5?dUiHZ;b0%&+I7v4QO7hWO)%5ZWsCA9Cvo@WDil_NU-w$M zpRJszhl?{CtvTcZ{!g%B*N; zIu()k3s)<$%zTB&Zg}a0CAXb^G zX}1USFXe8Hmz%BUDeh>l80}AAf`aSc({;yz@G;Y&j(7EI8N-Vb#-Q4h^&o*|4pSq# z2W4-{tjF#nbcEUNY>m>)Aqo{D{A~L7(ad_EzRxjdV@*Bt^UwZrZ=FYmw{FL@X(+|e zxFrX2>A(KDxBlO6X+b_2OIg`9ad<04_id=3Zk6>82yM)bCms5DAReyvlchvz)zlk6 zmGJ?a=hn%orTOTW25qk=lmo13fMqC>&LRkUxc_Jas7LV}lGnA+J+h%m2LTvSqDi@+ z2QiDkeAj=Dc&dctoHc6XzA0DnvM>qG8m&;PY=gkbfx)MlR--i$DoKSZFF_}&0_N+9 z{!5m=)z4PUfq?JsxSpIbe3+`FS5*aJnMnewl-!bqZJHkdJpw%9mz3|bK1Q7VAA4UJ z7UjRKtq39@peUUNARyh1Al)%^igb5_pok)+bPgRebTAFr!27Vz{_nH* zIp_Vy{=C1(w0N%S=SEWB& zR%F>enKF>V2pxuP_aC|5gPJErQ2u%Djt28a`PL@MpuVWF+y$TZ$ko9e#t-Qkc%aMR zdI8(*#@UUC0jA{32w$(V=&)QIFQ%&wmASdBqdF;v3SSK^&2e(ot~a_UtI?F`7ZBvl zR*5I7*@J;Re0IMuj?u7pJ91|?XuS3H{B_2 zct-YaY;OZ*bo~O+pG1$q^D!U;gP5jQ<1XJNVigf+Di(M8{CRJ=cQ-J~nD4U~SOTW0 zILqM6?pB{7qa1qli;8mBTduF}g39YxY~VLw*ck6&lSPTo)-dx(fu?L)%Qext>5Nag zZ8z-TJFeCQtit9@4XVD8h2Wezdbm4v(?kLK6GJn84PK3n!`(3o4M7FNtb#`JM1r6$ z*JPN!AKYX!Vx-79s|()W_@)g4%)B0;KJngUzMd-LnwkvdCQV&Zx79Si<`-zy#dZ}H zW@4uyX3Hb&2Zw7OKhJ&gW1Xpe*SFsRD{p~5v>03l@e8&f{1+l>R5U>FT`X**1lT_s zOb1urOpZjhTqhQ*USF&l>6F^W7Wvj&Z%Z*y5U%eKzk%or*hON!&m9}Hn~Iyt<65m z1&MYWkI$2$5?%mojbn{l!z!JJ4)GEDmeO=7?UatfzJUKm3B%Yrwy=N8L-1!!N7Npm zTRRzy_0aeG++YW2mv)@JiG`>eM7)PaG(4s~=F=}ZEHY;2awM3L6XzO&n3ioAbe>z4 z>9D!_PE#kc|tUpUu$HGK>T?yecWj;fQ7 z>uCT09zbIlPN(wfRqwhI<(O=f?Ub`T?gS(JTI|NDZls!_IDOFo*)j<-rMrHfoTVJT zI_WU6is%H0pRRaT@QmNASz5AluQP!4niyTL&XB%f7o`7+{vdW*LDh_T=7LooKUj9P zsrkR8j}vXuGo!G@M>ES?+5^}fz)XJ`VVKdiu`MKI#`oZmLO1;#phcq{^$(nyXG++x zF-Tv5IsN&Ja0^h30V_`ECjp67*PclKr@N9>sIoO`{_6;s*_uW4>pO+I`x?}$SF^qR z&U5g{?)=Y)Nq=16!W>{MsOptc!{RS$fRl~!=7vsrkVS0)dnatC>-3aT_?~R?I7HV- zMaDy^{azV*T~eJUq#-vChCODDwTie=CH~oYHv;BCxx}d>(CXjV5+pXTy7~ssmLEz3 z%av0k&)1*@JV*7HEytOMPP#HOB3{6B(AM<(GU;EJ)8MFcVDkHLBvyJU;->uRvT1`& zh}?kLN^5-t%j!>2L!S+Q58axCsFj;(mpjSz96*zo?ut*{-sc45b<&(X>)%D}oGc3n zmS)ulRMrYHU3`;TI+0$xTrIW(=E`0Q4cY_H0S4o?mO+npI}3?{p%HlS7& zzkbX)O!g;!Y^mCwsp!8-CF3|@LN=>U6BS%Fl~SUeh1}KH-PYIxwJ-3P-+5OnUz$&e zoq7P)R5Jh=17JadlEBKu?WSy%A2KEEeFa*2H$`GUuu?@f(`broegY7-+ar1eD!*xg z8}SuGs7(%)1Ir>jn&ZI;sX70hhaN2{wF4QFrt9bPc9|d{Zd+)^ zXwbt2wFX_Yn_Uz|1jzYtEjb{~_k53}uLn|?zH_wf>_+TzAC&d0a`SoDM~EN-G3!tF zh=5>upbG+NqHdB0@VS2FLCM|RkVvp?3tcm^-1Ba7wBXqxO0Qq!DS6Fyl+ns1t!Z_$ai2(!9DK;`Pg)|K*FMPIv@<$E|i5SHRKkyFR27{hp!D|FF-_%asI z09&`!c{?Lb@e&UQ>7hvjb@#Axi4`OL=+LS#F-oDs6lYkQ2h-pgn17Nu-WTZdQ zkQ{}~`SFGueAUa|r;TplG8 zFcksJs=tb8hshT)5;g_ZHoJ=ufsK*7q6w~jy0xh{4s%qMg%ktFYE6iw%qhj{{Ap=iaAO3`X_Y{o7qgi*}zT9$mN=Q?WIz zKCYVU|Dr~iMaNo5lKm$H{r>xT_n#2-pAdAD zoc82CNx4 zS0*G3XL9Q*`H+QMLPD^A41D~lHUSL`=%pODn?0(lH0W^+_kPZz z1QfNMCryPCHtPeKPW2~Q(b~JUru#$NX~}BnnwXL2ay)j3Cz3eC*p|j_T@dbr4J5Eh z8C0qA7*KB3{=upKD=zZ_kS@SjqXH$$INokO7gY1q)~>$;b#mI@@i&u?1t^&io3F_q z2UNB<+oFSji{;#7JNNcxxcpZBb=lOv{@4Hg6U6EP6rYN)dv0I@vC#wKlfdM=>UaArV-ESqnx{2s%)!WrB*lO?4C+Cly4utl`6&}s{1l1K^>{2ffw9OrY6p|ipypd&Kt3bzJyb~mD_ z$x?3JN{EHqVg3bhv5qXj0S;HSxDT<%6<#V6mFPeF42zT}Ep;{}>!DHW5O z$HrR^b%0$s2IB)1J^bT;myYc#OyyFp0IeR?uU~hrfGrMDzdJ&{QBe@nwKDoyWQXxengHEd{gFP&W4$=(MTbR}Y8!}{Rbyy6Zlis+ljhJFWCr~Oh?VS(a1kON*F^`Hs2Z6YncQ)G z>2I6LW^39E)Yd9pAX!gwKe`*%LpDx%#loTED{ zq;TJeY+0lvY>v_F%%hp&wtANt>|3TA%wDrA8Wt{ivbZ23QF<}muVM&7R#x|zJhT)w z=BwV8$9m)KU7G>Q@~(dhIg;HwsA=I{vK6D@=|d7Ic^znbjQ6OGR!v8pK5>a(s_si&cDL1SY7=!c274jAMK3?G>jZ@ zG>&aDB=ctv6#(Mg)D$)p>dD$rad4dhT87^oWk@jey0sD$E69fkj#BepP>>w%CI1OK{2y=9Q4qr! z(f9svVjYJ<#7!zh((E;uB{JCrWEzQtX#PxY0)K3P;$)h>ajQ}>P1X=gZE&qJ1a|Fl zKG(O#g?8V?ikFjAwYuJ!DQPJRxGcAB^14(;kVTmXkTM+tlhT^I)k+}Ks%itw$i)W9 zmUR}aHr+PJ(E7?^(0-fY;414Tr-tQ;X7xm^=Vcxvyg2c=PEi}ww=lY+oUVh?y>NA> z7Wl{w$=oh4>6rKcGBZWS;ip@`LXK-?FmEZNDQSqO8&zeBWwvt7J1;gUNZCO;?7m92I}AWR(kj*;^m`B9 zeNzF~-alk{hq*aA0#&m*)~tCYENH_d4YNZU->E`yDem3ZX`otB}s{t zlckQ&`d{%-q^bX@5c983S1$Q3aMaeM_e!=q_GRc(e-ZCR{N@WPhw$W3`3>%qv6UG5 zNW2(bWY}`IncN%CmYo+{n|7`_=O?GKlXQeS+j{5U+FiB8-#l%7mbt~7yqTd@Gg_=a zw-p^68{jauNhnVo5^#4_r8267iuhsT75mY<k}@?^uU}G%=m)Og7J(;gh~*fLeb+I zxQsPvdgc0x{=(gBMxU1m2w`O=(sIY+n&E1&o)h&|mJJi)I}(o9!>DkBA>W>JnP{8F z(IVHf)^)0(QQDHaB8|IC`Y)GyDa)On2!h|+3Nb55{$39F*8}=3U)0h8k*wr%&%QA$ zzK4s1qve!!&Wcn+aOWCH1+2f}U7hXAN}H(%HWq$?9?c06qBUEuoev0Yr|Oggq=3+% z8NOli>s?yDUeUL*FYwc^>K5!)ed4`()pu3d%Xp?a^cZx0QX5QFeeY))Ur5~_Uf5X) zwU4a&_^?peb@Bei^)9DA-j{dEftPC|^`H53^tD`VQw-xFSq=D%ic9hBPC7|j0(WQETpTGwezE);u4hYVY|Ks0hqH3}AuojdY33Wp z9W~=P3nB6-0iGu70$^Rp_fRYF{9aducI^f0OM{x*f+y623w?kVcCjBW$maFSW^J&! z2<~)BArisUged`m%B7zK_eEwlL3(u?WuBZNAHPnUsoVcCGI{2_^E4S%$W+mBU!BkZ zYCN$zJmB$@uaSF)DTYb){*Me3KEEe`@}iDFvdptv`h|Mqr#hQ7p*r}ol3kKRSD!bJQYeJbZDFMNw{f>k#OSfyk7rLEV$`4)n?{8z?A2%7r&IvVL zK2q+r8#8^otZ$?7GDMtl-g~*55dGtaH`C1$fIEjvC-I2SZV>KgVzX(uy+>CA`kI)jBeR~2c4Xtjd8r98A3j4atjwAD zxb9aF6_2zDR9T_r33>GzEG|A`GoRA0^xkpvtuU^ebZ8lzZpHqIc_Gv65JH8g3H^p%xp???r}IPudrzG&y!@zdpt`gPUQ&<)XhY zjR|AI{Y@9djoIp(*|E=OW?i*>#WTygF8flMcn|b(2k|bApMDHOV&nK5MYdc`2j77y zt(QWbC|u}!TGOdgzY2QDfkyW?$i97xX4X?Dx+5XZ?t95)@Y!uO!*q{fKGs}8X{YpK zOh44;4Z{A2zZ4v~`EP`hY1;4Kt$Dgu-P~LE;_EjjpMRR#kM#hNxYXl?NlC%ht}2M{ zlpU17Er+&2z1Q2yv*X+QJo(!7wT9JK`yDO@M;n004LW^yYy$T(DK^KW>K@(^P01hs zLUbV6v=Mt$eyIvo<99iK&wwyRe0}6CEX0BRW&AQ6W=IyApP;Sa>k+jh8o(f<<%2qo z42X(KATW$A{WTymOM@T=#g4G9vWWNBi2iJ2#d|eNk4$%k=BbumWqIpBvgFz|ZJ-*t z=xN^h!8_mfc3dQ26B@3UpD&m?{-9v^>A3fYRK+jGjpZ}pWDw54zBqckgRTcz^@!V+ykJU?)eiie-7~EE2pV5K2*;l&E4@0m9>rT8d0#pQmVyzt&3@pT)j3bIk;w2w7Wy&HuG?Jff% zOHdI`ZsK$}gTBGRo30r4n-W5&N+T$X_RGam9sSfo|1N#H+md(G-rA?zO;Pk7-KHv; zj!#^4AY~$)o|VNNQxH{ymkDfSFwK66wXx-Uh-!koaX2g~5xkUBOzC=yn}MHnHw>I1 zUTqOR{0{7K`z4r16J+g2q=uoHgbq?pYshbdz&FNQcM-m!#9;5sGy#q&B%-51O zCU6McES^bc#2n=fzLP9lEBa?MMD@dYErLdH``!N$5R<8M2rs9NP^6>{?WTC_-5}#Xx2bxFk)E_|Hj9AqF z3~}|p4)_N2Y2vcvJ$#{+`C`tiKsw3a{oklhffFpm{?)f37LoPWk>}sO@B8sRwo-3l z>zR;$!+d~4py>f9IrGHOI}HDxg%?W$751j;lE`0&EPpcr9U`Ct>d~N(`3nZ|PruYr z82I^ykz}VC|K9uSEC&u!CwEco-*N%5z|9-(#CxO`|1W3Jznz{~+znXeAjDMrx2zCb zKl0u1@zzhj-^ysfPVM!LTTgNJ_K&E0KPU0#hkJp;xyBtj!~wGGO;>%mx3z~Bv8@pw z<+_CP&^96332-v*u$vDk;r~2LY-*y4Kv6EH?O91V!9Y)PgV#9Nx!ej@_^UEBX z50X;r{Mg=JnWZJCxbXN#?o>kV*#6qpQbwWjh8CB|VJ+7#EZ(^Be>$Z9`=g^W&PxPQ z@bIh8d#q8I%3PHw{@wZ}c0NxQL!_%!3cg61m;D#eYg>+$!pH#_i+U$1{M^XiZH zbBQ-Ja^h*Q#cxc57#^{VoKnZn$rhTIPlpin~CPDN*_U&Xf_aRF6aYX)Lv zW-Z18bp_;Bj@=4<1?|_5??63J2Fn<~@9t5<7!mq1-#M_J-=$kraC~}@?_m*tj9HHEdL6;g0(>8gyZ>E1{8N zd9|jl->S4w<_+GVbNKw^ss*ZHEkm^H56mTGl(CYTZn ziy;;it{(YC`MgNP6eZQN#C!;&eLl11I`b#eO^wF9vj#^8%9~UkM8bX^x}9;FrgT0z z6(-ucUkOR#ul2jlx7=kW_#%1i`Mo-4>BpguU0ZwbSNn5y_;E3Yup321(VaeP4HSK* zhdl02cE9E0TnM-u|H;@v>u(lY8;#LyP}{n&4%aEizV=!6`sLQld+jg<38;QEo?$vg z2X0`x5T3nV=YmKHa1?C3y_Nlkp8lQran!qwd7W1izRxwOtCUEIg`B~Hpr{DHu@r{1fV~L7Sy9nTY;gQa8E^7pW;=%o&KaGB*v^*`9 z0&z3%EPd$rJ~uCi!4bY-Z+A!Ty{+Zq?!&pd(J@3yd3` z1sNanq`tuS(L>*XKmTc$vGVF4AyzE(`?>t9C~Rm%Qsb2WB$#~vb#iV54+UcN^fZ0E#Lsz^B3o$;0QvuCl9M{aV$J0j>NVENJ9vxvs4Q#`3!AS-Sv|wOUfj~6KoT4 zWCqHwE5&SulL$EC-mRn#0EUZsKC`1a@QhbvVL;`t@}|?>0UO9b4s#xc+`n05 zjjC}qBr_={<>LA~z-|3pF1>dcX3ngin1u$NJ8xn`Mtk&b_Ur`Tu;jDq&LV#td}jy( zMNiw;mSXljq!6y+`2@F8CZ>r~Me5!~b-p#2Jgg&1bL@_8GSej0hEFjYH8abFfP@WP zvZM+cEmeMS+Xy;^lzY7!|zuYk1;^ZX~cCLo!|@a~0TH~^uEcF>s>A$|>U`_Zj;;l-2n~xX8e|se-nYyrO>+=8$e@8Id8PDRq+FSw& zWqjCmM0?`E4olt9mASM4PT+zpA7KKA^!AX~Fz$$)8=R6}ZH0AV6FtDqKO!k?+Lw!qIs1bwY>1V#9}?mG@&yYo%p~s;mAgmcjwU&zXnU37IjN$5`Dw8q?s!Z zUweza4sr4-gWT-!9g9b3Eyr4Jx?Tqd{=eOVZn~uEd^5%LEf>Tw+Fe)dVi*I7Y>D)p0KVrlk zj4}JU!01($B#W_9bI?ek2A=R#O}hnWz!0iyjf z6x>o$Q@0CX=x4Gh8%_p(EDIJx4y2h$yHT=gwWn%De;b^z3L3*ZZniN0dH7y4MKSWS z5hwl4`XbLXWzh%8*Kc;eMsK)KgeaxF8Wa}+F!@V}){8H1u9_p<%hnqnkc2H+u&gx` zNM5Rx%gEL8u`^)#;DZNFjS+*<0=wGmR*BEi>%IN`U>_TY^7n&?up3)pW{~LoIwPAzl{_uR;+qP+3RBth(U{E z)6Cds_?sloChC{AjvbKZO0OqmDMbAYliNFBZKV*E`k&mw zP-lgGgxCD1D<9X5OGyn@qr1QY5OIL68x8Q4ImawdIc@*`z%MkmC+>zaCrz{0_eHy! zsKoUd;Us<#L!cCIA)XcvQ1Y##v<@GUF3*17cledXP_;jOxi4}`M;;h?YhCodPmB6) z+7?B^vgvrBT6~0YT2mr@$6fspa8Ju50DL*;xPV6;J8GeYAi_q6kXGNNE|l>LTi(c1<`ba zjG9g(EPktkzZ<+@vssW!uJFI=a`#37WJ+QnXdSpm9ORi7pv*~OQ4#$$0Lu*u3U%Rg(aZr z9W{CC+7Oq(Z=P=$Ph-<#SduusMSM|UQ|@3f&RUA~s{0CH@VvDjic(YP3HSRGyP&q( z#Tt+1ETR~z*SWD4{f}FISZcOtdQ0qGBy?$)yT6}fxji&1Z@w|VJX~_EjHyVuJ%Q|! z-doqZ!*QREj+WkZg_ViTyW1n`fw{M0Yl^xwu2c>O?GX7lW|V0zyglB9IMJm@W%OM# zZ@yjeH0x!P9WRx?)2B(4+Bn{s?^@4Fec9e>T&m~k7t)F5>(as4l?Kh_1J8=nVb5~A z3a;reJS?gJArz)BP_HjOQuEgvnJ`D~OfEbL^Q)jf@L8#F&(nzr{oKx!)$%Ybl5_q#Fm$RTaE>k4bB$aS<=IBRo2kr9Cw&QFKi^ z>kA+8?>2oB+1Pzd{`(Gc8u3m8i`k$PE2N)3KQy;Y;O$hc^94v91*+-}*{sdOd4AY< zHcE>Q#V#y{e1r6Y`Vge6tn>@Jci8Lem%kWcEM{3W0rsaL=K_Zs+8A-OH!`X9~W~|HL z>D$#V&l_xFHk}FF+!~R}o*pG4jdZC^+&u90ZQwy`vHu)Y1A*u^fBMp#rXEk=%IDEF z_QJD%c`Rc-J{MyHyKs@FUp5=k>8${gjE&k1-5#tD-AS+)(Gi$c^Y62c0JfvqR!_(= zEw7@py1mTOffkYZUH0h!4zyB;?1KJQP|o8KMcrB)a$|TR&94YFCpp9DM`@DBpuqsu zpHngqR78ar7EDvzb_olFva#J|oGT0OOPV>Mx>LI}v6Pr$7Zk}J+Y&04ay2mxkH^-D}_))?B8n z&o66EAJ8>&4lHoSo74XRcM|ms-J9odD3)be+8ULInHdR@Ik$bJO!>Sq4kzZ;!u)QK zt2QX8Nd4k$-MX-Yf|!LKxXmz7!1iqYn+l=t@qmdU*8Qt9DY@g31yS_P2c}kpFS#zl zP!7wdzhX@U3K?GwP#d0xXx#FP()? zd5wbw8JH=D*_vdil}Jb5W-g784*_!|w+nP_5FdN-#scL4=#_A7ZgRHTZ;EGSgt(&& z;ctk*7ZbB25CO&N=N%n$*7O8@Pz^7&jxAWAp1T3nkTKXpdWRgo%^CJ=^49DiGcC5D#(LR&wnJ~#3aJ}u zf&5B35SYHAiboHm?>ESYj74zbB`=%~^fy=Ue`70m_yOGH{MEW*7rIdpF%_b2k%tBC zuIjc~>Uqo>lV6B78=&?x6EjJ zw}96MIq>ydmOn2t+q|lXFBC`KZYwm<&;8wslO_bm)p9<=sE8$=A!E42A77&9v@fFt z8(ogJp9a*$$z(St`jw9=Dm|nbnOy@Ydj!5bb`5$+()c*;gPRX!3n>c|tbWooY$HFi zKxfvgecY5sw%^ zA~^_4dW~3BEGs#mf}(gu?NO3v3kn7GjN77wmz87hWK~Z0qT4gP^+p%H_T8nYOCh#V zF8P{IY3I)mKgRH0tW(+#Qg5EN&wrU~F8v5v9>8U+Wvq$0<)Gh6=-VQK<^U~)e6SBM zg@iGcFm^OwdCHw>jOA>+B*!RcG)6|B7w)t>{Zmym{*ujRP%haoEg&-$?i~_`pZQKp z`qP)-ObzgFC3pff9LtE$UnUM%%<=8ab)dt zgVe)w6Y8bjcKMYUKn2Is9rxl*u}^J%rtwu}%d#b&V=2wJu=8RKj~*n3Ik-QhDG1Pa zeQ1m@5C?}SrwoGBh>Nd!D40xUnhmC)HYFw}IW;sHJsExt8CtLq)keo|2h}tI>UTi* z{`&}Z0Jlf9TuIx7n{+|umAMhX>5G8RE9zJl<|8pr)m^HFS1oKOvd~HvuXc-L7z^KU zdvsX~S)9HkUD~bO1=NUQY1CO&_17X{euuO%te~0u2~;9pL?w}lA8sUwCTgQ@`$+)< zwMuTLyoHGRVY;6i>NKLc;r@^8sPgj+1-~7T7a!cezUn7BqUNT$y|EiwX{1>M6J$Mp zeZzXyyK3&ZkrXmFidMWh(qJ;P;sZU{QZI!CGxv^9E@B zVL}EZpnG$Q_UJ6$+pfu13XW+V>-;JYDZDq~N973jsp`$4>~RK-swZjC+Uc}aKL};7 zOoT{nY^30nF@~KX`z$Mq6Lk%SNnGfC$rn29U~d9>46T$3R3)`+&ud?keL2w+$5`r{lq09E)rC-d(&YP+kepS%^h66&TD+zzX%*a9t(@?2>^U$K{YIi}~ z58o`ugNZdcJ&(%qI5Nb#!4!<`P1PKA3#%)RA*Q^=trxCqpC43k$|NCOBumIE6Rc;| z-k7?lkyRh$De@jk|!9idgJR0U&8~zXO{cZF+jZZ?^XkVqEIt3|s@?@I_ z+Z*4A`$fj4w&WD#TDOd}5;sq9O!KadA6;#Z(ZSNi46sCDPdM64myW3u@GJ|Givo4Ir^g;M_3?^RB94 z*9d4i?|RIsU|I3Q-t2^aH(%@xK4&3gGHuMo`9S>sNE;kJ=xjt=X>Es$Ox0*%PrjHg zqtq4tq*X6$k_Kk4{#bvt+kvNbU8;z}e~2@FX=mHK)I#fMWB2Ut(M`n&2ck_h+qwre zehpq*fDisu;jTc!MOgPo59Fy>LoP1x_oL5Wg=z?dxRXAJ#}}et+M|e7v>-OWE42#c zwBS*Mf5cV4>xcQ4s!bKB&#VRYrI02ih=UC1YB*L*e z%_@R}Wv(|JqQ0uFRj2T~ZH4c`Gz02QntpH}N%q`i{3MXPAG~QKang$eZx=-pv;sMR zG(u*ZgJ07nf><_V<^5bzP<%S9uE)nGU&{(GY$?JUQvHs5^7Pw2zAy7MlcK=`E0e!e zWUXZioV~(d4gqV)eSIW7zTo4gr|s&T1kbrtd!H2_Yvau<}h$jm10}2}aX`2*RM+xzHwJvvKS4Wt7 z?b?DPI_8Q+3Q`2j3?X^w_%Pgce2?*?>x`?8LjyLCbw-&SWh+25*H+IgNHZ!nY(pTl zHBm3?oxCr;D$RafBMRTn>oeerH+uz{Xr63<>P%|3!q%$@f^iD=MWWJkDi7n;nuo~) z=#S-THEcMGe@xN$G-DhtRn%bS+u)2P7mixyEct_EJ@*ckH|+>6w=PvUo3_?&x||cP z$NLEW(NF^{K4e1SK*uVVXAG9ycqQ zyqHC3wwRW#@2Y)98m%tivO&1bqR$_%`1jj_K*#%+TX*ouvG9>Jqles?DkS)-z;Gcg zA5tupAN9*eG{BuI(GFKSjb_%5kxAbG+929is{aAZYJf%s%jpC;@l0pn4zF! zA;r*a5T5Ix*tE=u!+xndy^eEx4D|TqxC1D2>@GNT85ZNow3{9z5Nz~XUZ$2S1|^Tt zjoSEOduLcR>5kbqy(Cl`wmBV#V4uIuAyi#3w5d3qa`0L)o3UvU&eL!Or}52)a}NsTv9RiYzo%Fw?E` z=w}YP?_r2&TaD$36WKTEKLFc+}?K>0S zH@-$&*ecaY<&^Vmt{06|l6&w)i`ko-n3VWZ)ywU~LR+S+sgo+xLWGz^OD-Rg*X$0C zs^?%^$#|j*&CaS!^ph{go?d0q!wpzMBmq?wRWXYWQc=wXHeEVUaQvP`(2qsQu!xNb z55I*E-7J*&6*-}QabD{bAk=u(K13Q4T9ili;BgReFLp2>%d%uGNN4Q#yseBMqw>W5 zyqd=cxs<1V%~JQvZLE20KO%0K>g`AbG`+6MK=X8W0BhP}u-+hUSwwf*si9?Q%aGw~WuIvU7n$JKK8p3|1;vadg}Xx& zcYyw1mdp>Kz5U)SiCm*AqK}iCb^$!5so9%%&Q#gnQr@@5{*$w)QrAGBX>P#Wl&?>@~ zkNic*S=pYDEi`B%hJ3h7O#nud-`*&Rg|9pbUlv`-x0>qg?6;c`LnWY7o8MKzX8MEU z!$;}dNq>ejj_3J}CdfIi>BYs}2*6W3R>ORVw~_eL!03(_rJAhgRKNVOv;gh*sbVXM zqwOJ)**$AxnHSmOn~U7n0C`_ERmxs~u0t98+VqWj+Y$kdh!YF9zU~Y{8S_gx{}7VJ zkZ-BQfqokes_w6S|6E`G(W5^Qy*M|2FZ+UZalCJKnabHTp@e(*3Jp4xy_i23>Yb}k#E$BwR{-%EoH;ztEykA4#?EG$c>FmRG^;_w zP0K|_kQml%gbB>wSc%g6B11(l5A&u-V6`Mkx?jiEDy~@|kjA*UCAV5yNJ1W?}`CFMfA9v3d z5kLZ@;R=4uk__rsB06^aSf3LbTygK7cn-}-wtA1PL?edllXje6l^nrxQiqvly$Z=2 zD?DvCMQW^d#J`NK=+W4WYYg=CjsCt<<~6eK;72`?iUi+Q&icHYDGE7)QW(Ef!16Ga>XcPS02 zB2qCUrjCp@3C+hZ4D}iB1O|#&AWVQhH56^EWH3~1@z#&52`TN zQ#U|=wq!4wraS+0(5o}0q#s-Srk+NAdgJKP6%2IBI-$Kq<7<{iSoL!1{8}lhn-g2rrWV`HoZ5j z#BtPxO=?kB1-R9_6}p|jA&Rt{UDafk&rz}w%rhhg$I^|njPizSLbOdx2Nyh8vac|2 zhuq;*RC#?yKd0b=u6v_1ljSsoM$3<=NOOEDu6ivlDPlE7 zKYLIr;0_B2@~D?S6n&LI!W=Czduj^V1RxMLqCj%Hnlgmy>djJ->b+;k&Ni0azcMP^xeQuu#fyj~YXoJ|BC}MS) zNAG3Il~(G0Zsb9dFk$v}Y@)*4q!AV4(tx5&%as;{1(kCFb?8_ThGrWcmTwPwR;4br z^1|*A4ETxP+Q<(rVik@tqGn<`bh(eQ<9_3*CxV@azhSQV2*OW5BLNsnG4DC2v&W?z1<58?oikb`2o4EYSMj0e8r_3&w_QXE|!KVhQ-81 zF%R^PooV|h_*SwBFg{VE)4vnDym?)fco5BN)Y>yEFnP2dE4Mtb5_qAV(cv)b!nS>4 zyW`|mh6?c&7q?Cr8O$iIV$28BJC(Mc;Hyqw0!@P|6Q<@f`)2>SaMSxpUo!7X2Pkxo z4r(NgLV=k(=w!6r+KGk1>-pE^)pSnW%0;R+rpf?YjJy-nQ;_MbirC9$;8i@dXj!K6O;;zXGQ?QC8 z=-73HAi8)y%Si3ZL??8;sHg@abkPEqcMe+!@ zdR-B&J?mJt%}X5}mi1&Z$>bIW0yv~DXHqe!j>+S7-a4-UURq>`1|K}@pt>o^C*#fF z$gO;KIsq2ag+Yd{*-%OKrf=DW1=jnYwMthtD7L~`f@w{noZ}u?15NMe`A!i@>S-~K z8_ML*9uh@|T`cP_7|}#xldNjKni6`E-dagO;66fCyd8nn(?&z+N_<8Bc}G#$?QBdy zb7Q6PRQ+D-2zRG2>16wKJwJ?QheAU)V;p+B82Q++XwJfkD>^n2Vbr?^`h6Xj0o6y9Ytu-y- zXKA{bPI$$rnL92dJVUceLP7uu*#cUohw)cOxIj3NB{kILKQ;*!V?qEyir;KfY0{I zu*zm?z(jjA;Y>}YL(>eTGJUU5j&K_2(5E}4ZglM6wE%JCTEHyiAjkF&6evd=`S1n* zA*=cCO6H&Rnzc0;R6uW5k?}hNNb;EmXvCreGhJN*|F{biE5N&cSxU_Ese5WDOsgei zVWK@|@oD7DYD6xiJHM*Se|Y@EQVO=5lKw*ow(Bhe>b;Q#1yXvDzVuZBfoH6jk!>o^ z0Aq%Nm0F#Kcn%yie>7j`i7I}D+{>e~Je8IewTRIIfg&M?`Zc_FO^FPpb~O!O{EEd? zb2>gv9Zaa?xL+cwc?$q@x$kq_)zkGJDPLATQPbkv<~$~t^K86DRk#IVg2=f|8qhCQ zN(N!?$>moC(>~U#)3)|>D;Ma~OT`A3`+G80Uqg)ZkJ^9IF9{Pq@bhtJL(_QY7Kj~7 z1N*LZ`0ck6TA!W+xvO;{_nl@dB5;mA6RRy zbzNtl$8oNj0988c?K5UhYnE3u06LrdG5QS7%!X*p1$FQY2=u0EUR9&DKRA+_sdBa= zIox-;g)zC@tNZ3E!$U%b&jHYU4SrdzY7A~3Vh_1=oe7D380L&0 zvJhUR($~PNEE~dCZG3o2wnL*NW4DLHwJU6Y6h({O0hk?5k+1Wr%E+>*<{p%f=c|Ia z@|khhkHhL#1mMi|(Jt+{o{V;`lTO(FVn{G3!?8UqxXS_K^PI6qzkM9C2Dcoh9?bZj zRWEx>W89rwlzvxIZ@!Zu8$Vp0d1!4dJEVQPY^jrMNNjMZc5v($?&aU4_}?zu3J6wO z8J%mh$W-J>b&gb?MTup>5_Y~mBvi%w5!9}Q8s8(#iNOsIG9Y30E;PC*E2M(6KJgQjUj z`P6X}gc&K!nYt=JCVLnd$oLEl;lxLL!#~a^&tDs zSdtsAm?XJ7j05QEtUFWP^psLHSx?(9kZW)6>O=P8>}9m5T8pO0fLspB15b9)cc>yx z?QjA3S=#`V>UjLYyNMrjByD-m3Pcl_>UA>Du*eg1=4FX*R1eP!Wa>?kD_NfQ&x+kQ z<7Bq-D#`2{xJEhk$;Rn0B1ZYLAx`}0RKo6apWX5<|+?WOX8ppQ}#bD2-? zSu!`qP!BbHE1`buvhfTHH?PH?&ted4gsI;7_e$jd+bOWk_564sy0PI+Km9166sDB^ zdO5)O;jtJs&+4%d4wqmiP9QZ{p?`V<73J}{y`;?ry*HsK?RoN zSR+R7;avUros|Y;;VXfwm4M$}!uUbk4hjEg6)*5!GRfBacAwWe)dgnnURzMB5xBKP zHq{z@G1x{*JYMP}cr=sr>Q%`Q{CmMDu<9O{DB=xS!=We4k6D%dBp6rS?z|aN@_2Q) zr9tmL*xlNqso)q45Trs0Uuz1eYjHa0#pRGe9qvWi1$eIOAUGqNNq)f*JPFFw^Z~Y{ z#jC`Z@QB;0YQ?uLG?piiuBq!8h}reY?k(?>)Ai+u8p3wJxuvJ*VSJgx!{yJ{8b$Yu}Hh?Zeis2M%toUiePWC)LB(x&06Znmth zq+Vb0M$`n1xQh5(fK?hvkbf7>gE?*pxYLA&qxuFiYwH=qMaAeQHpkg#1trzk^faN~ zYg9KV{aP_(jYx0;P-Zgx0rXAMdkB}#6svfUUM8vzx(5tUZpMPQ_wKQAIxU-tJOyB9 znj$9`rq-v=1)8aO`&H5-(R2;z)A%T>OQWvyl`FtkW}H==WcK^m^J@L-5n?$kQxxcZ z-}AN$N8d0dz}O@^HAsm(z?o)I&b~CEqr-64$`ts5P79Z}RMH6-twRRS9nNdleRT@( zdR^M(1hzdux$<)DegoI7CmSqwqca7{_EBg6uB%vNEAa87uK~*I-mUc9T>#)@r!7fx zJq*7eOd7KLwbWykoqJQ@YP=?2Jr3q-5pJ8hU#*R8oxUYzUem2&tNoi=#0J}0qOY<( zDnxP@U>)BnRrY(LKC(Q@edaDfyjVa~XmtNxxUkr2_>N?4QT=Cr+OSJv`^4z$%;GCB z<^ZGN`=5SdC35XSXL}3rJzMrKiHwX&^9poe#(2^18M%o-dVF?)L}+#8dyC@{-X(uM z7N3oLR{?;a4^?!eW75fhF>_zc}JNnuRdY}sQml{Woh1cr)V`U!9 zQJ6Rwn(B6}g`HKX>c_X^EAMH!<8vD7uVYJi1xnrTd$Q!^ZDzpAW%q|`$(okL^BvZn zmrUNFukd}2n%n2EAhQ(<5YKUNSB-cO5~~~9QLfCc?le)${b)uuUaBj^O605I($=3m>nn=R}Fgv zWOwoms(QWV)jDeoe99X;3P?Bd(qXm3dX?rsIPmu`&u?UDUMpdatj#r$@j(EiUsB+C zD)c&n`*U*V;;viaT=!y~SAHxm_ZV7aWHSd@#qklAWWDp~;c#00s4y){dV|VNd(%mP zd39UAcg2F>Fe2g8HCTsn39(`S$G3Kw2UcwkPHt7Cc&*2zO6xq;i^>f9R1dV5 zmVZP{DHct;PEJMG@m`SLIsk?l4WRV*Zco4Mt$eLxfp>wSmq%Bg8ib0LhU(NExb`68 zdh4IXUR+t7F$UUCGvSCvqmPl5wctwOAo2mxr~bYUib*OqcJTeFTk%g?@e9+d%-?g_ zgP>wAy7$B23#dHKm7%GY+{Lohv#B=gf1Cw9mH@P3?UFKrR5>;d} zC)DbX^~c>TS37T;ITDoC)UX-Ovgq)ORTg6CMdDTOYH>{r%DUO;Ri-!dR`F8lrci)8 z^9zl1*=ANBCN81XPZp<5G~M*!2g0IJK_$2hJS4gdq6j<`4zwe#h(zn=393;&FJU?7*0lePQvA8JEBJq88w9AmE%q~qn+=!av1eiRfbb$kN zx^CHLj*DNh724VL1QaPTxDgT%5HR?BotT)IS&P$r(ZS!5CLbHnyn1Xk_-H>TNoK{k z65u+ASOXJn{6mFKdDXxXZjhc<{{k^xSpb14S3c47Ky7<^>iOa;x5%Dn8ssL1|Ell& z5B2WTaJn2r_z(bocR5`9q|jA<<=xj0ubh*@853L{@2>|qoeb>~Z;*Q-$<-Yy)jVC| z|Jy@oh^lz3m|w-g6Zyg)XGnK<2nz8UG0CjAU)ehuu^8Ndf=2O!L2Adcjrn zXOanfvwSF3ErJ_@Zfsv7R(O_pT)xol(?GbBm`@BFWlnEfpXxdx0ZbFOwIb4Jgh`B5(&WW`fb~Bch^id5fcJ$jK&%>apSSLD zb2xh3^l>MiS_=C&s@jAN0g9dQ86FbcNAThK7H-sO5Tc)tW|wGk@~ z0N11epam^%jeyP+;9@Imb&Szd;%Eam641OUsAu^Te7`{rV$7# zIkA$m(5@2LC|C^a13F%I@g)E4IR6)m5mEziXO@xL0}&b|YAd~o1Fj;|OL{VEfi&_MksIrglSU>UUn4Gzq zqieB_8_$E$mYn&mp{5rn8%1cf#6HdRzAvw+dnVKkQaMdE0BRp=NV@%iDe8-Jl%0 z7p=qc7I}LVIpl2f{-=|&fW*fFC?^4+!>_6LS{d)Z?fC|B&E}MfaP0cw-Bf6L;C1N| zai1F1ZQ9Vryu)#h&AED9E;yZaV;kt9i;G(Pb7BnXBmhm)n?tI`moH)S!*-EJ3mWHV zbBulP@uN>8km-|mhKYw4ruOcCjWC%k*L{VW+5g*U{0|HNH>GTI^r9hG4-Z+Xzme`> z0!p!xGAS9t9lSaCF*oY4^~mVt*e&8**2@t~aUiCZChx4#p=&*Pi0DGcg85z@;=?xW z)k~b;hz(|_Q}D2aS5tF%qy7yq^*-_vFc<1(s8p3vf~CC$&4l)j?m+B~uJ}Klg^(s5 zM4a6LB3&OKrB{HuX+6&p5h`xhCs)@=VXpBIT_e}|+I~~P_yPp?0!-!xR;bH+3C`+YCeeg1^+;>30~rqLLlaZxcOA-^B{E>~y7!q!4ciF5E@D)iq|c6B;&ibd z7~EEZ)UNru`}pD4)lJ^{bF|-ij!H&M@A>gcTZVhitIq*4kW7=xnLra78cm`$+Y!!k+GWcvkJiu!5rm$SQvrJ89(MwrmB~;>LhcJ@u+{-h zlQqP;Wz19DBJSWp+|GOfU5}B#mhGd52#rq~{vHEKy%%^o8MyBf`vpNI0Xj%T_GBVU z8T*l0K(|NXH(J!4a9KF1iyi_b3Azo&e|7|BTHI=isO0)J3*cEpLxCpfZunf@bR`L` zp2x*q#sFXKEHE`d$qr>yX`uTSpb? zMVjTD@}Jbiq7u)g=1>m}sXnPy;Tw9>TP9XlTzukI&7!GWKPAbp(xpg-9r z-mDGvBNt(PkYsSIy$Pul^PoCO7?050AO7)fWRwZU)&b$+oU zFJ&%rj{l2|b92~YJgvn-0(o(jI(GjcFhR=1IfYoMCY_~^SM5$mv!2I0J6d3z>)_=t z`2A`2lB&yj`>q{}H1`9{K7vxOue5q&o-*4}Spw4}>`SzWwq<$7YesIhg}K}h5P&QQ z+C!>HYm{CMAE8)v0wbp|H{09Q9y_nyl#T*1=W52Dj|3P4w-o4(V&p%mFW%a!MO>qy z^2M*XAsd!?kvVoctA%lD)7PK?7zUsQvV!X8fXpIxAi$%9FTvIFKCi{J{~cgP>bZlV z{4uL5a>h?#@Grqdp*PZM#a^hr;PGu~$~?0MpR*7DValw?ig*Lm)B?JXZ}T?50Egu} z1*^>O6LoVtlVX=<%0(+%cM)7?VL1>!mP<(Ds@}neh&X0vYZQnY(y{G1jlcGjBwn$Ygjr135U

    eLF0nTsx#Qx=!j=s*jI6*jUxkFkP?C6*Mi*o^PYj(PGOzc``1TQl&%yl7^*e`j{Jad(V2N2|H- z;yS4E5ma=+{9?1CH(x-)WaYeuDy4bihcjmh&R@F9Any5_3#!06V*31;pcllNI#Uk} ze+b_tc_Fvp3#aQkr^Z6n2t9GJ*2RT`9hokmL4&!9Bh@ca&d2m>O=Jqku5pfocYIc! zOq(K^>Yjw(Jfi`U$$LL-+?vB;@hxJ1Y5aj6?`)$&M{#DLO;v0)yJ&b=yj?tNMtNaj zyP)~Je*$DZ=ZQRBx2}NLL$@3-voVdGGq?G0cGpfrSH0UBz<9#r&{+E~+c^f(g@NT}2 z$VvRnoZ5U7Obd*iAN@_Jf*|QCspq+F#%ddY#Y5yr?q+ z(*`A9nYcH-=a($mYJjLN9DOW$IA7%Kywq@}{${@VWZ{NcR+9@O-EFX|W1fBZln4d; z%V@kn)UFLttu36e%X&zx}H+=&^ zfht2hu~Ah$&KWE!H|Z$uC{wmjvASz`W)c!<*)in785`8d8*3G!R&|Vqa~ce1&o;Qd zBv3yX_vm~JKKdN?#wk*wb#{`K-x-f3T!M*vz3_F?@Qr-eDIuvHZEmt?`Cy{o+ay!_V~1 zOD?9}`9sOP#Le$jxcSZcePdSq+3Ni%zmkF1q;4`AYTjjt4HQjPUE(rPef8i zGC9=q8A?arPtKZec5-L5bj`C~dQ8~pA!wwX&~7&vwasaVUUNR`zBZ&T^!+NgrpDZ> zb);Hph8(Uxz@W_X0wtz=-%DyP)^A-ejzca0=l)iBzdzrdmry4n;^r2hiLSz1Vf10_ z%v>Ud<9oC29g7+R-w4>XN=;rbm}Tv)(r!02Je*^c3koaY4nGj13x}j9j)aAm!U}Dt z!*`lZ1D2gBjx)^SVG&^L*k}|V#A7POI*$&-6S$|9V|u%y?WCvx+B)n9Rast1ZV5s} zhL_P7FV^v|mghA+7@4}c%n#l6@0|0it>z_}prygA3*WCPUUlrNFz}Pbl>AP||FHv9 z!9SJ#0|;W%9e8w2!)YHBiTNt9QYW(OIV42y@x;S!sw~;g&*y9+6J|kgvs{cGVdDpk zh_|Wc+L=3SBrR)|Kk;~!)*YoWw@<=izpmmSKJy_%Z~#>pU=UtYJ(pkY6r{D`cHd(w z*8DpdUTV|i0Vn4&tHI%=Z2AdngNQ=YUIgdr%qC8j0+oyty4|CXSRuoE^3n2H%778p ziZ=qbcM~V!JN$%1)=2i;Gi6oev;5_#?HjwQAj3vBd*!wlF^f_jf|a9EZ(QVSN$Lwt zt3|6Rj3#nS>BCE)f?!EGXvO2uwRu*CazQ+kGcRq{Gu5HN1HyDVYVYA&wQ}yW&+ydS})k0q0Hk%LgKO3wPd)U187tUJ6dpHj5+Z+X+z+Tt#SZY(xm2b@28Ds?x``dBA1#6CyU(T() z%nRUA-JqXieD#G)DzN7q&4_x1-h@rFM8UXcjiK)-Y@q>a?MjR5JgF@0D(o;4EVfn~ z`!2g`+!d#@T-flTpP}ofv(_V@W2OP4n=sh^WQ}F4SxFYGZ%sh&U1)s8qw-=Hnnz>! zyTtC>U2n%}(Omu$c=HkLAu(O5rBbi$vG7qte)(>#LQ5^Ziy+yke0|o4p~k087Ymb# zaN3i=5uGA?o`F9$ke|-0j(QIHUd@gHCi4mw`vbpt$EpfbUyjc`xp_|YWDnuC18x6- z*`T78C7_AiL*C|lqeSz5$HgVz%ry`L9?`y@8ZAJw3VGtH{ig6$jkz5Sb#Ap}b{OF} zJ75?fJXn&vT3V)i%c4S;Ki5-d)3zF)tzc?2J1R7*o!YKdo9-Hp4ly=nJD(q6U6#EI z4WNTJu}cPO9FAiK-=}Wq_^&I6tlKqCeF<}LSj-;lE0tfJE!?@0+!C?()rHkuqXYtd zOPLC$WQlz9T_={;Wq6=Zqj!JF=Eip*lJ4w9Hh{{gtKOs_Qm2KO5?r@S4kaQS_J1UC zEY^O$0l}``a@`H@tRkiT19$yXmBn$FvO~^hkv>o_c`sdyPd(LMV_gpsN%upUV$(@x zI@jYP_ier_W9hxwn$suU1cyo?`phHvwKZaI&_H3jo+}%8NFy`H20MR}>#wJaIpE*_ z9r$B=1-U6n+^{hXH$F;RB>KbcO1yT-eOq@^^6}`(<$@%_tTayRvN7N0k+JCz zLk*lcI%fCgI{{~$!`ozs;fx+Da%4*4h>BA0s?lnmPBurp^Fq!wP9yBcewZdSH_)al ziiah)d|B^k)N%A}vT*qmLUmO}b)Fm*Dy&N<_$0@ke%ke<@mBsolFiaGs&zN7TE`UL zL6KtMFj>2iWnn`nt#Rq+`a)Fnj_-oYk&f0jH)>OgN8R!R9dbf>mS+xpwOm$ujMr|%u ztdd*FXi7!WsJ_Bj&lPl8^zfte?&R0-+}ID*B!<`~pH+%Q@QvTcg?|a!+%~9-DyGIiNc$$lMj#EFIza< zmWj{8tg9Mru<%q$;k*{wDbT zmt&5uBc{l&e5^btz({j#HFqli12RZh|3J8$qk32vEa+fDsW;_@qB_y$Wp8ggE@Ht` zc}>X&l%+R%i|IU$v^`*l<5=kK!sre^4_wpkaDx zA*i~HDPnzTOq_u|K7i1<(VkS_a&IHzd_U5djHJLU4loHBchG2QDqWpBP&hQx4JU9o z;NQr8GA5`TvKU=kb(eTdK>@!KS?D)~W&c^pSVG`by+v;An6wfONUd%o`0*$oN zTa}B@H+l$J-Vm~=u@TidR3Kie+CsK26e*{5e~J$h6iEQ@2TFStXLiN$2zl6aPw#s4 zV}V?TT+3Sck^Hc%3@)d@wzet{s=GZR4ZT^V^@vP#U)y~-jDEg0+Db>Td90OVkCioV z#SO4bK^&VETYPcH0*i6}o$t`{8Y;np7!;??&Yx`qTw8kV{+XTX(&tZmzX%7s|s(0v}7QLcR!06`D*-l2uXB0WtolgePbqNbo+dw%b1c*8J|5F%{*AJ{2WJV`6=| z+u{SLG&i~+e+1Sj&b6t&S%)78;pXIPjJ0479RBIHNSgeSJ<)LBwyg0Nd4Nqm1 z3)%?<7D7+G$$Fx5va%L>kFZ2^Z*SKIr*qOSwmh1;uh(5zK=HwKAPRpN%GH@|?)%5O z6DpUYNRLy=LbxOa(>DII6Y^dfp-XtFxPrp81 zoLL;4s*}H6Y2L!cr*~V*u)aq}$f*l{1UTUx;D6PRhrmvO=_fW47B%&PJX5Es@LWO` zB-*e8r^)GNNvtA|OV?kfEgR*hI~>THJ>=LdQ=e|%7@o%8C+pYY!Qj%qX)8UPyqP@? zM3T~0&x;D2Hv3%)_CbH>q&>ywu9-v-`m(w6xy;=z`pSM?IxhvX*{D#+(DaHkQ6Z05 zr=JC-tZzbGo}E?5Jtr*&p9~VYm*8@=FMNmw>L<#V>vBxuAQiYN{)L9=MSqW2!&U6! z8;sf@E2IQxzWJ^`#SYcF!g3HODgsv)|y(k^E*MU^TlsSZ)7(eI$mC6GV)ys=gZf#Pb`P(PeA4No(eWnm}_Z5J;<201P!(2YsZEz>;;BnhOI&zmeF!I z7!<)?d)8dxVclAHep{!xbkzh)kSrA(6fuSzN0yjV=4h5^TKFZnEJio4m??3-YYTb1 z8}`_CI9uaujX4Up)toEOs^AsoW$V2L+5?4$5%GXm3R%1P6Wndo>9S*59Om(G4$h1{ zAS+?Nke!y;)*WM=7B=_1b>{{n|S$b`djxt=PoCIJyRVlN$zA01Ub#i z9S=o2bh-2%X<3z9y|JxuM?m=?6&9_M|G3KEUDSPHX3%$#5Gf>eujOTHf9wjx3QYm5 z3)Y4Ys_)`~%&CLYX{DFFbfVmmD?_z(@)@q`h(MKuqUKNINzc0eOU2qT;n~miH3(1b z^Qa(+Fzs;%_4c5DUUQICJRKu=!E@9s`RQrI8^vX86+ne?5#Dadvgu}XYW+ke_W87Q z$5vbYSkTF&Haj-2?-;0nXT5d{{Np8@@hT)BQ0;V$(t1VE9mC@f&#mGQ5;&MGKPX7r z9^X2c4I_bQEe~JJt9_;IJZ@7kM?tMNo|a3|manN+c>LfGr0q09^h&$SpkIM|wEDslxQ7ZwCX;hi?kUAlg|73xe`9RXQ!xoIBq85{}8fd2y}MGQq{cWwXHx zZb7}8TPmA9o_DY_RlI)f52MaAUgWZgV;{1!72Vz$|8?A6nm2CoIJ!@%0q)Z*M}hWF z9yJK9Tk1<~ zmHU&8`o}~MdI2{HiVr>bQ!PHdvyKvw#M=DF6938a6fXidt)2lz{zp5Z2kbenq2cC# zvb_Jl2i3ddFY~W+B9+je!X9zDq2r>soUG8%l)FVoDrNfhAAFy@nEQg>ulZed>nT%T?t(2qY}j0mLsL|#pVNoWJYZ4kDuy)_4EXZ5&qo~5Emgy z>B<~PLwqvjGNO?Bmhi$H8sAoCHuOa7tAauX)9=nCG3ioD-B4JRX-`}QC;0W-Gy!E) z3y_F>e-1D0O9BgNs8M&+n=#B?%^w%P^6|~z;w7)FZ$^gWzq6y3`CdI_l15vY0$ea z4rplihnaq@QI=s`W>N(G*1-n8W+2Q@s~g&r@ycRyQ9kbKN`u?4T+PuWRY!}@I50dio|?1QUC82|d6m8T5VJNi3=rbiJ%PHQ31#F56w7T7d$^!=IYBq|MsGmC-;c?EOB8k?%W<_| zCV%CNgY!D+Z{9$KA>>I;n%jIPAO!ZC+NLppD#tF`l#To)H+8lYQJi+FoJD43?D5GG z{uG@q=Xs@mXB<|f7$)y29CRqlJk46BtL)!9e?A-dRESmZUwYxS!1~yDV*)#L!L(>O zvw(sv?gJa@xxU?RL{$+%u&nEHXJDm?N%`L7OSPB?Pm|AS4pr-Hf4!q389`{8TxS_j zxw;q)TCJac_)87{mj@@lxs)Q8wLIm*?BljfYVc07Kp0pkJDDN!Z`q5%Fb<*r+F#t~EnJwBsD893;(e z&gZI06oHT1(sF`pWmzsa>DjYc@^k#imwzdLBHj5kHrMOf$`sk-fKhV2^?xc5@sprgP~^twR5ollVuV5`U1~+{mQdDB#0h zqyA9{xCk8zk=0)>#eD5l7;93tUZ_9lR{34s%j+SFVtKl5dF#}>J27oRB)Ha%MB;;Cl7n$-L|b5S8lZdT%xNNji-bNA!E$?^ zie`yf#m5MW-@a`cn__vHZu!VmF^}q6HD!L~TY5dWzg6|84c*(aJ-n zb!LQ*VE@tb%oKo|)-_f>|5jIjIaOc@i3ET#Ay3Ts&z2_w+*D$m$@m}b1o3%IRmJo# zzgDMDcs1&@x0fK8Gm*gUAGD5?L zP9U6}gEb=q`r4qi^#dUZu{<+&V=C3I*m9tMc6wjb96`?9KbYzy#~-L-O2B3D zba{n#BtI2J{N8nS=RmrMhDhogt3-{nOo z1zX|j-g*ZwTXbw#iRtTpqv16HPLJ7?ZxrDQj@`Lm%dAIAcP7g+KRw{Q2sh8hNXnFi8Yk7_Z>M-TnG zAr7^ZZzFT~Sd>q;jSc32!swSDn-G;WQNrdcx{!5#3#blrm5EAP!R`MdfhOMw@~UuF z*ll_z)$&asEDx~cMKWBOGH5k{PNs0^%$hYb6G2bywt^xaeE~k;ik%cu0WA3z=LH!0PI9{ z-JDFjLe7or=RPDBkc8yxkEf0dYD`otZdR{ zA4Z_3di&|Tzsbkm2b`dnBrA~MUZWR&{&&!ONku9VvYF7AH~(SOcucuw`GY#K5$#dC z@iy*8P+P*VmF^ogL>1Pxz{7-BN26|KW`E>!yT+DjlDnX*g*(s!PT(=x2OU$wk|ikQ zH2X^XZ}fWesi${^E;ff3e)eDq2MY=kw&GV5_?n9)6jaDG4TdbVblw8#!uC$=X47e( zw*aaTP^56EnL-^%{9nVZ3~2_#9Zfz=>=U4FXTMjD*sV3D$4qx>JS=Lr0RU=7kgNzD zyK0_`k{Ah%zA0CycPZkLUO0?o9vw-MX(}ItJFIYHB}+0rh}`(8R?+ZxDrFaU*V(b3$L4rWeR9dNeQo%@OA6uiWd@=f)SmPF@=$} z(eYwHAihZhR*&8d*rO;ix2h3Z?1`nEEOPYuR#`)6{g?eL7BhNr# zms8avAFg0V*}9Lk$7@kV(`wAibY1yBHk;E{bHWjkCy2r+YRz#2MGu;v{oF(wqH?$C z@}S7RUzXU6HD3pvvTKF3&^4;I=USi8)1zI!+p~IaD%k#Ymb*;e50~9ZvK>ZaR5vv8 zq8DB1L63j+b*3CO*EbKl)BQnw)0pYe$E#&qH=SX5*~Q)L8S&1CXT#Zav++sB2?&m` z?5~sBLa11&FpY$k!`&=A1^v7F@@3!gmepJhql*7(GZ+-FN<-8-h@*s6%a2&D-7Q79jaa#ku)fJP4=1{I(gqQI zZ)aLn_QE&3{AKX+zU(>G$o;9_LK^S>xi>MVUYsgYyg9R&YDDzb-?^8#r#SHCEW+&W zVZFl_Yv~#f2fuXKjhXu{BJ@IPnT>PS!XeAyyvuhrpFc`&m2dNV?RpmWI9D}C(`Za{ zq}x~wYj2-4&iCJxGeX?8WPRn_@uH>JZRPFhuAvnZLbKw5h}f15q*a2Ut-teOG^JXi zND<4=&DKv6C;lX7eetEnuyTVRFh{&dtpx(~ZRS7U-EiLe{7AdeqiB>_PSJ_>ZFS1LuG zR)@11r@MondQWnmJIxckBpCq{*+={2+^<^DU{GC{Dc4R=3}4=1SpHUJ0vn$$N9mNa z;*{eO3kiqHV9%w9nn+RqLS(?<)*P|Wn6Y2ZT%nypV722`Oarl($}j!;8R>|J6ENAS zGXvc{SfP%xX8BOdDhiH~MDtSk{EWb|O$aQJ#h-Ob>1c{jU75S$O@Kvfd4pM_u|swH zpE?G~Kw5eTe9p@xLZX`vYUrVGHjcDfF1qG%Mw#U*FZq>{v;#`VX(RuoSi|=a0FSWU zPrW%0_ShSXl8%-WdiS*E;%32fA0(5?!$yrFV^k4+FkS4$Fp7vFw3BPHj%?g%ydcqW z1{u}ytq0YQzuZZn0+d~7wG0n@c{QwaqJ*4utG33q0!{e>!+(lfxp;FQ5vhBx??0sn zpxZ*ogp-kx$s>}bbf3Dl?V$^AVaCZuu*bp_OE&x??e3O%A-uph| zg7Ao>yCU1dKsOo7^K=>XG!^9@(?2Zygx#tKE}MSRLjsYr6)ZnH>NBV zfaNF24`f|6g*La8a34_i^WehzxWctIFxDP9C-f&C{9<|nk4RMIqm5Zuyq^@=>xTAB zD>1#((yMiU zgDT|%E{!mU64~BV_449YeI{N*^3xYG5hvJ~;Y;*>^DD>ns=Qjh`-8F8`K~a$RHdA0 zsLG{i&A~&fi7IPP&!XtLo`*;t(l&X2$N$wbj|2ena;@516xyC$-E0bxr!)d-STv_* zOH(@5IJJ|9=Yoe6dOExnNl5!i8#n3P)F;Ap@?8NC_You8OUe=;v=J(8YpEWfh@Dpu zpd8+o|F>KWFf1J;DSkXB?{Q+CY5?9A9Srp2-xVCUsBXh+Csmh25d7#ZbtML=<&Nc~ z-aQ$z!nE4C0hYHv--{vtE>VhjQyA+Vk-BdL*J_KA=$8}KWmD9*jd8O(#K_d$&zsQq zFMK+c7GCR(v*>!5zephE*4do`Ai6A;T6!exnB8tYAOonV4QVN|rqD++c7D;UVO_`h z*y|R$P&8q%`DL@;vvPxj#i*%)NV(nnd8c)hCD)&tQ)XO+E`DIP)N z)*@ITYb$&8Y5@M{>$)RYC!g7R^?)d^2BgFMPyYM4w0GbMX!2n-kN~6}>u%$} zX6^8|efvbfbd|GujD;{ql@YigvM4zVW=Xl#>y%2oN)jGyd^UJ_9L#LcqR_@wV_mfo zjuD{3|smDzrPeuII>Z^@UY-%#Qb-6jbRLl-)8m8%WjxzVRfEK_QP>JT+JDh zXb)$)vE;d?D|M%6#f?4?wigwaTgKX&Yn~odFgX*rgSkp3vioc;%7r^ZY3yiX6v5a6 zr}y|)TW!_*eXV#IFGqa$)qz$&I2r6XQK{-=rxElt=gJG?Q%{z!4U|dP)vT!ht}0z( zg?M>8P2WMJ#FV-pK%igXg$f-Xzp=A|REQNi()5S>J%<61=DqO}Q(Eg9p(p(;gz$Hi z@657*?D(OQQDiC;&h4P9WsJ*l%IwGZ^7jshvgt^|0*{+zlPA(N;NGd1133;qUB|Bs zJ(1{A_JnaN|04{%!u`mcBKvrrq_MCpF#Bt5ZW(r`_RJ6zvpjF|E%v7-si0ip;=j#)#+}BNIED(qk{lI-h*8DgsjP z)>5seFw=oKjN0A@H{x~cGNF$m_@~XqtQvHPx z)c`;V5wOr4w(}7BdDl{5?#1ftM3i|rTuyU*l@mx;+SJ|Jx@mF;f z5K+a?bwE96=Rr|X_VTFX~k;h;s#MTpRhMP;TSsl z7{iN}5r#fGrWI>$9sDtcU(+t9WDZW{rC9mu0qTsQ5B>sVc=OcqPcu^we0ALooNXTa zc+S7|A^K}mZW6FXzNO9jr_{&&*315f(a0U|-Soy2$5xyTdRr=`DbvM;hvdAx!nt%_ zl5<*}qSM??8xx0(`zHaxl7XN1?pxJ{yRtid<{oxX)#K6i*o~LYlNLmWfOkf&QCxU( z8h{?$Q$Q7E@Zwnsf*yAkw?^l0;NQML?yO z5R^`U&^v@8p!60(kAi^I2!T-2-WAI^yPo}=nQ!Ksd0+oy!dfdUclp)px^C64fvEJ6 z>+T{!yP4SARPq?h@~@9M}YJKIEeJ<7*rJ5X(f zYYA3p#oVOz52=ZX=KD=H{1-G`F|@5KacAj{zFJ`Sk~sTB5p5IU-UA*@9y@womok$Y z7S5_OhuWNU3or98J}<}oNNmz_XTQ8#wdZmjX8JONM(xzB>=Z8$kqe;{gP|>=$njG_ zt0o^x$}E|7ue*a2FFE^8WkHC3M9ERrbPIW(d=H+l#=}bO*H4&wXP5H+G=IB(=K+!N z%JunQXU8F=w-3_QIfhKm%1%;lDeaU~e9e|=xjnO%n{u{ptu!?UI0Da0U9syr1i+FrM5^O6g_crdm#|6spRE zE172D)-!Q871veXM=5b15!&l~D&2L*R~n8gu(>t3;`D`ju_*%NIZ%o#{F`OCWzQgH zR`!*HcIG)^^Ln$=(Zx>00ggD%hEBfPj@9b?p>(s1197Rr)+4vk(O1Bk zxXz^!_MW{+FQxd%$qtBd-Z_)`UH%@NkZb)zHXVfGdtEH7h@@I!}#(u`+e^$VkUJTY{2}9aQz4t?9~0 z!{qvCPQmX-|M$r~u(wqT4n89V-=2!vehB(tep~Ph9!|{cTCMNOYeS?_cscC%_#WFE zWp>?3>kSL5+JFWYyHaZx}yxMjjP{eNqE8~{Ar z=DmOJUjEyi)6rJ{0v5jzk1OfsZ$ACg7<`W}zFm{^E1-n2s%-*+v5e;RrE za``c5-{Y(w>+ox|@nc2&SP{SXV!(>%D-l}BhkS?K0Y=&QIh? zb98&t@Yhzf>R}JdzQd9CCBK^1N2hLGlyEqfF8Q?PSKws|?`&%P4<72|a{%(PsruU= z^#>pJ=YQqs1OC&e1L^h81N56`?Lk8K{?2{>)qwuydIlc=DqgM~;G_M&{G5|k82A6> zdX+S7I)+6E)$n#u8~{-S zW!K65p%VAs$Ng~8qU=9S#_yhRE1M1wjxnD9-KYQb2nHj{{_jcO|LMj>0{{jCUtdi5 z?W*{vJ5?I9j!K68=w!tl!N9uxYseyfgmGCqFg~fHnECX?|>)e=-xl z-QfRk+ccnINBn=Y%?>dPbnJ}6`m)B(2pZOm1tcCaJ0IMAS1#K+5kR<|tR?#xUNMoO z3p#e;t2rvFQgMZgh)$JqeRalGYJdl*dChA|`dbL4fzUaiVOq7l$opWXYI&g;EBNOT=5-t?l!c@>4nr3}EzymmBdMR_Ccwr&>(zQKXHHdy*bR zwLgA=coW12;{xhm&*;3n0vV9Rl5?-aV2zJFlP8lH~;IDs8}_ioZ6_ZM6`7pd%x`}C3$l#^EnsHapBhhfH;JH@uRi{5CH zp!fG$7r&4rRayX~=-9c)2fDv=%)fOoou*a;Lyl`<+-?%3n90h~(-o6056=5&Bvo%x z)jKu@3pBF#^A!aGk|9s6TX5kPVTS-tbot;*U(ei9qNx<;mzDW?cJg!wbI&u2%Bg&B&+;r0xhT_tr{z3Fpql#3?l+cWVGBw05tMPI%*v|2 z@tmieo&qEh&OZp44mBq1bjz9uu2zxf`vE1X^PQc&bk@2!b%tf<(mFue=oHnyJdv9L z)8Is`b<+WEouU$Oy6%>3PpL+{p-erg!VK`Ght%niXRdod#IxVy@S%|3j@EB?x5F_8 zEN(|70?-ig9nAr!N(k2+&E!KKNF$^E$*~ zJj>@qRi|$;AQCn^iVdr$SWXZd(_h@jLrGXO0xc|6|Hl6HQLni+Yh3-wRBoct6c(W0 zKBf2EjQIK_l(=P;R{cM{yT0chA52Cj^5RnV+D9BsV%R*BrZ?^isER4NJo&ZG$P*Jym zHt1~tkzzE0eRxCv=_XvhOhVgOTG#MofZ>wqm#%K7x=Q2Xx@X1L9`;|D(X>6x8vxle z7|>NBFTHA?!Oo}r$}?78FzhfGLE^+6%4zU2{jzJIeFH$KF`gu|8;;* zveQ>223JAj626X4xtd%POkT>bxJ#yB=i393D3Bej!E57Hal35KGeDN+<0wDts7=^) zl&l08x>4&K-jtWk<8z%%t`&@VX9OKEM#mgz%WA~FGi}=nFRW3b2KQf@t<5Ep#Z4a# z$E=k%JoO6QeSzx6Et7Ycr;&gj1*?%Oro@&^*i!C(V8|R42L;m=GRU}y%K4B2I{ltb z2xkiK45sZMwm2RbZjC!8SM4^Jz6LspwqxdgB*=^1>&I{Fkk?Stm|Cjd9Paw7wTD9b zgm=6awQtm;ra(EwFA#zVlScMO*MdJE`d-HV(@5sokxHcE3XNu{Nn04@VU??rz> zMao8>FHl+|H)Av6-TdgLt5Tj8ZR}b_TwE)~p8#8*oB|Y(lI51$M-is~YF-(85cTPHK_FIL;y^&_^a8~8xvUe^EsIQ_)zsl=eM#$m_9#gB_VarEk zCn)cK#R^@xj$(qI4Juy*2(|B|kSriCE8cyjyZ0Ib(llRL?BMAtH+m-$RHty|?4u>|3hl&SgcAa!%>2j?-|f8YE>*#8jE#15 z0Db$p#JYiXmQw6_zXbysRb$(w+^^XZhW)xJF9Hw%s@nmOy2l@2QRGuG@XCp@kri${ z^j3#VS)W3P7}=6TD>KYU?6}`~e+A}7h}3v?|BS#J z(B1=Y=!VB-5X%@lwMR;=~OEenqk@^1c^D|yb@ z%)grqkZh)#vQwjUu0=(t5=SJNO_n)wS3|KJ`?m^fcZCg!i9Hbm)u1RhxX2+T@k0V| zY=&3Pg}DV&5~hTZwuwEKfDd}5rG{gNM`wD)1@Uqx$0& zRUI5XO?EH&>FLp{FV4SjpnX<;x+(D0$-DlX(e)Cc1KK`GM}ZmJRtkBP+!C<695<`6 zRS2IU>qkDpK0?RaTH*4^)8`54ZQ_RvEP%FD*2%@%Lr zr(y1m*^~t2VCs^~OAg%8v+HG5<~b4+JkwRT>W(H~K2b9tnVBpkMJZs0^0buLcr=QS zw<(L0JQHml1>h}k(h~9ujz6)~PNE_hCHj_F;-&rWfdi*mf?-T*^oraa!o~GvM5_f2 zavoN6wp^#FBi=kne`0I9G@udxndA8CpU4~(;MMX#DTkRKqx^bMfl;O0GD~S!@&2w(0pqV;GBXdJ;o|y zx-Z0*6~xR+V+tm+jf-)Hy9EY-kpV>JP6L<;Hn7}m*r-T2u4fDtV{5d6IIx*zT-5{c zh@k;1xO50d-RFAu;LIXWEG`URszH8ViT!w)N9c29-aSkZFGK+EoGq&I8c_B!BszZ; zbu{4$*`QU>#Ryo(#?O#wT85b$(w`jb*KH$2Rp&1W1{VZx-X;jC&I1yd^PB20M^tN^ z1nMblf`r?iixTgq!BTse2dLSi*{G=PlXML9&ZQP#^%Slx^Ud(8~ zRah_X)RF51T={MHXkE@;U?(n^&sST!w^DQzxcTfyEf5V0>%zT+flH%jU^PNO02hAX z9@7kU3|c$82k8iQgMD7R&br^wK=1v!MxvpxA>)U*LNj1N36^x#2-!FZYwS|8-_P)r zXi|j^`vI(7Ac*^TKG9A8o(Enuhg807?%h(3J<{lxdbg@2WzVT6>T&Om8Ol978uQ}*ae#lv(SD-LZ{hXLY<+>jD}a{F+%9Y$ zmaX~I8y3^&%kMbN<0iKeM+I$h5))9Z#Mw-q?32Cih@dmtyNmJD_St+0w3CdO&SAqx;gwB0iXIDIPc*k)8)fUs}KX;e-UOC{XnAWP7A&R8_SnUXF9VH2*v{K zsF*e986Wi9v84O#fL6t8h3mwZqK9Wk9&CvpDZABxY7S;Pcmovz0Y-i8{b29x9#$Yi zKPxH@Wd*XYv-|e5w^^Dyd{t=}da2S*T)ABdU}Jh;)&v8Hl~#d;rszx|09-%2-Np({ zMAgjunzaGim8BOZMG10v=!RnoIl2?jx>-5kepJ@N7n&HRs`vR*Q#SQn+cU&rKo`n`a%%m!s!tA9@3{0sk$(fHF5TWOPij}1wiJ@tApx(<_f53lCU zdHc#KnnUIuB@=vkz}R;Ge$t;@!5HI z&YU9EFKCflc!usJ$iDr53SR$Rf^;~^pl&y+r+<8B;gi2Yr;MTLju(f=i<=!+$^jY5 zSZR^rUVzHbQ*-CTlEoJ(lFeu-PUdThcWIL|_ucuDQPKA=05WDF)4Q{Ry#DJj&t_}V zEXo=n=oxx?GCifo-cL;p5zvLr>5@$N_2XvXclWh;8&+j)?;GmFg78I#DRK4FvatXT zx~1jNg zs_R)E<5*tul0k6rfh29WrFZ@P2WoxL++}2Wq9TECBbuPO>v(A4#2k0nsu^%21~&gm zqP>v{8Mt!@AO?_YOK1voJ**Fo?X42MyGAbcYiZY;QfPoOcjG(VIM`3H8~D(FJ)F9N z8pym6End$|c4X4q$EKU~_$VV|#`PBhC+`njW?QJ&z}Fvn`TTjR`64W}df66V;x}sU z=2bnhMF|$Km7j(CHAr#Bb-AZLfjmx5lJi?m@a7Txqy$vJ>_`=H9apU;xg{Pujd2~8?PIg!FrwvKJ?>2Al=Yy$4ifoxOE03-fMqt$c>~=J~-@OPHJi5?;qV z`0fmRQ=GFY;s~_P{oRgku6Ot*wrd{pc{Kh^d?MyaJ6}ofp;K{J_-gGiZKWamPF1o27i&Ien(uL8SEF zb*9xd$_I?2tY3cZ;?o6r(;`V;PUYH_HCla=cKxTM{jf!)5+&YwDo!x9SC-PUoRv78 zm)JTZMD|m1YY^He5BO#=Kv9Fz{Mp!JOU%Xlr7DL<6k`!>Z4A9TUe zsr(>GX_wr&Q+CrJT4Fv$?BNxg!;tX2nPD!6{;+AL8ZZkr%RxK9ea0>aOkGpX;PZ(mauS( zbpjw#SYfv-!;LZ{G^{2cv~{CSE*3dHR9<2(&QAszLXPQQDBl*b;Y<|L^GK!s$|l-l!c%Zr9c`u^da_G(5t-BRWo*P}3K-2?$N!=mAO$kez^!}&XKxY}MC&OZvTe5votoys zLGtjRZe=dA&_jLZCFPAS4WTPJ{jXm-L0msD?hbW5RUgMzE!nV!Pu)D~I@K>rk$~{yt=S1P?ftuT+^A<_~f&k6jmJe}f+=(GX2?LvKGTo3BWo z?QHcwUG{A!iuAdy@+7_ZuJZ8bxMQxaanIPfv_3blOzkbKg2J`Ag0QQn!S z_)X+3t8YWet&PEOK)V8KmRnZzqLm}>m*h6atsD@0)QQ6J{h|%mCvTK1`QgVhhv!Er z=d9KSF5mxDx$T)>S_6kv;7+6B*x8F$gFnCX_As)p=v#%5tB<~l)8>)SSdkTzIA(5w z75TEh9Bzgz;cI|m;pk>Sylw!YWH2&0bG3591AbJw|8&vT2s0{+K-=xjFPRfrsMl$@ zp3L*PbYpiCrbU^#+~$k6$fBOf%L5e%TQa}~%W6JikixbVXk4KepG_Ui)TUZWFX zbo~6^?ap(YOdD^TQ{`c>^tz{GEPgn!ND&u%UuwW?H<@Aka;=*g@zViTo>YnPTW3&L z>|3oPbkJM|=ZnTfkZ;Crg@*7-xnWfWkVZk|?~sg8z@ zl@nGgN87J{we;Pmo-036U>;TDer|Zbj?io0J>1Q;GG4BM1H%f+)Qof?mFYTKG{|&y z-P4bW@iZ|D{{bED@^CX->yg1ICI7f#9)*qZq*;672&wu05y7~^tmCh`7)cm#!G&RP z6>j5Z!KR@YJodAVwPpk)0@ASkXq*nTKgVu-4344B;YV$G)FsQ#dMLnpS6L*?FKmtAXqP5GqYkVK z$-6aJ*L?n%9zGWb#)Hg#JVkP6Rg+nQ%TAo{`*x%ssW!k!iz|@EofD6e{xVUZf;`jngu> z_PUy~x<^G{YTa6|G|q=<@MgX5a^I_=k4Kw2e?B5O8|5fbts>*uAmi#}r*^P-px~96 zpCt^RUN+m*K708?mC)St$x0o0w~EW43&^`TWu(lQ47c;X$1|iG`em{47QzKdq2e~R zl~Y>|T2`AoSe&-!pmqv#t=ndO)`)>q*CjLaGrpfb>q_yo_kG}Zjx#NzJ=0;xNi^M< zo3{tQEUelA@5B_yf@CfHh&QUe`cIcqd=r;{-p6JVVT98Hm)5g=k=$-{Vb-KwJ2!5z z@b|EebM6OSN_rM^KRb+buhuBza@P!x3`Cf+7do`Yst|sb+Tp(<-v9cw$;RNV@b-QV z&>BC8d2p^An`1tk~CBihgdzst!!DDjN=$%(UsyA}4FrTXgu(B2}5`4n{?7-##Oe<~;qsE8L}> zVZNG)r1(w<<3iCiQiy_Pz`UwXmb?114iV%^(deVnvLFo|=KQvse75Xn+)fCH^jQQ? z$dg1x%gR?!P)D7#F-Tmj^5g3r4}J%>73IMzO5?%qlS2g>^Z%KNU#n(91P3k)0%sD% zgPn@KY0~qVYP(zTg}L;XyT2x{B>Kv&fAl8vNhB|<7dH;&V#-x&?PHZ@NbM<3tsxjz zWl~8~H%Hq@-xWNRY^qv1CU5)TK} zb`r7)mqDvva}!OH0eNAPARU4++x$>g@!Ex+;GP~F?jnUUp|2N497K}hOfu~TR@+mO z;>PW8Wxbx+^X&T0c0+_L58n2Gl27+%4WR|uBGGh!Qrdk61|<6%jP&36g}%Ftr;E5a z>(WaG`FqhRh1Dym!S=*)>&_C1GEO3NlRZwTP76ChMI>$c;I5t|Hf4jm1lbKyd1NDsHiVv#uADS;=aZZnCh>O9s~e6sM+omcG~G_GVp?cd z+cQ#QF)`725dpZk;I*93)pH%47z=3{c~PD(qe&Glb_rE{#AZ3Uu=HBPu40s8^6P0A z1G5O5A_51uG@!^)KYGbN{eh*a^gw;ZxF~*UDgV4{(^UK?68GTYw+aARIDsb1O~?Oq3TK2fm_jw zeH)LQ3tt9$FM)8cv%WM`q?pShVY3c)car}Wiv>zmG2k7)1IG|T5YTt!3-36=y?gTy ztW->j;x!HKSU4u00Te`hv5*A<>OlPR%s@Vap~B6J_e&y1wclxLXu4nvU6snW*Xqu2 zB-=!v{(P9E5YQ3h?Za`1dJ?%Y3$ph23b0Wo+nQ+AO>DAj8=Vqr2$ zxp&^r>AmFYmhxtB;A(m0&B)DEb;J!kWL-@OA2#TwCsh4jQ{dXkDh~y>n)z2pt;cG_ z7~<_Msg*U+&PwWsFM%)*pDcu8ak+_>{zq^TMCy*avv8eG!o}Qk&K2M->SdosspeRq zlcX|*Ycp-Eh9!o4(%b9s)JtYpF&F`Nu2CkJ5%hDJD)4sv__`v|uwfSm0e51z+pi+|UQL^o83(c_`waZbFS16;&%Y!; zIVeew*79o~_kQ)VKgYn9n$0gbsQ$e&Vb{+g6u&V!#a*(9bjTwh3j_|TT2r$N7}Ql< z+CcE8O!sH4RlV2RQWls5+%lmQu&FC3UE!`a#?aC4AF3$8)>x`ccke>z<#%GUkK68fTOj|Y+?GzVlh2=fWsXjNsNp1t7+xrSA2<`$^bp zys;AeysgvN?Az!;A5+GzZgj1kC8Jax$P&;7Um!cX_o$Z;g*&t1i@E#80Kc|FUHKe+ zq||B}wa%@5+Tob&>j~0!>B2oQMG4QJ_l&xHPtne~*LNbg#Tz3=>k&y?y*u=7fqW$L zW~W%W371Upoxo+F4fOtYaP~2|;Hythx=mK>uJ3gcfCnsWE~J1@#GMX49_z-}BRqZW zq*P?TTK0+PUz8S>6+D7hR<^RH6l=4$-Oh`!UvZYXu+pua>>d+&iSU{{mw_`kr$Dj~ za~0OQTtXx-rbM`^smKeD<9um03ltsn_1Y6YH{}+JDC!PVV>5lcb;#jo|EDjya>9-lAO$E#HVa@o0U!q7${J*@tKO($=y}v<6OL!&T zYg{z;Wp> zXJpf*3lU*JhH||6`AebTAh6J@0&H;L6jK6j`k;qpoS~vbwrfd`pA(~z4O~N8QHF(A zMnUoO5c9$~Tl#?1fwEteH@&TUV7Lz82jY; zZ9pSzP%m68rs3GdsyUL5!4vdMul=xm+mz|qwQ14!$8jP=@~Gnui(sdCwaM;DW~FP} zQlQ?|Nxk6S$4rZ*gWBB;PuTJfVGrgMmXAjf4m<9PNLMr29K#_JBIRc8zYM`pN|>tR zDKmu|#4tow7$QhWE$!m{GS!k9c8sx2uq@oqiT8d4cjUDB#pw;@SqO|W1TSSbiC`)Q zPDZ#~vooc>P93Xo)OSC45u6sHoV1$~p=A+7e6m9YBNSOqy4`t7IMp-i@pG7irA@x}UJnaUEK)$OeQa^mUrnGidU$9-+9rkGL(NZ_W6cg{)tNz%;x zfz?E65QcA%OGGRg>=0Gdx`cUoe&mTdQX!_b5xVh94cyedBD9J$ARn$H|B1 z^2>($AWV{spz?Cf?AH3Nt1eOuJZ6~VxRev&u3tjGrC+y!CaKgzoSpi~D^Nd+yGAuD zucZe3jLfqHKAD~{vhd2B9f-9*fuPqjqzU%+$q^Q^c}+^hN@haGD$p?NMZ&I?cN{Fb z=F@eMO(}Q6)&=vHtAj%;tPb$}eL+wJ!Cm3m8A8oS%_yrE7r!e9i@R!2m~2 zvECh@y0DNeu0_wJl6+2A9m8DQ>TS-cwDb>L94c0Qnup2+b=8svaP#c0%%?tts6NVS zEfr4FttRv@NoeA5Rx1h*PhjM1(67~eCYnillsI`;#7bq3=>_5`Vzy*KZtv(Z)n(i) zT2UMh-Dq+I0;G4!?U&3BBHKKJiHP{joYUrD(mCXN+|Y`wIuE^3nd!I`FnOf}f5A^%y>rt4uZnn}d-ubVfag<(zkQ~z|2UP164w^=jO-z&s| z5cg>Asn9O|pALsS|B!wy8~Em#hv_e|DK2You|U!u!}0bCkBDgfRV^!T?Z{XDW@dcr z;dSdvQ$QrDsJH!a+H{H@a5O5M?E^J%K11f+2iy11NXl&h~Mg#a|tR2;P5=> z?$J0Pg*vM2rOGXBXCAoL?MHaE+_0JD)$;t=S3KH0>66EXVy0U zrbu?CT@bU#FDADuNC~C~>VtfBxC^U0x;T)2(0Fa0LE%m@3p_c2joox6J9kW9qCPdu zaOMS3-nCd)-^c6)w8k#hOBUpe0c6WZv|C&gMHRS}zf^R}G(#50X2ragul;RX8p!XX z4o-M%L4<_it^AP6F$Z|S9n|vvZ$7}PrjZ>8J84CO9Ncyo-&!5S2c9qgaySDd1qB~f z#QXW%wHQ z6zHW{ASayV|H}*axiAQ(Y{hS^aqb;l6cLTy&q9%zqPLV` zWq`4QvbJVAyA5>=&E(XPKvSSK_$TuOi!s~Ih`}0U!N`DL?^k6~m2@EGOltCqrZHo%FMp83vSZRe_sav{%XJV zCTDe2tjZMxHU6i&F6aR_z3?#l{x*MV{rvc*|1u;$M(hJy5S9jj`DkKraGbqW zRbg2*JjLMG^t|)vVH2?<9k;)YNyuHsu}bH72|3T#jZW2easS{7LWYIDJxh)q)NaX~ zUlBRuBJtJXg}+^Mu&1eD>>rN}aR^`tbzTZ}UJ-L=eO6^oV4ddtw-!JM z=5D6wcPYWM`oKiU2(6NnYHvo8J568ZD2&_78FV4O}003K>o6*pDKU$S{g2!O~4mb-q7tQ}$*JdI6ItCQ;x zK507_E~&!ZPCw+EqQQT7aGx;aG$_DaDvARb0#MCx4G<2SVb>}uzuu=J^|SZtkmTkk zBMV0#Al4QxkQwy+$Ay_dV9+&{E{s(Vcb@lTv2cda^9FpvxXsrEotC(-#&^}=2q>bq z?b@?E>iH?nmg0Y0?6*8as$?v4^0}-rRlbGg+IysZ%;x`n;0W-dZ#eNXgzor9QC#r0 zNIrysW>P|+_ezqSuLDk#zvLgE-?zbFctjxUg-u(=jc9>+_}1c-mMtdB-c47LDZe78 z#kT0{kTlkvJRBwC0Mx`St$n65Za9uSev#|d9+~SLubm5#2lvi}+PLuj^(=mGE%t#J zr{%U2if0C^^72wn7CzWop2BQ?9uB;6bfxm@RklaphX1FKOJ@#)-;#){iPxfd;+1z# zHsrMHWdFjmF5e;NvwSZ5(QWyEm|zvF3dS~Lt?M&w#+d*VVQ2$@w8YaJUP--EWp4De z1VUcigyr@SMA+BX49oRwhdKnG-{o*%n}?y*Rii@n#F z=k@Q=>0)5Jy3$|Z3^g9Da`a1Sjo&?3$bkzO?rJIfs*Ut->(H0Mus7_G>j2gJo9Qhx z--BZYtrkmtl}f!OdRT`m;=UHVRPbrVyTS*~`xcoF<`1*4C4Ngt`!pHWLKV@SqP2sf ztJjjxS>N8Abchzn7V`815%q)BK~gM(c7LBceHr{TcIG!nRMXGto6or63SFr~eZTOG zA+yGw_CC4mXJJ)tF4Xzm9nPhx1XuUs6*PF}-y6ApcffBQ*@Be3DLzn}E{B)f@0TCUP;_)P!JFss>N7C%7ty$~7ro%a)SbbB}1+VM?J z|CxD=tYjSR69MI9hX@$O4SWc~$3*U+C-qUh_mR@)rhwxTt=>O>RSw;nCe#fmabL`_ z!%gGEi)WDgjOJq>IDaLS{-Jc?P|UFAzcx*LkDM9E4bs%&8S93=E$egF-?xf zuHsM#RvCHIPeE3opy+y-(GipS*~EUw^_UnLaHa+TLE64po^jZLJB09vHLF_e3NSHh zCj=gRgGqo&8v&s9z$N3!1YQU=mQI<>BCZ67I(N@Mfcz~lZB9Id%_ciTuv9p%f0(yV zl7er^yWm8Q+1NIl8Q3yj8o2Yo^=Xl#2GhLsadQ#8!^Feff}2)Xj7+7Q^JXjJjxxB) zavm@OZ>R0z8xyNhrJC7^Vz;RZ;wM+mMe$kHego=sSuo&CJrm1j_d8?db8<&%62J5c z3qYl}lQ*W5@tK!RLx-;f0rau~Ax`tyo}E@5rs%o~tB^`%@&yX1-+o;&L87*Lx6z_P z3ldZr*GxN;?(F{m2%0VvWue-DF^*$ob6Y0IJBp)w5m-q9L z!PrW&2xUDg9xDn1m}=P%e8g4HlEe#ZFfgJmZjz+>~ z+XDH56(u2*m5d>z^LUv*+Sjo=Q*L+z!5TQmR}8-qt-ttuG{53%*tDrsT@-}x{CTsB z&dy?!lCmfCrO(t;THlZ%nj&SzhWdoGNoR!Cbx2M5yLPloMU>C@whP#%4i#)3yGwLP zHnPlDrRw`t>mh6=vrB~Q5G;uaZFcNB#wHnolNZ5@&UoAT%O^V3NM)V9$mYAn?!67N zN-Vu|ET3@V$i;D?QY0i&&4JL}EBFx^yw;sT_Hn78=~62DYP?e<bl)({gCx7s68+k2`JdgfX52n3x0=;*Ucu5x0uz?25?}XKHIrh;iR-jnbx%(HEPBy-rLp#SruKNyn#IHA5^h6g3LOi%5r>h`Po zxOdbyqA8*+?wYM8l2R5`QL2-O3B9_Wie0LY#AB{3Ye|ipejE)S%~b-HNsXg7YRglzFxcuU zmrM;&@=1WQ3DQ{(g5S|^CrTOhDsC0J6P_=fGTXSWjC*AqsK`9TOTxMjG>T4`O`OgT zTz4bP+X!h!S-Dt)owIB&znykuOR8Vlc1mtOpJ{3KbX;xgP%jMkbn8R23&^wfqP(9h zxZG_1Sw#Dqa6!^iqYQ%%?c*iA=wDGv+2T z(5Rl8m2vNR0`Na9vsh1)meFbobgM(%+`#Nw$C z7_YgM&=n-x8+fcoP!)AK&{ zq9_6u>*-Lbf}%iA4ug7f!{TBn+ii1xq(RMF^2&f2So6C39qV?A1XqlkLKe-XHZu9# z8Tj_rs|96=2rbh25*j0JUMA13FzKG$~Xvz_9a3$@337 zg~whRTSeTgMv70Jis&J3w&dTne`wxvk|7F>tJLw_lE(MGCC>2aMD!@LzRe3NR7|s3 zjNzFvR!V$+`s5CNnY_K6{A3}IpX0hkDN}hSsOl=Fo4@c_it%BKJQ!(60{NNC<}u|l zVL2W~5U#TgVj?LLsp4lz$jqLq+;gm?x z?rJ;+V;lcgm`F@8f?pt(SB*JYC+OYTz(+dRCAP^Z9vG5i}bohWS-OzxBg)C5f)VMp=d1?}bsUKsy!gUvjO!_a4D zOE%IpMKG#PQk;hve@dvivm3McNV}6qeJzmfRzxpoiQ}+|>ts9b3*ih{QerAr3(LA| ztt;>-B@wC#0lK`Mchq{ARf%*Sl0Z2G&_czEJ!luK0LJV2aEX^jCyMU8t6c>Yu83lDJIk^=Hy-?iad$%-DPC(ZcAHYJmmSHX zym$u)SXOKsT@?{ z9&R^3lV1U__w>lxZ9D9k=Kzg7!KkOFz%b52POS9J=~3ldan$zAM-@lVe4du|3Dxa* z%$SG-V%XAW=K`#Ej->whQJXXGUnU(usEG!jNXA1I;uNpA^`EZWrC@44VmM~{SJ(nY zx;i<}?(#F-6~tW>WknKuu4Eb8H?_`|7CF6&;F3MVs+sCbC>rWxPr;U)n*gt(egUKy zLWNOs!68ZQkJZ6!rzvZ*4+eiW?eq2>kI=cgT__B%m?sMft8;+%`ProC+MaLY!Mne` zf^3aXZRimmpziWvtTD&t157d4gY)cTX`(J%hAPUv3`zF5HCGOX)t5nSWG&-`l+zcu z?6&MKf7oR}vN=T*UmXtwVa6AA25AaX$U8d&VTKF$9{@|_Y}XU@Vs-zE!b5G)t83lH zC4JWWjJHUZTS<^7>fL-V7*C+P7;4zu6g>u4%OlM;IIV}SnE22{&4b9=_0GgIb6_C# z+GwwRlzq|H4}DH%rL^C>GXd=24w01PN#d!so}mEm2;X4-?GG~ zj4Djvy4>ANigr7ZbigaVivb?$7}{XJ>Eq@r@78X)v-(DIba4ZYu%B{Qvn(SMUGxZs|3!2<~ z&9u~^Ov+C&6q8~FM0&Vkyi+%7zeDXE-ZAiBGsO9rj)Wcjg`@JIFLkqmmI0hoAg=bf ztf6AcNhGrq7Gw^B=C(SCm9$HuZ@9xY9FrFJIFDAGv-&FlPuI5R zC8Tf6DEj5dBj*UkXqs0I=|lE=>X@W!Lmt_5i-ZLT)Qwz3cF! zNh<`u-oA?(<#aKpr-*6a!GP?noFaK-!B7IC_kMOQ55$SX0KRs@)TN1WAYz^(R}jm{ zpRP!3MlL*$?!7_R_WPIxD{E&R*bzK&Y4F_2@-}T2;g_i|QIqwN7#49Xu|j#-xO`6S z`bMZ3RnHkT$(r77=ZB!qO?bEO)fs}v!Ym=7wk3qmLuDUNV`vHbcV9UkX*V>?)EBRk zvsmk`Ep0D3su-W?ka;jU)wAo=Lfk3e|bzpL9*$Y5w zl`G$A|2JudKuFYntu9rE;+^T6X`#Jr{?F8dXj`+z3t`;xh5NZKm*;?vudtG~;HNf5 z6p_CK_;4squKIz2yl$lQ|6%Vt!HxZ?VCXi5r)JR7lgpLq;3pEL(otN1%d-m)--<)%PfB$j?@|N{H&nov? z>s~01jLKse_b!oZ<~uRN78oO&%HWZ?KF=LB_xEpicdyv^Jocru8Yn{!Z(7zK%eosT zlNWe*P5Nb8w+-e@rjK35*cvHk^pc3WxySRmvoC9?Foag9!;o~*SA}QO(=`gugCsNW zSoP*u!qBeZjdwPOSTbMQk8xlwXWluFkY_fjF%2@lcC*(2Y| - You can can also create and manage upstreams via the [Cloudsmith API](https://help.cloudsmith.io/reference/repos_upstream_maven_list). + You can can also create and manage upstreams via the [Cloudsmith API](/api). ## Create an Upstream Proxy diff --git a/src/content/upstream-proxying-and-caching/upstream-priorities.mdx b/src/content/repositories/upstreams/upstream-priorities.mdx similarity index 100% rename from src/content/upstream-proxying-and-caching/upstream-priorities.mdx rename to src/content/repositories/upstreams/upstream-priorities.mdx diff --git a/src/content/software-distribution/broadcasts-custom-domain.mdx b/src/content/software-distribution/broadcasts-custom-domain.mdx index c66d898b..abc4eb19 100644 --- a/src/content/software-distribution/broadcasts-custom-domain.mdx +++ b/src/content/software-distribution/broadcasts-custom-domain.mdx @@ -1 +1,96 @@ -# Using your own domain name with Broadcasts \ No newline at end of file +--- +title: Custom Domains +--- + +# Custom domains + +## About custom domains + +Your company brand and trust are important to you and your customers, and with custom domains you can present your own company as the endpoint for distribution, APIs, and configuration (e.g. retrieving GPG keys). + +This is a great idea if you are - + +- A vendor that is selling and distributing software to your customers +- A security-conscious DevOps team that is looking to control the source endpoint for artifacts + +Custom domains are available with our Velocity and Ultra plans. We strongly recommend - and may require - custom domains for any customer with significant Cloudsmith package delivery traffic. + +## Configuration Options + +### Account-wide vs per-repository + +An **account-wide** (also called organizational-level) custom domain works across all repositories in your Cloudsmith organization. When using an account-wide custom domain, the organization/account identifier (slug) will be removed from the URI for a repository. + +A **per-repository** custom domain works for a single repository in your Cloudsmith organization. When using a per-repository custom domain, the organization/account identifier (slug) and the repository identifier are both removed from the URI for the repository. + +### Package support (Download vs Native API) + +For API-based (Native) package formats, such as NuGet, Docker, Cargo, npm, Conan, Conda and Terraform, you can have a specific custom domain, such as _docker.yourdomain.com_, _npm.yourdomain.com_ or _cargo.yourdomain.com_. + +For other package formats, and downloads in general, you can have a custom domain such as _dl.yourdomain.com_. + +It is possible to have multiple download domains for a package type, however, all of them will be accessible through each other, for example, if we set up a general `Downloads` domain for raw packages and a `Debian` domain (which is also Download), we will be able to hit the `Downloads` domain to get Debian packages. + +Please refer to the table below to see which package will utilize Download/API Native domains. + +|Package Type|Download|Native Uploads|Native Downloads| +| --- | --- | --- | --- | +|Alpine|X||| +|Cocoapods|X||| +|Composer|X||| +|Conda|||X| +|Crates|X|X|| +|Cran|X||| +|Deb|X||| +|Docker||X|X| +|Download(Raw)|X||| +|Helm|X||| +|Maven|X|X|| +|NPM||X|X| +|Nuget||X|X| +|PyPi|X|X|| +|RPM|X||| +|Ruby||X|| +|Terraform|||X| + + + +### Top Level Redirects + +You can request that the top-level of your domain (e.g. npm.example.com) redirect to a location of your choice. For example, to the UI for your repositories if public, or to your own customer support page. + +If you'd like to configure this, please include it in your request. + +*** + +## Setup + +To configure a custom domain within Cloudsmith, we require you to provide: + +- A list of domains that you wish to have for each package type (refer to the table above). We recommend having only 1 domain for Download types, but this can be set up to include multiple if needed. +- For each domain, do you wish to have an account-wide or per-repository domain +- Finally, would you like to have a top level redirect for your domain + +Example request: + +Domain: `docker.mycompany.com` (Docker) +Account wide +No redirect + +Once created within Cloudsmith, you will need to create two DNS CNAME entries for each domain you wish to configure within your DNS provider. + +*** + +#### Step 1: + +- The process begins when you [contact us](/contact-us) via support with a list of custom domains you would like to configure. We will review and start processing your request, ensuring your plan is eligible to make use of the custom domain feature. + +#### Step 2: + +- After confirming the domains you need, a member of the team will review and configure them within Cloudsmith. Once set, the DNS CNAME entries will be visible in your account (in the "Custom Domains" section of any repository) + +#### Step 3: + +- You then add the DNS CNAME entries to your domain DNS records with your DNS provider. The first CNAME is for authorizing the domain, and the second is to make it visible and accessible to your users. +- Once you have configured the CNAME's, you will then be able to make use of your custom domains. +- Please just [contact us](/contact-us) if you would like to set this up or require any further information. diff --git a/src/content/software-distribution/distribution-for-vendors.mdx b/src/content/software-distribution/distribution-for-vendors.mdx deleted file mode 100644 index 13d644a1..00000000 --- a/src/content/software-distribution/distribution-for-vendors.mdx +++ /dev/null @@ -1,47 +0,0 @@ -import { BlockImage } from '@/components' - -import img from './images/distribution-for-vendors/6a14392-CS_Map_showing_POPs.svg' - -# Distribution (for Vendors) - -Cloudsmith provides reliable, performant distribution of software to your customers across the globe. - -Cloudsmith operates across a global content delivery network optimized to ensure lightning fast delivery to anywhere. Specify exactly where your packages are stored, and configure edge caching to bring packages as close to your customers as possible. - -Cloudsmith can ensure users have agreed to your custom End-User License Agreement (EULA) before they can download your packages. Especially useful if you want to disclaim warranties prior to usage. - - - - -## Vendor Tools - -Cloudsmith for distribution - - -## Integrations - -Connect Cloudsmith to payment providers through our Zapier connector - - - -## Ultra-Fast Content Delivery Network - -Cloudsmith operates across a global content delivery network optimized to ensure lightning-fast delivery anywhere. - - - -{/* */} - -## Link Software Licenses to Entitlement Tokens - -If you're selling software and distributing it via Cloudsmith, you'll likely have a license associated per customer, which dictates their terms of usage. Associating the license with an entitlement token allows you to control and track software downloads specifically for that license. - -For example, you could only allow your customer to download specific packages, between November 5, 2024, and November 5, 2024, up to a maximum of 10 downloads from one location (i.e. a single client). Each entitlement can have different restrictions, and you can use the freeform (JSON-based) metadata to add your own information to the entitlement. - -If you'd like to track downloads for specific customers, then the best practice is to create an entitlement token per customer and then use it when providing download links. It also means you can revoke their token if they've lapsed their subscription with you or change it for other reasons. diff --git a/src/content/software-distribution/index.mdx b/src/content/software-distribution/index.mdx index c66fe336..13d644a1 100644 --- a/src/content/software-distribution/index.mdx +++ b/src/content/software-distribution/index.mdx @@ -1,3 +1,47 @@ -# Distributing your software +import { BlockImage } from '@/components' -Placeholder \ No newline at end of file +import img from './images/distribution-for-vendors/6a14392-CS_Map_showing_POPs.svg' + +# Distribution (for Vendors) + +Cloudsmith provides reliable, performant distribution of software to your customers across the globe. + +Cloudsmith operates across a global content delivery network optimized to ensure lightning fast delivery to anywhere. Specify exactly where your packages are stored, and configure edge caching to bring packages as close to your customers as possible. + +Cloudsmith can ensure users have agreed to your custom End-User License Agreement (EULA) before they can download your packages. Especially useful if you want to disclaim warranties prior to usage. + + + + +## Vendor Tools + +Cloudsmith for distribution + + +## Integrations + +Connect Cloudsmith to payment providers through our Zapier connector + + + +## Ultra-Fast Content Delivery Network + +Cloudsmith operates across a global content delivery network optimized to ensure lightning-fast delivery anywhere. + + + +{/* */} + +## Link Software Licenses to Entitlement Tokens + +If you're selling software and distributing it via Cloudsmith, you'll likely have a license associated per customer, which dictates their terms of usage. Associating the license with an entitlement token allows you to control and track software downloads specifically for that license. + +For example, you could only allow your customer to download specific packages, between November 5, 2024, and November 5, 2024, up to a maximum of 10 downloads from one location (i.e. a single client). Each entitlement can have different restrictions, and you can use the freeform (JSON-based) metadata to add your own information to the entitlement. + +If you'd like to track downloads for specific customers, then the best practice is to create an entitlement token per customer and then use it when providing download links. It also means you can revoke their token if they've lapsed their subscription with you or change it for other reasons. diff --git a/src/content/supply-chain-security/epm/getting-started.mdx b/src/content/supply-chain-security/epm/getting-started.mdx new file mode 100644 index 00000000..050f209a --- /dev/null +++ b/src/content/supply-chain-security/epm/getting-started.mdx @@ -0,0 +1,211 @@ +import { BlockImage, Note } from '@/components' + +# Getting Started with Enterprise Policy Management + +_An introduction to creating Enterprise policy management policies and actions._ + +--- + +This guide offers an introduction to creating Enterprise policy management policies and actions. Using this guide, you will: + +- Create policy matching logic using the Rego language to match packages above a specified vulnerability threshold. +- Create a policy via the API that employs this matching logic. +- Create actions to quarantine and tag matched packages, and assign these actions to the created policy. +- Use the policy simulator to simulate this policy running without impacting any live packages or data. + +📘 **Policy Creation** +You must have administrator permissions within your Workspace to create or update a policy. + +## Step 1: Creating policy matching logic with rego + +Let's create a policy in Rego. This policy will: + +- Check if any vulnerabilities in the package exceed a CVSS (Common Vulnerability Scoring System) value of 4. +- Check if the vulnerability detected was published 10 or more days ago. +- Check if there is a patch available for the vulnerability. +- Ignore a specified list of CVEs. + +If all these criteria are met on policy evaluation, and the CVE has not been included on the specific ignore list, the package will be matched (the exported `match` variable will be `true`), and any actions associated with the policy will be run against the package. + +This policy matching logic is shown below: + +``` +package cloudsmith +import rego.v1 + +default match := false + +# Define minimum CVSS score threshold +max_cvss_score := 4 + +# Define time-based policy threshold (Vulnerabilities older than 10 days) +older_than_days := -10 + +# Define CVEs to ignore +ignored_cves := {"CVE-2023-45853", "CVE-2024-12345"} + +match if { + some target in input.v0.security_scan + some vulnerability in target.Vulnerabilities + + not ignored_cve(vulnerability) + vulnerability.FixedVersion + vulnerability.Status == "fixed" + + some _, val in vulnerability.CVSS + val.V3Score >= max_cvss_score + + t := time.add_date(time.now_ns(), 0, 0, older_than_days) + published_date := time.parse_rfc3339_ns(vulnerability.PublishedDate) + published_date <= t +} + +ignored_cve(vulnerability) if { + vulnerability.VulnerabilityID in ignored_cves +} +``` + +## Step 2: Create a policy using the API + +📘 **Placeholder Values** +The example API requests in this guide below make use of placeholder variables for consistency and brevity. + +It is advised to export the following variables such that they can be used in any example requests: + +```shell +export CLOUDSMITH_API_KEY= +export CLOUDSMITH_WORKPLACE- +``` + +Save the Rego policy created in Step 1 to a file named `policy.rego`. Then use the script below to create a JSON request body which includes the Rego content in the `rego` field: + +```shell +escaped_policy=$(jq -Rs . < policy.rego) + +cat < payload.json +{ + "name": "cvss_gt_4", + "description": "Policy to quarantine and tag CVSS > 4", + "rego": $escaped_policy, + "enabled": false, + "is_terminal": false, + "precedence": 1 +} +EOF + +``` + +📘 **Policy testing** +When creating a policy via the API, setting the `enabled` field to `false` prevents the policy from being triggered, but still allows it to be tested via the Simulation API. + +Policies are created using the [workspaces_policies_create](https://api.cloudsmith.io/v2/redoc/#tag/workspaces/operation/workspaces_policies_create) REST API method. The following curl command makes a request to this method, providing in the request the `payload.json` payload created above: + +```shell +curl -X POST "https://api.cloudsmith.io/v2/workspaces/$CLOUDSMITH_WORKPLACE/policies/" \ + -H "Content-Type: application/json" \ + -H "X-Api-Key: $CLOUDSMITH_API_KEY" \ + -d @payload.json +``` + +A successful request will return an HTTP `201` response, indicating the policy was created. + +### Retrieving a policy's unique identifier + +When a policy is created via the API, the unique identifier for the policy will be provided in the `slug_perm` field in the response body. This identifier will be required, for example, if you need to update the policy or add actions to it. This identifier can be retrieved by directly extracting it from the policy creation response (as in the example below): + +```shell +POLICY_SLUG=$(curl ... | jq -r '.slug_perm') +``` + +Or alternatively, the policy identifier can be retrieved via the [workspaces_policies_actions_list](https://api.cloudsmith.io/v2/redoc/#tag/workspaces/operation/workspaces_policies_actions_list) REST API method. + +## Step 3: Adding actions to a policy + +After a policy is created, actions can be assigned to it via the [workspaces_policies_actions_create](https://api.cloudsmith.io/v2/redoc/#tag/workspaces/operation/workspaces_policies_actions_create) REST API method. + +In this example, two actions will need to be added to the policy: + +1. An action to quarantine a package matched by the matching logic. +2. An action to tag a packages matched by the matching logic. + +### Adding an action to quarantine a package + +To create an action to quarantine a package, use the curl command below. This example request specifies the required `action_type`, sets the quarantined package state via the `package_state` field, and provides an action `precedence` value of `1`: + +A successful request will return a HTTP `201` response, with the unique identifier of the action returned in the `slug_perm` field. + +```shell +curl -X POST "https://api.cloudsmith.io/v2/workspaces/$CLOUDSMITH_WORKPLACE/policies/{POLICY_SLUG}/actions/" \ + -H "Content-Type: application/json" \ + -H "X-Api-Key: $CLOUDSMITH_API_KEY" \ + -d '{ + "action_type": "SetPackageState", + "precedence": 1, + +``` + +### Adding an action to tag a package + +Similarly, the following curl command can be used to create an action to tag a matched package. This request specifies the required `action_type`, the relevant tag in the `tags` array, and a `precedence` value of `32767`. + +```shell +curl -X POST "https://api.cloudsmith.io/v2/workspaces/$CLOUDSMITH_WORKPLACE/policies/{POLICY_SLUG}/actions/" \ + -H "Content-Type: application/json" \ + -H "X-Api-Key: $CLOUDSMITH_API_KEY" \ + -d '{ + "action_type": "AddPackageTags", + "precedence": 32767, + "tags": ["policy-violated"] + }' + +``` + +## Step 4: Simulating the policy + +The policy referenced in Step 2 was not enabled when it was created. It is possible to test a policy, even if not enabled, using the simulator [workspaces_policies_simulate_list](https://api.cloudsmith.io/v2/redoc/#tag/workspaces/operation/workspaces_policies_simulate_list) REST API method. + +The response contains a list of tested packages, whether or not there was a `match` for each page, any reason messages, and the actions that would be taken if the policy is enabled. + +## Step 5: Enabling or disabling a policy + +Once you confirm the policy works as expected, you can enable it via a PATCH request. Enabling the policy means it will run matching logic against packages and apply any associated actions (in this example, quarantining and tagging) to packages that are matched. + +```shell +curl -X PATCH "https://api.cloudsmith.io/v2/workspaces/$CLOUDSMITH_WORKPLACE/policies/{POLICY_SLUG}/" \ + -H "Content-Type: application/json" \ + -H "X-Api-Key: $CLOUDSMITH_API_KEY" \ + -d '{"enabled": true}' +``` + +Similarly, if a policy needs to be disabled, a PATCH request can be sent for the relevant policy specifying an `enabled` value of `false`. + +## Step 6: Pushing a package to trigger the policy + +Once enabled, if you wish to test the policy against an actual package, you can trigger this policy by: + +1. Uploading a vulnerable package to the required repository. +2. Wait for the vulnerability scan to complete. The policy will run at the end of package synchronization. +3. Confirm the package's status and tags in Cloudsmith. + +## Checking Decision Logs + +📘 **Decision Logs** +Decision log entries are not added when a policy is simulated via the simulator. + +When a package is scanned or triggers the policy, EPM creates a decision log entry. These logs can be viewed via the decision_logs_list REST API method. An example request to this method is shown below (this filters logs to a specific policy using the`?policy=$POLICY_SLUG` query parameter.) + +```shell +curl -X GET \ + "https://api.cloudsmith.io/v2/workspaces/$CLOUDSMITH_WORKPLACE/policies/decision_logs/?policy=$POLICY_SLUG" \ + -H "Accept: application/json" \ + -H "X-Api-Key: $CLOUDSMITH_API_KEY" | jq . +``` + +The following will be provided within these logs: + +- `started_at`/ `ended_at`: Times the policy evaluation started and ended. +- `policy_input`: The exact data used to evaluate the policy. +- `policy_output`: The results (match or not, partial rule states). +- `actions`: The actions invoked against the package. + +For more information on building common matching criteria in Rego, please see the [Enterprise Policy Management Rego Recipes guide](epm/rego). \ No newline at end of file diff --git a/src/content/supply-chain-security/epm/index.mdx b/src/content/supply-chain-security/epm/index.mdx new file mode 100644 index 00000000..22e8da9b --- /dev/null +++ b/src/content/supply-chain-security/epm/index.mdx @@ -0,0 +1,58 @@ +import { BlockImage, Note } from '@/components' + +## Enterprise Policy Management + +📘 **Early Access Feature** +Enterprise Policy Management is in early access; if you would like to try this feature, please [Contact Us](https://cloudsmith.com/company/contact-us). + +Enterprise policy management provides a way for Workspaces (previously known as Organizations) to define policies that can match and act on packages within Cloudsmith. Enterprise policy management is implemented on top of [Open Policy Agent](https://www.openpolicyagent.org/) (OPA), a general-purpose and widely adopted policy evaluation engine. OPA provides a high-level declarative language called [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/) to define policies as code. + +### OPA and Enterprise Policy Management + +Enterprise policy management allows you to create an OPA policy that triggers when certain events occur within Cloudsmith, ensuring your policies are consistently enforced. When a policy is triggered, Cloudsmith provides the policy evaluation engine with package metadata (input data). Through the rego-based policies, a set of actions associated with the policy (called policy actions) act on the package if the policy is matched. + +At a high level, the Enterprise policy management policy evaluation workflow is as follows: + +1. An event within Cloudsmith triggers a policy evaluation (for example, completing a package security scan). +2. Package metadata and your rego-based policy are provided to the policy evaluation engine. +3. The policy evaluation engine determines if the policy "matches" the package, based on the logic/criteria provided in your policy. +4. If the policy matches the package, the action(s) associated with the policy are then applied to the package. + +An example policy, explained in more detail below, quarantines a package following a security scan if vulnerabilities of a certain severity are found within the package. + +## Policies Overview - Key Concepts + +### Policy Triggers + +Cloudsmith policies are continuously evaluated, so we detect changes in your security posture in near real time. Certain events will explicitly trigger a policy re-evaluation: + +- When a package is added to a repository, it goes through a [synchronization process](https://help.cloudsmith.io/docs/resync-a-package#what-is-package-synchronization) that includes evaluating existing policies that may affect the package. Vulnerability Scanning should be enabled for the Workspace. +- When a package is resynchronized, provided it wasn't scanned within the 30 minutes before that. +- When a package is copied from one repository to another. +- When a vulnerability scan is triggered via the UI or API (Note that manual scan requests will only result in a re-scan 30 minutes after the previous scan). +- When a [recurring vulnerability scan](https://help.cloudsmith.io/docs/security-scanning#early-access-recurring-security-scans) is triggered. +- When Cloudsmith receives updated package data, such as CVSS or EPSS updates. + +### Policies + +Policies are written in [Rego](https://www.openpolicyagent.org/docs/latest/policy-language/), a declarative language used to define OPA policies. Policies evaluate packages against a set of criteria, such as package metadata, workspace, repository, and security information. + +### Policy Matching + +Policy matching occurs when the policy evaluation engine evaluates a policy against a package and determines that the package matches the criteria outlined in the policy. + +### Policy Actions + +Actions can be assigned to policies to act on packages following policy evaluation. If a package has been matched in the matching step above, the policy actions associated with the policy will then be applied to the package. Multiple actions can be associated with a given policy, and the following actions are currently supported: + +- `set_state`. This allows you to control the state of the package. For example, whether to delete or quarantine the package. See the [PackageStateEnum](https://api.cloudsmith.io/v2/swagger/#/:~:text=MovePackageActionTyped-,PackageStateEnum,string,-AVAILABLE%20%2D%20The%20package) for more information. +- `add_package_tags`. Add a set of tags to the package. + +For more detail on creating Enterprise policy management policies and actions, see the [Getting Started with Enterprise Policy Management guide](/:getting-started). + +### Decision Logs + +The details of every policy evaluation and its outcome are captured in a decision log. +Decision logs record the result of policy evaluations, including why the decision was made and what actions were taken as a result. + +The [Getting Started](epm/getting-started) with Enterprise Policy Management guide provides more details on creating enterprise policy management policies and actions. \ No newline at end of file diff --git a/src/content/supply-chain-security/epm/rego.mdx b/src/content/supply-chain-security/epm/rego.mdx new file mode 100644 index 00000000..ca7fcc28 --- /dev/null +++ b/src/content/supply-chain-security/epm/rego.mdx @@ -0,0 +1,165 @@ +import { BlockImage, Note } from '@/components' + + +## Recipe 1: Simple Tag Check + +**Use case:** Match any package with a certain tag. For example: `ready-for-production`. For this rule, the value of`match` will be `true` when `tags.info` contains the value provided in `required_tag`. + +```text +package cloudsmith + +import rego.v1 + +default match := false +required_tag := "ready-for-production" + +match if { + has_required_tag +} + +has_required_tag if { + some i + input.v0["package"]["tags"]["info"][i] == required_tag +} + +``` + +## Recipe 2: Time-Based CVSS Policy + +**Use case:** Evaluate vulnerabilities older than 30 days, check CVSS threshold ≥ 7, filter a specific repo, ignoring certain CVEs. + +What It Does: + +- Scopes to the `testing-policy` repository. +- Ignores certain CVEs, requires CVSS ≥ 7. +- Only triggers if vulnerability is older than 30 days. + +``` +package cloudsmith + +import rego.v1 + +default match := false + +max_cvss_score := 7 +older_than_days := -30 +target_repository := "testing-policy" +ignored_cves := {"CVE-2023-45853", "CVE-2024-12345"} + +match if { + in_target_repository + count(reason) != 0 +} + +in_target_repository if { + input.v0["repository"]["name"] == target_repository +} + +reason contains msg if { + some vulnerability in input.v0["security_scan"]["Vulnerabilities"] + + not ignored_cve(vulnerability) + + vulnerability["FixedVersion"] + vulnerability["Status"] == "fixed" + + some _, val in vulnerability["CVSS"] + val["V3Score"] >= max_cvss_score + + t := time.add_date(time.now_ns(), 0, 0, older_than_days) + published_date := time.parse_rfc3339_ns(vulnerability["PublishedDate"]) + published_date <= t + + msg := sprintf("CVSS Score: %v | Package: %v | Vulnerability: %v | Reason: %v", + [val["V3Score"], input.v0["package"]["name"], vulnerability["VulnerabilityID"], vulnerability["Description"]]) +} + +ignored_cve(vulnerability) if { + vulnerability["VulnerabilityID"] in ignored_cves +} + +``` + +## Recipe 3: CVSS Score + Fix Version + CVE Exclusion + Repo + +**Use case:** Another approach for ignoring certain CVEs, focusing on one repository, with high/critical CVSS threshold. + +What It Does: + +- Matches packages in repository testing-policy if at least one vulnerability is “fixed,” CVSS > 7, and not in `ignored_cves`. + +``` +package cloudsmith + +import rego.v1 + +default match := false + +max_cvss_score := 7 +target_repository := "testing-policy" +ignored_cves := {"CVE-2023-45853"} + +match if { + input.v0["repository"]["name"] == target_repository + some vulnerability in input.v0["security_scan"]["Vulnerabilities"] + vulnerability["FixedVersion"] + vulnerability["Status"] == "fixed" + not ignored_cve(vulnerability) + exceeded_max_cvss(vulnerability) +} + +exceeded_max_cvss(vulnerability) if { + some _, val in vulnerability["CVSS"] + val["V3Score"] > max_cvss_score +} + +ignored_cve(vulnerability) if { + vulnerability["VulnerabilityID"] in ignored_cves +} + +``` + +## Recipe 4: CVSS Score + Tag + Time-Based + +**Use case:** Combine tag requirements with older vulnerabilities that surpass a threshold. + +What It Does: + +- Requires package to have a tag containing "internal-only" +- Only triggers if a vulnerability is older than 21 days, fixed, and has a CVSS ≥ 7. + +``` +package cloudsmith + +import rego.v1 + +default match := false + +customer_face_tag := "internal-only" +max_cvss_score := 7 + +match if { + has_given_tag + count(reason) != 0 +} + +has_given_tag if { + some _, type in input.v0["package"]["tags"] + some tag in type + contains(tag, customer_face_tag) +} + +reason contains msg if { + t := time.add_date(time.now_ns(), 0, 0, -21) + some vulnerability in input.v0["security_scan"]["Vulnerabilities"] + published_date := time.parse_rfc3339_ns(vulnerability["PublishedDate"]) + published_date <= t + vulnerability["FixedVersion"] + vulnerability["Status"] == "fixed" + some _, val in vulnerability["CVSS"] + val["V3Score"] >= max_cvss_score + msg := sprintf("CVSS Score: '%v' for Package: '%v' has VulnerabilityID: '%v' with Reason: '%v'", + [val["V3Score"], input.v0["package"]["name"], vulnerability["VulnerabilityID"], vulnerability["Description"]]) +} + +``` \ No newline at end of file diff --git a/src/content/supply-chain-security/index.mdx b/src/content/supply-chain-security/index.mdx index b65e939d..5794974c 100644 --- a/src/content/supply-chain-security/index.mdx +++ b/src/content/supply-chain-security/index.mdx @@ -1,3 +1,16 @@ -# Supply chain security +# Supply Chain Security -Placeholder \ No newline at end of file +Modern software delivery pipelines face growing complexities and a rising wave of sophisticated supply chain attacks, requiring artifact management to go beyond traditional storage. According to the [**Cloudsmith 2025 Artifact Management Report**](https://cloudsmith.com/campaigns/2025-artifact-management-report), this is top of mind for engineering teams, with 56% of respondents citing improved security as the leading benefit of their artifact management tools. + +Our platform is designed to meet this challenge head-on. We provide a comprehensive suite of features to help you secure your software supply chain by enabling you to define your policies and responses to policy violations as code; identifying, mitigating, and blocking risks from vulnerabilities and non-compliant licenses in your dependencies. + +In this section you can learn how to: + +- Ensure with **Block Until Scan** that no package can be downloaded until a security scan is successfully completed, helping you enforce security mandates across the whole organization. +- Reduce risk associated with **Software Vulnerabilities**, by proactively identifying and quarantining packages with known vulnerabilities from entering your software supply chain. +- **License Compliance:** Automatically scan for and identify the licenses of your dependencies, ensuring compliance with your organization's policies. +- **Digital Signatures:** Verify the integrity and authenticity of your software artifacts using GPG, PGP, and other signing standards. + +Adding to this, EPM + +- **Policy-as-Code (Early Access):** The next evolution in policy management. This new feature allows you to define all your security and license compliance rules in a single, version-controlled YAML file. While our existing policy features remain fully supported, Policy-as-Code is intended to become the primary method for managing supply chain security rules at scale. \ No newline at end of file diff --git a/src/content/tbc/dependency-firewall.mdx b/src/content/tbc/dependency-firewall.mdx index 7793b38d..946e7bbe 100644 --- a/src/content/tbc/dependency-firewall.mdx +++ b/src/content/tbc/dependency-firewall.mdx @@ -6,7 +6,7 @@ It consists of a set of features that allow you to exercise and implement contro The Cloudsmith Dependency Firewall is composed of the following features: -- [Upstream proxy and caching](/tbc/upstream-proxying-and-caching) +- [Upstream proxy and caching](/repositories/upstreams) - [Vulnerability Scanning and Policies](/policy-management/vulnerability-policy) - [License Scanning and Policies](/policy-management/license-policy) - [Package Deny Rules](/policy-management/deny-policy) diff --git a/src/content/upstream-proxying-and-caching/index.mdx b/src/content/upstream-proxying-and-caching/index.mdx deleted file mode 100644 index 9e02797d..00000000 --- a/src/content/upstream-proxying-and-caching/index.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# Upstream Proxying & Caching - -Placeholder \ No newline at end of file diff --git a/src/content/accounts-and-teams/images/permissions/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png b/src/content/workspaces/images/privileges/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png similarity index 100% rename from src/content/accounts-and-teams/images/permissions/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png rename to src/content/workspaces/images/privileges/1de80b5c1dc03f980a51b68ec131b64c7a6a31bab83a8785a8357a3cdb08e828-Screenshot_2024-11-08_at_3.28.38_PM.png diff --git a/src/content/accounts-and-teams/images/permissions/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png b/src/content/workspaces/images/privileges/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png similarity index 100% rename from src/content/accounts-and-teams/images/permissions/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png rename to src/content/workspaces/images/privileges/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png diff --git a/src/content/accounts-and-teams/images/permissions/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png b/src/content/workspaces/images/privileges/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png similarity index 100% rename from src/content/accounts-and-teams/images/permissions/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png rename to src/content/workspaces/images/privileges/bc6f261a2f932151f6a2a6bb8d94e73de2b80e00cc46ff07c8395d99259fb1b3-Screenshot_2024-11-08_at_3.16.55_PM.png diff --git a/src/content/accounts-and-teams/images/permissions/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png b/src/content/workspaces/images/privileges/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png similarity index 100% rename from src/content/accounts-and-teams/images/permissions/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png rename to src/content/workspaces/images/privileges/f4f44e27835b8beb5a43d7449911bebc1b9aa683dcae63758c8d0fbb42ec495a-Screenshot_2024-11-08_at_3.23.22_PM.png diff --git a/src/content/workspaces/images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png b/src/content/workspaces/images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png deleted file mode 100644 index 8c15571cf78100d9812082313aeaf09550391172..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219732 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

    h?og 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πN`&L~?HR3cjL%_<3@Q|Z% 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 z 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 A;s5{u diff --git a/src/content/workspaces/images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png b/src/content/workspaces/images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png deleted file mode 100644 index 2c209af5c5fa64bd38ef68b7e268a7354fd87c02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372850 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

    sNBl)rjWC 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

    m~fu1O6 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 z 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

  1. #m;oj!)ygXFrBHB}|d%8Lk?YezN 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≶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

    0u| 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 nK(heTg$e53^KIb>-g5JW^=ip`bdy(rpYx|LpQ4 - - - -You are now presented with the "Create a new workspace" form. You are required to enter a name for your Workspace (don't worry, we will check your workspace name is unique for you before creating it). - - - -To configure the settings for the Workspace, just click on the Settings menu item: - - - -## Workspace Settings - -The menu on the left is where you can modify/configure Workspace settings, and has the following sections: - -- Workspace -- Billing -- Privileges -- Accounts and Teams -- Authentication -- Custom domains -- Usage limits -- Manage policies - -*** - -### Workspace - -The Workspace profile settings are where you configure the Workspace name, avatar and contact email addresses (including billing email address if different from the primary email address): - - - -From within the Workspace profile settings, you have the ability to rename your organization's slug/identifier, and if you really need too, you can delete an organization (caution: this is a permanent action and cannot be undone). - - - If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that currently use the repositories as the URI would no longer be valid. - - -### Billing - -The Workspace Billing settings are where you add or change your payment source, view your invoices and select / modify your current plan. - - - -### Privileges - -The Workspace Privileges settings are where you set global privileges and default object privileges. - -#### Global Privileges - -Global privileges settings are where you configure the permissions for current Workspace members to: - -- Create new teams in the organization -- Invite members to the organization -- Invite collaborators to the organization -- Allow members to view other members' email addresses -- Create new package repositories (with admin permissions in the new repository) - - -#### Default Object Privileges - -Default object privileges settings are where you configure the default privileges for objects within a package repository: - - - -| | | -| :---- | :-------------------------------------------------- | -| Admin | Members have full control over repositories | -| Write | Members can upload and download from the repository | -| Read | Members can download from the repository | -| None | Members have no repository access | - -### Accounts and Teams - -Workspace Accounts and Teams settings is used to control the default visibility of teams: - - - -- Hidden - Non-Members are not able to view the team -- Visible - Non-Members are able to view the team - -### Authentication - -Workspace Authentication settings is where you can configure and modify the authentication settings for your users, including: - -- Set up and enforce SAML authentication -- Configure and modify SAML Group Sync -- Configure and modify SCIM -- Enforce two-factor authentication -- Create and manage OIDC provider settings - - - -#### SAML - -Workspace SAML settings is where you can enable and enforce SAML authentication. To enable SAML Authentication, you just need to either provide a URL to remote fetch your SAML XML Metadata, or provide the SAML XML Metadata directly inline using the form. - - - -#### SAML Group Sync - -SAML Group Sync is where you can configure automatic mapping of your SAML Groups to Cloudsmith Teams. Please see the [SAML Group Sync](/access-control/single-sign-on#saml-group-sync) documentation for further details. - - - -#### SCIM - -SCIM is where you can enable SCIM provisioning and de-provisioning and obtain your username and password to configure SCIM in your chosen Identity Provider. Please see the [Single Sign-On with Okta](/access-control/single-sign-on-with-okta) documentation for an example of how you can configure SCIM for an Identity Provider. - - - -#### 2FA - -Workspace 2FA is where you can enable Two-Factor Authentication. This will force members to set up Two-Factor Authentication for additional security. - -### Custom Domains - -Custom domains let you utilize branded domains for any endpoint. Custom Domains settings are where you can view what custom domains have been configured for your Workspace account. - - - -### Usage Limits +# Workspaces -The Usage Limits settings are where you can configure additional usage of artifact data and package delivery for the Workspace. +What is a workspace. In the next sections we... - - - Setting a limit of 0GB will disable any overage - -### Manage policies +# Multiple Email Management -Cloudsmith's Policy Management lets your protect your workspace by defining policies that suit your business. Manage Policies settings is where you can configure and manage your workspace policies. Policy types include: +It's often the case that one ends up juggling multiple email accounts and using them simultaneously to access different services. This is often the case if you belong to multiple workspaces, and each provides you with an email address that is specific to it. To help manage and facilitate this, you can now add multiple email addresses to your Cloudsmith User Account. Once an email is verified, you can log in with it. You can also specify your primary email address, which we'll email when contacting you. -- License policies -- Vulnerability policies -- Authentication policies -- Package deny policies +In addition to that, we're proud to say that we're fully compliant with the latest privacy laws in the EU (the GDPR, which you've likely heard about more often than you'd like to). As such, you can now manage your email communication preferences and choose whether you want to opt-in or opt-out for emails. -Please see [Policy Management](/policy-management/policy-management) documentation for more details on each policy type. diff --git a/src/content/getting-started/joining-a-workspace.mdx b/src/content/workspaces/joining-a-workspace.mdx similarity index 100% rename from src/content/getting-started/joining-a-workspace.mdx rename to src/content/workspaces/joining-a-workspace.mdx diff --git a/src/content/workspaces/privileges.mdx b/src/content/workspaces/privileges.mdx new file mode 100644 index 00000000..2685f513 --- /dev/null +++ b/src/content/workspaces/privileges.mdx @@ -0,0 +1,72 @@ +import { BlockImage, Note } from '@/components' + +import img_Screenshot_2024_11_08_at_3_15_38_PM from './images/privileges/47511f8f4786d93637ca175abeac2302a095445c08f920e372ed8f46be5aad48-Screenshot_2024-11-08_at_3.15.38_PM.png' + +# Workspace Privileges + +Once your Cloudsmith Workspace [is set up](/workspaces/workspace-create), you can implement a least privilege approach to secure your software supply chain. This is achieved by defining roles and permissions that control access to your artifacts and workspace settings. This page describes these roles and details how they can be modified and tailored for your specific use cases. + +## Workspace User Roles + +Cloudsmith provides the next levels of user privileges, based on four roles: + +| Role | Permissions | +| :--- | :--- | +| **Owners** | Can modify all workspace settings, manage other owners or delete the workspace. They are the "root" of the workspace, the only user that can manage all other users (including owners) or delete the workspace, and have full access over all artifacts within the Workspace repositories. | +| **Manager** | Can manage workspace settings and all non-owner users and teams. By default, they have no access to artifacts within the Workspace repositories, but it can be assigned to them (see [Default Object Privileges](#default-object-privileges)). | +| **Member** | Can see other members and visible teams. They inherit privileges from workspace and team membership. | +| **Collaborator** | Can see other team members and inherit privileges from their teams, but they can't access Workspace or Repository settings. | + +📘 Please note that this roles only apply to Account Member Accounts. For Service Accounts, only **Manager** and **Member** roles can be assigned. + +### User Role Assignment + +You can assign any of the roles described above when you [invite users](/accounts-and-teams/invite-users) to a Workspace: + + + +Once assigned, roles can also be modified from the **Accounts** tab in your Workspace. + +## Workspace User Team Roles + +Additionaly, users can play different roles in teams: + +| Role | Permissions | +| :--- | :--- | +| **Manager** | Can manage team settings and members. Inherits all privileges assigned to the team. | +| **Member** | Inherits all privileges assigned to the team. | + +### User Team Role Assignment + +Team roles can be edited for each of the users belonging from the **Teams** tab in your Workspace. When a user is added to a team, you can select its role in the team. + +## Global Privileges + +By default, accounts with the **Member** role assigned have no access over certain Workspace settings. This behaviour can be overridden in the Workspace **Global Privileges** settings. To access this setting, browse to your _Workspace Settings_ and, in the left menu, click _Privileges_. + + +📘 Please note that this setting applies to **workspace members** only. **Owners and managers** can always perform these actions by default, and **Collaborators** can't be granted this level of privileges. + + +The next extra privileges can be granted to workspace members: +- Create new teams. +- Invite new users with member or collaborator access role (no manager or owner roles allowed, as this could be use to escalate privileges). +- See other member's unredacted email addresses. +- Create new repositories. + +## Default Object Privileges + +You can set the default repository privileges for workspace members and managers. + +📘 Note that these settings apply only to **Members** and **Managers**. **Owners** always have full administrative access to all repositories. **Collaborators** do not inherit these workspace-level privileges, but you can grant them permissions on a per-repository basis. + +By default, users are granted no specific repository privileges. You can choose from the following options: + +| Privilege | Description | +| :--- | :--- | +| **Admin** | Allows users to manage repository settings, user permissions, and entitlements. Includes Write and Read privileges too. | +| **Write** | Allows users to upload, edit, and delete packages within the repository. Includes Read privileges too. | +| **Read** | Allows users to view and download packages. This permission is for authenticated users working directly in the system. In contrast, an entitlement token is typically used by automated systems (like a CI/CD pipeline) for programmatic, read-only access without a user account. | +| **None** | (Default) No specific repository permissions are granted. | + +To configure more specific access rules for individual users, teams, or services, see the [Repository Access Control](/repositories/access-controls) documentation. diff --git a/src/content/workspaces/workspace-create.mdx b/src/content/workspaces/workspace-create.mdx new file mode 100644 index 00000000..c61bb424 --- /dev/null +++ b/src/content/workspaces/workspace-create.mdx @@ -0,0 +1,23 @@ +import { Note, BlockImage } from '@/components' + +import img_create_new_workspace from './images/workspaces/cfdd1f15b797468042b95b6e4616402426e5f08720e503039b3b86a269487648-create-new-workspace.png' +import img_create_workspace_button from './images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png' +import img_create_a_new_workspace_form from './images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png' + +Creating a _Workspace_ in Cloudsmith allows you to configure access for teams, individuals and machines that map to your company's organizational structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. This is a quick start guide to the powerful permission system within Cloudsmith and how you can get started. + +## Create a Workspace + +To create a new Workspace: + +1. Navigate to "Workspaces" in the global menu +2. Click "Workspaces" +3. Click "Create Workspace" + + + + + +You are now presented with the "Create a new workspace" form. You are required to enter a name for your Workspace (don't worry, we will check your workspace name is unique for you before creating it). + + \ No newline at end of file diff --git a/src/content/workspaces/workspace-settings.mdx b/src/content/workspaces/workspace-settings.mdx new file mode 100644 index 00000000..e347ba36 --- /dev/null +++ b/src/content/workspaces/workspace-settings.mdx @@ -0,0 +1,92 @@ +import { Note, BlockImage } from '@/components' + +import img_settings_workspaces from './images/workspaces/7ea55d80fcf7a86db156b47aafb9c5e0eff26cabb5bb832fafbd7c0fd2ade07f-settings-workspaces.png' +import img_workspace_profile from './images/workspaces/ebfd1af9bdfbb8a0015e8e885c01164fa68055d41a1ededa538c5fd55f77eb0d-workspace-profile.png' +import img_billing_settings from './images/workspaces/f68019bfd870d2451ab22cd5291ee99120e96b7a6931401e164727d0faacdb88-billing-settings.png' +import img_global_privileges from './images/workspaces/13a08bb0b4e09840757898328a717c25a2e978d68a1daff7816c0f44a06cf311-global-privileges.png' +import img_object_privileges from './images/workspaces/2437eb9334abde4fdaf268840bff7b39ea4894e795f7c01d3d094f20592229ac-object-privileges.png' +import img_teams from './images/workspaces/5a7210ce89a4ad40fc961f1500a76a7fa469f363f3ac7d7a07fbe2e7dd41a636-teams.png' +import img_custom_domains from './images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png' +import img_usage_limits from './images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png' + +# Workspaces + +To configure the settings for the Workspace, just click on the Settings menu item: + + + +## Workspace Settings + +The menu on the left is where you can modify/configure Workspace settings, and has the following sections: + +- Workspace +- Billing +- Privileges +- Accounts and Teams +- Authentication +- Custom domains +- Usage limits +- Manage policies + +### Workspace + +The Workspace profile settings are where you configure the Workspace name, avatar and contact email addresses (including billing email address if different from the primary email address): + + + +From within the Workspace profile settings, you have the ability to rename your organization's slug/identifier, and if you really need too, you can delete an organization (caution: this is a permanent action and cannot be undone). + + + If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that currently use the repositories as the URI would no longer be valid. + + +### Billing + +The Workspace Billing settings are where you add or change your payment source, view your invoices and select / modify your current plan. + + + +### Privileges + +The Workspace Privileges settings are where you set global privileges and default object privileges. For a high-level description, visit the [Workspace privileges](/workspaces/privileges) documentation pages. + +### Accounts and Teams + +Workspace Accounts and Teams settings is used to control the default visibility of teams: + + + +- Hidden - Non-Members are not able to view the team +- Visible - Non-Members are able to view the team + +### Authentication + +Workspace Authentication settings is where you can configure and modify the authentication settings for your users. For a high-level description, visit the [Authentication](/authentication) documentation pages. + + +### Custom Domains + +Custom domains let you utilize branded domains for any endpoint. Custom Domains settings are where you can view what custom domains have been configured for your Workspace account. + + + +### Usage Limits + +The Usage Limits settings are where you can configure additional usage of artifact data and package delivery for the Workspace. + + + + + Setting a limit of 0GB will disable any overage + + +### Manage policies + +Cloudsmith's Policy Management lets your protect your workspace by defining policies that suit your business. Manage Policies settings is where you can configure and manage your workspace policies. Policy types include: + +- License policies +- Vulnerability policies +- Authentication policies +- Package deny policies + +Please see [Policy Management](/policy-management/policy-management) documentation for more details on each policy type. From df977b3b7bf24a57da4396dce304da2643db1abe Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 1 Jul 2025 22:18:45 +0200 Subject: [PATCH 010/127] Revert support for 2 api spec files --- .env | 2 +- package-lock.json | 18721 ++++++ pnpm-lock.yaml | 5178 +- public/api-schema-v2.json | 59811 ------------------ public/api-schema-v3.json | 59811 ------------------ src/app/(api)/Sidebar.tsx | 37 +- src/app/(api)/api/[...slug]/page.module.css | 15 + src/app/(api)/api/[...slug]/page.tsx | 120 + src/app/(api)/api/page.tsx | 53 + src/lib/swagger/parse.ts | 31 +- src/lib/swagger/types.ts | 1 - src/lib/swagger/util.ts | 7 +- 12 files changed, 21441 insertions(+), 122346 deletions(-) create mode 100644 package-lock.json delete mode 100644 public/api-schema-v2.json delete mode 100644 public/api-schema-v3.json create mode 100644 src/app/(api)/api/[...slug]/page.module.css create mode 100644 src/app/(api)/api/[...slug]/page.tsx create mode 100644 src/app/(api)/api/page.tsx diff --git a/.env b/.env index 16d79383..f5bafb4c 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io/v1" +NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io/v2" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..2b406ba9 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,18721 @@ +{ + "name": "cloudsmith-docs", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cloudsmith-docs", + "version": "0.0.1", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.0", + "@mdx-js/loader": "^3.1.0", + "@mdx-js/react": "^3.1.0", + "@next/mdx": "15.1.6", + "class-variance-authority": "^0.7.1", + "date-fns": "^4.1.0", + "fast-fuzzy": "^1.12.0", + "fast-glob": "^3.3.3", + "motion": "^12.4.2", + "next": "15.2.4", + "react": "19.0.0", + "react-dom": "19.0.0", + "react-hotkeys-hook": "^4.6.1", + "react-player": "^2.16.0", + "remark-frontmatter": "^5.0.0", + "remark-mdx-frontmatter": "^5.0.0" + }, + "devDependencies": { + "@csstools/postcss-global-data": "^3.0.0", + "@lehoczky/postcss-fluid": "^1.0.3", + "@next/env": "15.1.7", + "@radix-ui/react-dialog": "^1.1.5", + "@radix-ui/react-tabs": "^1.1.3", + "@radix-ui/react-visually-hidden": "^1.1.2", + "@shikijs/transformers": "^2.3.2", + "@svgr/webpack": "^8.1.0", + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.1.0", + "@trivago/prettier-plugin-sort-imports": "^5.2.0", + "@types/jest": "^29.5.14", + "@types/mdx": "^2.0.13", + "@types/node": "22.10.10", + "@types/react": "19.0.8", + "@types/react-dom": "19.0.3", + "eslint": "^9.20.0", + "eslint-config-next": "15.1.7", + "eslint-config-prettier": "^10.0.1", + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "openapi-types": "^12.1.3", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-load-config": "^6.0.1", + "postcss-preset-env": "^10.1.1", + "prettier": "^3.4.2", + "rehype-autolink-headings": "^7.1.0", + "rehype-sanitize": "^6.0.0", + "rehype-slug": "^6.0.0", + "remark-gfm": "^4.0.1", + "shiki": "^2.2.0", + "stylelint": "^16.14.1", + "stylelint-config-css-modules": "^4.4.0", + "stylelint-config-standard": "^37.0.0", + "ts-node": "^10.9.2", + "tsx": "^4.19.2", + "typescript": "5.7.3" + }, + "engines": { + "node": "22.x" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", + "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", + "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz", + "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.27.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz", + "integrity": "sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz", + "integrity": "sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", + "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz", + "integrity": "sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz", + "integrity": "sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz", + "integrity": "sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.27.0", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz", + "integrity": "sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-typescript": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", + "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", + "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", + "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", + "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.8.tgz", + "integrity": "sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.8.tgz", + "integrity": "sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", + "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.7.tgz", + "integrity": "sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.8.tgz", + "integrity": "sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-global-data": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-global-data/-/postcss-global-data-3.0.0.tgz", + "integrity": "sha512-3dR5+RDhPW1uqPWZUyTBSVn03gGbxzoSyCEpXugy9UMtXeyKjrB84dX3V8eggzooCsX8wcraKehzdouNO+MlsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.8.tgz", + "integrity": "sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.8.tgz", + "integrity": "sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", + "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", + "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", + "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", + "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.7.tgz", + "integrity": "sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", + "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.8.tgz", + "integrity": "sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", + "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.3.tgz", + "integrity": "sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.8.tgz", + "integrity": "sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.2.tgz", + "integrity": "sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.7.tgz", + "integrity": "sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.2.tgz", + "integrity": "sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.7.tgz", + "integrity": "sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.2", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/selector-resolve-nested": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", + "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@dual-bundle/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", + "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz", + "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz", + "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz", + "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", + "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.12.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@keyv/serialize": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.3.tgz", + "integrity": "sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/@lehoczky/postcss-fluid": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lehoczky/postcss-fluid/-/postcss-fluid-1.0.3.tgz", + "integrity": "sha512-UQhBUGDpMA3wWGTWeVArL+dm2lbBM9LAFUg8U+CAt3gFpCDIdZHjq+mpf3OWos39aZQiYyLrZfRM8ynbPewfUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "postcss": "^8.3.0" + } + }, + "node_modules/@mdx-js/loader": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-3.1.0.tgz", + "integrity": "sha512-xU/lwKdOyfXtQGqn3VnJjlDrmKXEvMi1mgYxVmukEUtVycIz1nh7oQ40bKTd4cA7rLStqu0740pnhGYxGoqsCg==", + "license": "MIT", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "webpack": ">=5" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz", + "integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==", + "license": "MIT", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.1.7.tgz", + "integrity": "sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.1.7.tgz", + "integrity": "sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@next/eslint-plugin-next/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@next/mdx": { + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-15.1.6.tgz", + "integrity": "sha512-jt9b9ayY8z3F/oQa2YCK7NugxY6ttAiJ8Eu29OTwwW5rcYMjXohIRaqsSrgFWhCFkJA6/EccKO+1ApocCZnn5A==", + "license": "MIT", + "dependencies": { + "source-map": "^0.7.0" + }, + "peerDependencies": { + "@mdx-js/loader": ">=0.15.0", + "@mdx-js/react": ">=0.15.0" + }, + "peerDependenciesMeta": { + "@mdx-js/loader": { + "optional": true + }, + "@mdx-js/react": { + "optional": true + } + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz", + "integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz", + "integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz", + "integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz", + "integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz", + "integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz", + "integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz", + "integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz", + "integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.2.tgz", + "integrity": "sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-slot": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.6.tgz", + "integrity": "sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.5", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.2", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.4", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-slot": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.5.tgz", + "integrity": "sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.2.tgz", + "integrity": "sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.4.tgz", + "integrity": "sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.2.tgz", + "integrity": "sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.2.tgz", + "integrity": "sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.2.tgz", + "integrity": "sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.3.tgz", + "integrity": "sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.2", + "@radix-ui/react-roving-focus": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.2.tgz", + "integrity": "sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@shikijs/core": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-2.5.0.tgz", + "integrity": "sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz", + "integrity": "sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "oniguruma-to-es": "^3.1.0" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz", + "integrity": "sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2" + } + }, + "node_modules/@shikijs/langs": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-2.5.0.tgz", + "integrity": "sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/themes": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-2.5.0.tgz", + "integrity": "sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/transformers": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/transformers/-/transformers-2.5.0.tgz", + "integrity": "sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/types": "2.5.0" + } + }, + "node_modules/@shikijs/types": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-2.5.0.tgz", + "integrity": "sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", + "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.2.0.tgz", + "integrity": "sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@trivago/prettier-plugin-sort-imports": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-5.2.2.tgz", + "integrity": "sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "javascript-natural-sort": "^0.7.1", + "lodash": "^4.17.21" + }, + "engines": { + "node": ">18.12" + }, + "peerDependencies": { + "@vue/compiler-sfc": "3.x", + "prettier": "2.x - 3.x", + "prettier-plugin-svelte": "3.x", + "svelte": "4.x || 5.x" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "prettier-plugin-svelte": { + "optional": true + }, + "svelte": { + "optional": true + } + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "license": "MIT" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.10.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz", + "integrity": "sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/react": { + "version": "19.0.8", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.8.tgz", + "integrity": "sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==", + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.3.tgz", + "integrity": "sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", + "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/type-utils": "8.28.0", + "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", + "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/typescript-estree": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", + "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", + "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.28.0", + "@typescript-eslint/utils": "8.28.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", + "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", + "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/visitor-keys": "8.28.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", + "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.28.0", + "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/typescript-estree": "8.28.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.28.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", + "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.28.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.3.2.tgz", + "integrity": "sha512-ddnlXgRi0Fog5+7U5Q1qY62wl95Q1lB4tXQX1UIA9YHmRCHN2twaQW0/4tDVGCvTVEU3xEayU7VemEr7GcBYUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.3.2.tgz", + "integrity": "sha512-tnl9xoEeg503jis+LW5cuq4hyLGQyqaoBL8VdPSqcewo/FL1C8POHbzl+AL25TidWYJD+R6bGUTE381kA1sT9w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.3.2.tgz", + "integrity": "sha512-zyPn9LFCCjhKPeCtECZaiMUgkYN/VpLb4a9Xv7QriJmTaQxsuDtXqOHifrzUXIhorJTyS+5MOKDuNL0X9I4EHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.3.2.tgz", + "integrity": "sha512-UWx56Wh59Ro69fe+Wfvld4E1n9KG0e3zeouWLn8eSasyi/yVH/7ZW3CLTVFQ81oMKSpXwr5u6RpzttDXZKiO4g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.3.2.tgz", + "integrity": "sha512-VYGQXsOEJtfaoY2fOm8Z9ii5idFaHFYlrq3yMFZPaFKo8ufOXYm8hnfru7qetbM9MX116iWaPC0ZX5sK+1Dr+g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.3.2.tgz", + "integrity": "sha512-3zP420zxJfYPD1rGp2/OTIBxF8E3+/6VqCG+DEO6kkDgBiloa7Y8pw1o7N9BfgAC+VC8FPZsFXhV2lpx+lLRMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.3.2.tgz", + "integrity": "sha512-ZWjSleUgr88H4Kei7yT4PlPqySTuWN1OYDDcdbmMCtLWFly3ed+rkrcCb3gvqXdDbYrGOtzv3g2qPEN+WWNv5Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.3.2.tgz", + "integrity": "sha512-p+5OvYJ2UOlpjes3WfBlxyvQok2u26hLyPxLFHkYlfzhZW0juhvBf/tvewz1LDFe30M7zL9cF4OOO5dcvtk+cw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.3.2.tgz", + "integrity": "sha512-yweY7I6SqNn3kvj6vE4PQRo7j8Oz6+NiUhmgciBNAUOuI3Jq0bnW29hbHJdxZRSN1kYkQnSkbbA1tT8VnK816w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.3.2.tgz", + "integrity": "sha512-fNIvtzJcGN9hzWTIayrTSk2+KHQrqKbbY+I88xMVMOFV9t4AXha4veJdKaIuuks+2JNr6GuuNdsL7+exywZ32w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.3.2.tgz", + "integrity": "sha512-OaFEw8WAjiwBGxutQgkWhoAGB5BQqZJ8Gjt/mW+m6DWNjimcxU22uWCuEtfw1CIwLlKPOzsgH0429fWmZcTGkg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.3.2.tgz", + "integrity": "sha512-u+sumtO7M0AGQ9bNQrF4BHNpUyxo23FM/yXZfmVAicTQ+mXtG06O7pm5zQUw3Mr4jRs2I84uh4O0hd8bdouuvQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.3.2.tgz", + "integrity": "sha512-ZAJKy95vmDIHsRFuPNqPQRON8r2mSMf3p9DoX+OMOhvu2c8OXGg8MvhGRf3PNg45ozRrPdXDnngURKgaFfpGoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.3.2.tgz", + "integrity": "sha512-nQG4YFAS2BLoKVQFK/FrWJvFATI5DQUWQrcPcsWG9Ve5BLLHZuPOrJ2SpAJwLXQrRv6XHSFAYGI8wQpBg/CiFA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.3.2.tgz", + "integrity": "sha512-XBWpUP0mHya6yGBwNefhyEa6V7HgYKCxEAY4qhTm/PcAQyBPNmjj97VZJOJkVdUsyuuii7xmq0pXWX/c2aToHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cacheable": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.9.tgz", + "integrity": "sha512-FicwAUyWnrtnd4QqYAoRlNs44/a1jTL7XDKqm5gJ90wz1DQPlC7U2Rd1Tydpv+E7WAr4sQHuw8Q8M3nZMAyecQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.7.1", + "keyv": "^5.3.1" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.2.tgz", + "integrity": "sha512-Lji2XRxqqa5Wg+CHLVfFKBImfJZ4pCSccu9eVWK6w4c2SDFLd8JAn1zqTuSFnsxb7ope6rMsnIHfp+eBbRBRZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.0.3" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001707", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz", + "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.41.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", + "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-functions-list": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12 || >=16" + } + }, + "node_modules/css-has-pseudo": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.2.tgz", + "integrity": "sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.4.tgz", + "integrity": "sha512-3KSCVkjZJe/QxicVXnbyYSY26WsFc1YoMY7jep1ZKWMEVc7jEm6V2Xq2r+MX8WKQIuB7ofGbnr5iVI+aZpoSzg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/decode-named-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.126", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.126.tgz", + "integrity": "sha512-AtH1uLcTC72LA4vfYcEJJkrMk/MY/X0ub8Hv7QGAePW2JkeUFHEL/QfS4J77R6M87Sss8O0OcqReSaN1bpyA+Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "9.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz", + "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.2", + "@eslint/config-helpers": "^0.2.0", + "@eslint/core": "^0.12.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.23.0", + "@eslint/plugin-kit": "^0.2.7", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "15.1.7", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.1.7.tgz", + "integrity": "sha512-zXoMnYUIy3XHaAoOhrcYkT9UQWvXqWju2K7NNsmb5wd/7XESDwof61eUdW4QhERr3eJ9Ko/vnXqIrj8kk/drYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "15.1.7", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.1.tgz", + "integrity": "sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.0.tgz", + "integrity": "sha512-aV3/dVsT0/H9BtpNwbaqvl+0xGMRGzncLyhm793NFGvbwGGvzyAykqWZ8oZlZuGwuHkwJjhWJkG1cM3ynvd2pQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12", + "unrs-resolver": "^1.3.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz", + "integrity": "sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-fuzzy": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/fast-fuzzy/-/fast-fuzzy-1.12.0.tgz", + "integrity": "sha512-sXxGgHS+ubYpsdLnvOvJ9w5GYYZrtL9mkosG3nfuD446ahvoWEsSKBP7ieGmWIKVLnaxRDgUJkZMdxRgA2Ni+Q==", + "license": "ISC", + "dependencies": { + "graphemesplit": "^2.4.1" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.6.2.tgz", + "integrity": "sha512-7LgPRlPs5aG8UxeZiMCMZz8firC53+2+9TnWV22tuSi38D3IFRxHRUqOREKckAkt6ztX+Dn6weLcatQilJTMcg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.6.1", + "motion-utils": "^12.5.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true, + "license": "ISC" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true, + "license": "MIT" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/graphemesplit": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/graphemesplit/-/graphemesplit-2.6.0.tgz", + "integrity": "sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==", + "license": "MIT", + "dependencies": { + "js-base64": "^3.6.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-sanitize": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", + "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "unist-util-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-js": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-string": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.1.tgz", + "integrity": "sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hookified": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.1.tgz", + "integrity": "sha512-GrO2l93P8xCWBSTBX9l2BxI78VU/MAAYag+pG8curS3aBGy0++ZlxrQ7PdUOUVMbn5BwkGb6+eRrnf43ipnFEA==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/html-tags": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", + "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "license": "MIT" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-config/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-diff/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-base64": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.7.tgz", + "integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==", + "license": "BSD-3-Clause" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/known-css-properties": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "license": "MIT" + }, + "node_modules/meow": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", + "integrity": "sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/motion": { + "version": "12.6.2", + "resolved": "https://registry.npmjs.org/motion/-/motion-12.6.2.tgz", + "integrity": "sha512-8OBjjuC59WuWHKmPzVWT5M0t5kDxtkfMfHF1M7Iey6F/nvd0AI15YlPnpGlcagW/eOfkdWDO90U/K5LF/k55Yw==", + "license": "MIT", + "dependencies": { + "framer-motion": "^12.6.2", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/motion-dom": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.6.1.tgz", + "integrity": "sha512-8XVsriTUEVOepoIDgE/LDGdg7qaKXWdt+wQA/8z0p8YzJDLYL8gbimZ3YkCLlj7bB2i/4UBD/g+VO7y9ZY0zHQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.5.0" + } + }, + "node_modules/motion-utils": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.5.0.tgz", + "integrity": "sha512-+hFFzvimn0sBMP9iPxBa9OtRX35ZQ3py0UHnb8U29VD+d8lQ8zH3dTygJWqK7av2v6yhg7scj9iZuvTS0f4+SA==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz", + "integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.2.4", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.2.4", + "@next/swc-darwin-x64": "15.2.4", + "@next/swc-linux-arm64-gnu": "15.2.4", + "@next/swc-linux-arm64-musl": "15.2.4", + "@next/swc-linux-x64-gnu": "15.2.4", + "@next/swc-linux-x64-musl": "15.2.4", + "@next/swc-win32-arm64-msvc": "15.2.4", + "@next/swc-win32-x64-msvc": "15.2.4", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/@next/env": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz", + "integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==", + "license": "MIT" + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.19", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.19.tgz", + "integrity": "sha512-94bcyI3RsqiZufXjkr3ltkI86iEl+I7uiHVDtcq9wJUTwYQJ5odHDeSzkkrRzi80jJ8MaeZgqKjH1bAWAFw9bA==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oniguruma-to-es": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz", + "integrity": "sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^6.0.1", + "regex-recursion": "^6.0.2" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.8.tgz", + "integrity": "sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", + "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", + "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", + "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", + "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.8.tgz", + "integrity": "sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.0.8", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/postcss-nesting": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", + "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.0.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "dev": true, + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.5.tgz", + "integrity": "sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^5.0.1", + "@csstools/postcss-color-function": "^4.0.8", + "@csstools/postcss-color-mix-function": "^3.0.8", + "@csstools/postcss-content-alt-text": "^2.0.4", + "@csstools/postcss-exponential-functions": "^2.0.7", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.8", + "@csstools/postcss-gradients-interpolation-method": "^5.0.8", + "@csstools/postcss-hwb-function": "^4.0.8", + "@csstools/postcss-ic-unit": "^4.0.0", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.1", + "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.3", + "@csstools/postcss-media-minmax": "^2.0.7", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.0", + "@csstools/postcss-oklab-function": "^4.0.8", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-random-function": "^1.0.3", + "@csstools/postcss-relative-color-syntax": "^3.0.8", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.2", + "@csstools/postcss-stepped-value-functions": "^4.0.7", + "@csstools/postcss-text-decoration-shorthand": "^4.0.2", + "@csstools/postcss-trigonometric-functions": "^4.0.7", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.19", + "browserslist": "^4.24.4", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.2", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.2.3", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.8", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.5", + "postcss-custom-properties": "^14.0.4", + "postcss-custom-selectors": "^8.0.4", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.0", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.8", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.1", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss-safe-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss-safe-parser" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/property-information": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" + }, + "node_modules/react-hotkeys-hook": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.6.1.tgz", + "integrity": "sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.1", + "react-dom": ">=16.8.1" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-player": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.16.0.tgz", + "integrity": "sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.0.0", + "load-script": "^1.0.0", + "memoize-one": "^5.1.1", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.0.1" + }, + "peerDependencies": { + "react": ">=16.6.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", + "integrity": "sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-6.0.2.tgz", + "integrity": "sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/rehype-autolink-headings": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-7.1.0.tgz", + "integrity": "sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-sanitize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-sanitize/-/rehype-sanitize-6.0.0.tgz", + "integrity": "sha512-CsnhKNsyI8Tub6L4sm5ZFsme4puGfc6pYylvXo1AeqaGbjOYyzNv3qZPwvs0oMJ39eryyeOdmxwUIo94IpEhqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-sanitize": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx-frontmatter": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx-frontmatter/-/remark-mdx-frontmatter-5.1.0.tgz", + "integrity": "sha512-F2l+FydK/QVwYMC4niMYl4Kh83TIfoR4qV9ekh/riWRakTTyjcLLyKTBo9fVgEtOmTEfIrqWwiYIm42+I5PMfQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "estree-util-value-to-estree": "^3.0.0", + "toml": "^3.0.0", + "unified": "^11.0.0", + "unist-util-mdx-define": "^1.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-2.5.0.tgz", + "integrity": "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "2.5.0", + "@shikijs/engine-javascript": "2.5.0", + "@shikijs/engine-oniguruma": "2.5.0", + "@shikijs/langs": "2.5.0", + "@shikijs/themes": "2.5.0", + "@shikijs/types": "2.5.0", + "@shikijs/vscode-textmate": "^10.0.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-js": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.16.tgz", + "integrity": "sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.8" + } + }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/stylelint": { + "version": "16.17.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.17.0.tgz", + "integrity": "sha512-I9OwVIWRMqVm2Br5iTbrfSqGRPWQUlvm6oXO1xZuYYu0Gpduy67N8wXOZv15p6E/JdlZiAtQaIoLKZEWk5hrjw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.1.0", + "balanced-match": "^2.0.0", + "colord": "^2.9.3", + "cosmiconfig": "^9.0.0", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.3.7", + "fast-glob": "^3.3.3", + "fastest-levenshtein": "^1.0.16", + "file-entry-cache": "^10.0.7", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.3.1", + "ignore": "^7.0.3", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.35.0", + "mathml-tag-names": "^2.1.3", + "meow": "^13.2.0", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.3", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.0", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "string-width": "^4.2.3", + "supports-hyperlinks": "^3.2.0", + "svg-tags": "^1.0.0", + "table": "^6.9.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.mjs" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/stylelint-config-css-modules": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/stylelint-config-css-modules/-/stylelint-config-css-modules-4.4.0.tgz", + "integrity": "sha512-J93MtxPjRzs/TjwbJ5y9SQy4iIqULXwL1CF1yx2tQCJfS/VZUcDAmoGOwqlLbhHXSQtZO5XQiA75NVWUR3KDCQ==", + "dev": true, + "license": "Unlicense", + "optionalDependencies": { + "stylelint-scss": "^6.0.0" + }, + "peerDependencies": { + "stylelint": "^14.5.1 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/stylelint-config-recommended": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-15.0.0.tgz", + "integrity": "sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.13.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "37.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-37.0.0.tgz", + "integrity": "sha512-+6eBlbSTrOn/il2RlV0zYGQwRTkr+WtzuVSs1reaWGObxnxLpbcspCUYajVQHonVfxVw2U+h42azGhrBvcg8OA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^15.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.13.0" + } + }, + "node_modules/stylelint-scss": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.11.1.tgz", + "integrity": "sha512-e4rYo0UY+BIMtGeGanghrvHTjcryxgZbyFxUedp8dLFqC4P70aawNdYjRrQxbnKhu3BNr4+lt5e/53tcKXiwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "css-tree": "^3.0.1", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.35.0", + "mdn-data": "^2.15.0", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^7.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.0.2" + } + }, + "node_modules/stylelint-scss/node_modules/mdn-data": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.18.0.tgz", + "integrity": "sha512-gtCy1yim/vpHF/tq3B4Z43x3zKWpYeb4IM3d/Mf4oMYcNuoXOYEaqtoFlLHw9zd7+WNN3jNh6/WXyUrD3OIiwQ==", + "dev": true, + "license": "CC0-1.0", + "optional": true + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/stylelint/node_modules/file-entry-cache": { + "version": "10.0.7", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.7.tgz", + "integrity": "sha512-txsf5fu3anp2ff3+gOJJzRImtrtm/oa9tYLN0iTuINZ++EyVR/nRrg2fKYwvG/pXDofcrvvb0scEbX3NyW/COw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^6.1.7" + } + }, + "node_modules/stylelint/node_modules/flat-cache": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.7.tgz", + "integrity": "sha512-qwZ4xf1v1m7Rc9XiORly31YaChvKt6oNVHuqqZcoED/7O+ToyNVGobKsIAopY9ODcWpEDKEBAbrSOCBHtNQvew==", + "dev": true, + "license": "MIT", + "dependencies": { + "cacheable": "^1.8.9", + "flatted": "^3.3.3", + "hookified": "^1.7.1" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", + "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stylelint/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/stylelint/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/svgo/node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/table": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsx": { + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", + "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-mdx-define": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unist-util-mdx-define/-/unist-util-mdx-define-1.1.1.tgz", + "integrity": "sha512-wW3Uq+92zHTCoJRVWBWr4KHMpkOIHMVZ5kyU/HVV4l1UMl6j2Vs6P+uj8tFMUk9QoA3wR/7wOVD23Cx77dXXoA==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unrs-resolver": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.3.2.tgz", + "integrity": "sha512-ZKQBC351Ubw0PY8xWhneIfb6dygTQeUHtCcNGd0QB618zabD/WbFMYdRyJ7xeVT+6G82K5v/oyZO0QSHFtbIuw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/resolver-binding-darwin-arm64": "1.3.2", + "@unrs/resolver-binding-darwin-x64": "1.3.2", + "@unrs/resolver-binding-freebsd-x64": "1.3.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.3.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.3.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.3.2", + "@unrs/resolver-binding-linux-x64-musl": "1.3.2", + "@unrs/resolver-binding-wasm32-wasi": "1.3.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.3.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.3.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.3.2" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4b8d8652..af8a426c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,16 +10,16 @@ importers: dependencies: '@apidevtools/swagger-parser': specifier: ^10.1.0 - version: 10.1.1(openapi-types@12.1.3) + version: 10.1.0(openapi-types@12.1.3) '@mdx-js/loader': specifier: ^3.1.0 - version: 3.1.0(acorn@8.15.0) + version: 3.1.0(acorn@8.14.0) '@mdx-js/react': specifier: ^3.1.0 version: 3.1.0(@types/react@19.0.8)(react@19.0.0) '@next/mdx': specifier: 15.1.6 - version: 15.1.6(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0)) + version: 15.1.6(@mdx-js/loader@3.1.0(acorn@8.14.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -34,10 +34,10 @@ importers: version: 3.3.3 motion: specifier: ^12.4.2 - version: 12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next: specifier: 15.2.4 - version: 15.2.4(@babel/core@7.27.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 15.2.4(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: specifier: 19.0.0 version: 19.0.0 @@ -46,7 +46,7 @@ importers: version: 19.0.0(react@19.0.0) react-hotkeys-hook: specifier: ^4.6.1 - version: 4.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 4.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-player: specifier: ^2.16.0 version: 2.16.0(react@19.0.0) @@ -55,29 +55,29 @@ importers: version: 5.0.0 remark-mdx-frontmatter: specifier: ^5.0.0 - version: 5.2.0 + version: 5.0.0 devDependencies: '@csstools/postcss-global-data': specifier: ^3.0.0 - version: 3.0.0(postcss@8.5.6) + version: 3.0.0(postcss@8.5.2) '@lehoczky/postcss-fluid': specifier: ^1.0.3 - version: 1.0.3(postcss@8.5.6) + version: 1.0.3(postcss@8.5.2) '@next/env': specifier: 15.1.7 version: 15.1.7 '@radix-ui/react-dialog': specifier: ^1.1.5 - version: 1.1.14(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-tabs': specifier: ^1.1.3 - version: 1.1.12(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@radix-ui/react-visually-hidden': specifier: ^1.1.2 - version: 1.2.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@shikijs/transformers': specifier: ^2.3.2 - version: 2.5.0 + version: 2.3.2 '@svgr/webpack': specifier: ^8.1.0 version: 8.1.0(typescript@5.7.3) @@ -89,10 +89,10 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.1.0 - version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + version: 16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.0 - version: 5.2.2(prettier@3.6.1) + version: 5.2.0(prettier@3.4.2) '@types/jest': specifier: ^29.5.14 version: 29.5.14 @@ -110,13 +110,13 @@ importers: version: 19.0.3(@types/react@19.0.8) eslint: specifier: ^9.20.0 - version: 9.29.0 + version: 9.20.0 eslint-config-next: specifier: 15.1.7 - version: 15.1.7(eslint@9.29.0)(typescript@5.7.3) + version: 15.1.7(eslint@9.20.0)(typescript@5.7.3) eslint-config-prettier: specifier: ^10.0.1 - version: 10.1.5(eslint@9.29.0) + version: 10.0.1(eslint@9.20.0) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.10.10)(ts-node@10.9.2(@types/node@22.10.10)(typescript@5.7.3)) @@ -128,16 +128,16 @@ importers: version: 12.1.3 postcss-flexbugs-fixes: specifier: ^5.0.2 - version: 5.0.2(postcss@8.5.6) + version: 5.0.2(postcss@8.5.2) postcss-load-config: specifier: ^6.0.1 - version: 6.0.1(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0) + version: 6.0.1(postcss@8.5.2)(tsx@4.19.2)(yaml@2.7.0) postcss-preset-env: specifier: ^10.1.1 - version: 10.2.3(postcss@8.5.6) + version: 10.1.1(postcss@8.5.2) prettier: specifier: ^3.4.2 - version: 3.6.1 + version: 3.4.2 rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -152,38 +152,37 @@ importers: version: 4.0.1 shiki: specifier: ^2.2.0 - version: 2.5.0 + version: 2.2.0 stylelint: specifier: ^16.14.1 - version: 16.21.0(typescript@5.7.3) + version: 16.14.1(typescript@5.7.3) stylelint-config-css-modules: specifier: ^4.4.0 - version: 4.5.0(stylelint@16.21.0(typescript@5.7.3)) + version: 4.4.0(stylelint@16.14.1(typescript@5.7.3)) stylelint-config-standard: specifier: ^37.0.0 - version: 37.0.0(stylelint@16.21.0(typescript@5.7.3)) + version: 37.0.0(stylelint@16.14.1(typescript@5.7.3)) ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@22.10.10)(typescript@5.7.3) tsx: specifier: ^4.19.2 - version: 4.20.3 + version: 4.19.2 typescript: specifier: 5.7.3 version: 5.7.3 packages: - '@adobe/css-tools@4.4.3': - resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apidevtools/json-schema-ref-parser@11.7.2': - resolution: {integrity: sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==} - engines: {node: '>= 16'} + '@apidevtools/json-schema-ref-parser@9.0.6': + resolution: {integrity: sha512-M3YgsLjI0lZxvrpeGVk9Ap032W6TPQkH6pRAZz81Ac3WUNF79VQooAFnp8umjvVzUmD93NkogxEwbSce7qMsUg==} '@apidevtools/openapi-schemas@2.1.0': resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} @@ -192,141 +191,150 @@ packages: '@apidevtools/swagger-methods@3.0.2': resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} - '@apidevtools/swagger-parser@10.1.1': - resolution: {integrity: sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==} + '@apidevtools/swagger-parser@10.1.0': + resolution: {integrity: sha512-9Kt7EuS/7WbMAUv2gSziqjvxwDbFSg3Xeyfuj5laUODX8o/k/CpsAKiQ8W7/R88eXFTMbJYg6+7uAmOWNKmwnw==} peerDependencies: openapi-types: '>=7' - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.3': + resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.27.5': - resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/core@7.27.4': - resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} engines: {node: '>=6.9.0'} - '@babel/generator@7.27.5': - resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} + '@babel/generator@7.26.3': + resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.27.1': - resolution: {integrity: sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==} + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} + '@babel/helper-create-regexp-features-plugin@7.26.3': + resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-define-polyfill-provider@0.6.4': - resolution: {integrity: sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==} + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.27.3': - resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + '@babel/helper-replace-supers@7.25.9': + resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.27.1': - resolution: {integrity: sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==} + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.27.6': - resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.27.5': - resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.26.3': + resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1': - resolution: {integrity: sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -358,14 +366,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -380,8 +388,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -428,8 +436,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -440,344 +448,344 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.27.1': - resolution: {integrity: sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==} + '@babel/plugin-transform-async-generator-functions@7.25.9': + resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + '@babel/plugin-transform-block-scoped-functions@7.25.9': + resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.27.5': - resolution: {integrity: sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==} + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + '@babel/plugin-transform-class-properties@7.25.9': + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.27.1': - resolution: {integrity: sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==} + '@babel/plugin-transform-class-static-block@7.26.0': + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - '@babel/plugin-transform-classes@7.27.1': - resolution: {integrity: sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==} + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.27.3': - resolution: {integrity: sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==} + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + '@babel/plugin-transform-dotall-regex@7.25.9': + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + '@babel/plugin-transform-duplicate-keys@7.25.9': + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + '@babel/plugin-transform-dynamic-import@7.25.9': + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} + '@babel/plugin-transform-exponentiation-operator@7.26.3': + resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + '@babel/plugin-transform-for-of@7.25.9': + resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + '@babel/plugin-transform-json-strings@7.25.9': + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} + '@babel/plugin-transform-logical-assignment-operators@7.25.9': + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + '@babel/plugin-transform-modules-amd@7.25.9': + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + '@babel/plugin-transform-modules-commonjs@7.26.3': + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} + '@babel/plugin-transform-modules-systemjs@7.25.9': + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + '@babel/plugin-transform-modules-umd@7.25.9': + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + '@babel/plugin-transform-new-target@7.25.9': + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': + resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + '@babel/plugin-transform-numeric-separator@7.25.9': + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.27.3': - resolution: {integrity: sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==} + '@babel/plugin-transform-object-rest-spread@7.25.9': + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + '@babel/plugin-transform-optional-catch-binding@7.25.9': + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + '@babel/plugin-transform-optional-chaining@7.25.9': + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.27.1': - resolution: {integrity: sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==} + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-constant-elements@7.27.1': - resolution: {integrity: sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==} + '@babel/plugin-transform-react-constant-elements@7.25.9': + resolution: {integrity: sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.27.1': - resolution: {integrity: sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==} + '@babel/plugin-transform-react-display-name@7.25.9': + resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + '@babel/plugin-transform-react-jsx-development@7.25.9': + resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + '@babel/plugin-transform-react-pure-annotations@7.25.9': + resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.27.5': - resolution: {integrity: sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==} + '@babel/plugin-transform-regenerator@7.25.9': + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.27.1': - resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + '@babel/plugin-transform-reserved-words@7.25.9': + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + '@babel/plugin-transform-template-literals@7.25.9': + resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + '@babel/plugin-transform-typeof-symbol@7.25.9': + resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.27.1': - resolution: {integrity: sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==} + '@babel/plugin-transform-typescript@7.26.3': + resolution: {integrity: sha512-6+5hpdr6mETwSKjmJUdYw0EIkATiQhnELWlE3kJFBwSg/BGIVwVaVbX+gOXBCdc7Ln1RXZxyWGecIXhUfnl7oA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + '@babel/plugin-transform-unicode-escapes@7.25.9': + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + '@babel/plugin-transform-unicode-property-regex@7.25.9': + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + '@babel/plugin-transform-unicode-sets-regex@7.25.9': + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.27.2': - resolution: {integrity: sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==} + '@babel/preset-env@7.26.0': + resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -787,32 +795,36 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} + '@babel/preset-react@7.26.3': + resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + '@babel/preset-typescript@7.26.0': + resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/runtime@7.27.6': - resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} + '@babel/runtime@7.27.1': + resolution: {integrity: sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==} engines: {node: '>=6.9.0'} - '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.27.4': - resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + '@babel/traverse@7.26.3': + resolution: {integrity: sha512-yTmc8J+Sj8yLzwr4PD5Xb/WF3bOYu2C2OoSZPzbuqRm4n98XirsbzaX+GloeO376UnSYIYJ4NCanwV5/ugZkwA==} engines: {node: '>=6.9.0'} - '@babel/types@7.27.6': - resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.3': + resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -822,47 +834,47 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@csstools/cascade-layer-name-parser@2.0.5': - resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} + '@csstools/cascade-layer-name-parser@2.0.4': + resolution: {integrity: sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + '@csstools/css-calc@2.1.0': + resolution: {integrity: sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-color-parser@3.0.10': - resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + '@csstools/css-color-parser@3.0.6': + resolution: {integrity: sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@4.0.3': - resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + '@csstools/media-query-list-parser@4.0.2': + resolution: {integrity: sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.5 - '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 '@csstools/postcss-cascade-layers@5.0.1': resolution: {integrity: sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==} @@ -870,32 +882,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.10': - resolution: {integrity: sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==} + '@csstools/postcss-color-function@4.0.6': + resolution: {integrity: sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.10': - resolution: {integrity: sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==} + '@csstools/postcss-color-mix-function@3.0.6': + resolution: {integrity: sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0': - resolution: {integrity: sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==} + '@csstools/postcss-content-alt-text@2.0.4': + resolution: {integrity: sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@2.0.6': - resolution: {integrity: sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==} - engines: {node: '>=18'} - peerDependencies: - postcss: ^8.4 - - '@csstools/postcss-exponential-functions@2.0.9': - resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} + '@csstools/postcss-exponential-functions@2.0.5': + resolution: {integrity: sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -906,8 +912,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.10': - resolution: {integrity: sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==} + '@csstools/postcss-gamut-mapping@2.0.6': + resolution: {integrity: sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -918,38 +924,38 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.10': - resolution: {integrity: sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==} + '@csstools/postcss-gradients-interpolation-method@5.0.6': + resolution: {integrity: sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.10': - resolution: {integrity: sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==} + '@csstools/postcss-hwb-function@4.0.6': + resolution: {integrity: sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@4.0.2': - resolution: {integrity: sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==} + '@csstools/postcss-ic-unit@4.0.0': + resolution: {integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-initial@2.0.1': - resolution: {integrity: sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==} + '@csstools/postcss-initial@2.0.0': + resolution: {integrity: sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-is-pseudo-class@5.0.3': - resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} + '@csstools/postcss-is-pseudo-class@5.0.1': + resolution: {integrity: sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.9': - resolution: {integrity: sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==} + '@csstools/postcss-light-dark-function@2.0.7': + resolution: {integrity: sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -978,20 +984,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@3.0.4': - resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} + '@csstools/postcss-logical-viewport-units@3.0.3': + resolution: {integrity: sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.9': - resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} + '@csstools/postcss-media-minmax@2.0.5': + resolution: {integrity: sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': - resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4': + resolution: {integrity: sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1008,26 +1014,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.10': - resolution: {integrity: sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==} + '@csstools/postcss-oklab-function@4.0.6': + resolution: {integrity: sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@4.1.0': - resolution: {integrity: sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==} + '@csstools/postcss-progressive-custom-properties@4.0.0': + resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-random-function@2.0.1': - resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} + '@csstools/postcss-random-function@1.0.1': + resolution: {integrity: sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.10': - resolution: {integrity: sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==} + '@csstools/postcss-relative-color-syntax@3.0.6': + resolution: {integrity: sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1038,26 +1044,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-sign-functions@1.1.4': - resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} + '@csstools/postcss-sign-functions@1.1.0': + resolution: {integrity: sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.9': - resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} + '@csstools/postcss-stepped-value-functions@4.0.5': + resolution: {integrity: sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-text-decoration-shorthand@4.0.2': - resolution: {integrity: sha512-8XvCRrFNseBSAGxeaVTaNijAu+FzUvjwFXtcrynmazGb/9WUdsPCpBX+mHEHShVRq47Gy4peYAoxYs8ltUnmzA==} + '@csstools/postcss-text-decoration-shorthand@4.0.1': + resolution: {integrity: sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.9': - resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} + '@csstools/postcss-trigonometric-functions@4.0.5': + resolution: {integrity: sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -1068,8 +1074,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/selector-resolve-nested@3.1.0': - resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} + '@csstools/selector-resolve-nested@3.0.0': + resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 @@ -1089,167 +1095,155 @@ packages: '@dual-bundle/import-meta-resolve@4.1.0': resolution: {integrity: sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==} - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} - '@emnapi/runtime@1.4.3': resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} - - '@esbuild/aix-ppc64@0.25.5': - resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==} + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.5': - resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==} + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.5': - resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==} + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.5': - resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==} + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.5': - resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==} + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.5': - resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==} + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.5': - resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==} + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.5': - resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==} + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.5': - resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==} + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.5': - resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==} + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.5': - resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==} + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.5': - resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==} + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.5': - resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==} + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.5': - resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==} + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.5': - resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==} + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.5': - resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==} + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.5': - resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.5': - resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.25.5': - resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.5': - resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==} + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.5': - resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.25.5': - resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==} + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.5': - resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==} + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.5': - resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==} + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.5': - resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1258,36 +1252,32 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.1': - resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} + '@eslint/config-array@0.19.0': + resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.2.3': - resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.1': - resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.3.1': - resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + '@eslint/js@9.20.0': + resolution: {integrity: sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.29.0': - resolution: {integrity: sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ==} + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -1306,8 +1296,8 @@ packages: resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} '@img/sharp-darwin-arm64@0.33.5': @@ -1489,8 +1479,8 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1513,8 +1503,8 @@ packages: '@jsdevtools/ono@7.1.3': resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} - '@keyv/serialize@1.0.3': - resolution: {integrity: sha512-qnEovoOp5Np2JDGonIDL6Ayihw0RhnRh6vxPuHo4RDn1UOzwEo4AeIfpL6UGIrsceWrCMiVPgwRjbHu4vYFc3g==} + '@keyv/serialize@1.0.2': + resolution: {integrity: sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==} '@lehoczky/postcss-fluid@1.0.3': resolution: {integrity: sha512-UQhBUGDpMA3wWGTWeVArL+dm2lbBM9LAFUg8U+CAt3gFpCDIdZHjq+mpf3OWos39aZQiYyLrZfRM8ynbPewfUA==} @@ -1539,9 +1529,6 @@ packages: '@types/react': '>=16' react: '>=16' - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} - '@next/env@15.1.7': resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} @@ -1626,11 +1613,11 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@radix-ui/primitive@1.1.2': - resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} - '@radix-ui/react-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + '@radix-ui/react-collection@1.1.2': + resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1642,8 +1629,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1651,8 +1638,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1660,8 +1647,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.14': - resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} + '@radix-ui/react-dialog@1.1.5': + resolution: {integrity: sha512-LaO3e5h/NOEL4OfXjxD43k9Dx+vn+8n+PCFt6uhX/BADFflllyv3WJG6rgvvSVBxpTch938Qq/LGc2MMxipXPw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1673,8 +1660,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1682,8 +1669,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.10': - resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} + '@radix-ui/react-dismissable-layer@1.1.4': + resolution: {integrity: sha512-XDUI0IVYVSwjMXxM6P4Dfti7AH+Y4oS/TB+sglZ/EXc7cqLwGAmp1NlMrcUjj7ks6R5WTZuWKv44FBbLpwU3sA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1695,8 +1682,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.2': - resolution: {integrity: sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==} + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1704,8 +1691,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + '@radix-ui/react-focus-scope@1.1.1': + resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1717,8 +1704,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1726,8 +1713,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + '@radix-ui/react-portal@1.1.3': + resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1739,8 +1726,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.4': - resolution: {integrity: sha512-ueDqRbdc4/bkaQT3GIpLQssRlFgWaL/U2z/S31qRwwLWoxHLgry3SIfCwhxeQNbirEUXFa+lq3RL3oBYXtcmIA==} + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1752,8 +1739,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + '@radix-ui/react-primitive@2.0.1': + resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1765,8 +1752,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.10': - resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1778,39 +1765,52 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + '@radix-ui/react-roving-focus@1.1.2': + resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-tabs@1.1.12': - resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==} + '@radix-ui/react-slot@1.1.1': + resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} peerDependencies: '@types/react': '*' - '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - '@types/react-dom': + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': optional: true - '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + '@radix-ui/react-tabs@1.1.3': + resolution: {integrity: sha512-9mFyI30cuRDImbmFF6O2KUJdgEOsGh9Vmx9x/Dh9tOhL7BngmQPQfwW4aejKm5OHpfWIdmeV6ySyuxoOGjtNng==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1818,8 +1818,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1827,8 +1827,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1836,8 +1836,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1845,8 +1845,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.2.3': - resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + '@radix-ui/react-visually-hidden@1.1.2': + resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1861,32 +1861,44 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - '@rushstack/eslint-patch@1.11.0': - resolution: {integrity: sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==} + '@rushstack/eslint-patch@1.10.5': + resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} + + '@shikijs/core@2.2.0': + resolution: {integrity: sha512-U+vpKdsQDWuX3fPTCkSc8XPX9dCaS+r+qEP1XhnU30yxRFo2OxHJmY2H5rO1q+v0zB5R2vobsxEFt5uPf31CGQ==} + + '@shikijs/core@2.3.2': + resolution: {integrity: sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==} + + '@shikijs/engine-javascript@2.2.0': + resolution: {integrity: sha512-96SpZ4V3UVMtpSPR5QpmU395CNrQiRPszXK62m8gKR2HMA0653ruce7omS5eX6EyAyFSYHvBWtTuspiIsHpu4A==} - '@shikijs/core@2.5.0': - resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + '@shikijs/engine-javascript@2.3.2': + resolution: {integrity: sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==} - '@shikijs/engine-javascript@2.5.0': - resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + '@shikijs/engine-oniguruma@2.2.0': + resolution: {integrity: sha512-wowCKwkvPFFMXFkiKK/a2vs5uTCc0W9+O9Xcu/oqFP6VoDFe14T8u/D+Rl4dCJJSOyeynP9mxNPJ82T5JHTNCw==} - '@shikijs/engine-oniguruma@2.5.0': - resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + '@shikijs/engine-oniguruma@2.3.2': + resolution: {integrity: sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==} - '@shikijs/langs@2.5.0': - resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + '@shikijs/langs@2.2.0': + resolution: {integrity: sha512-RSWLH3bnoyG6O1kZ2msh5jOkKKp8eENwyT30n62vUtXfp5cxkF/bpWPpO+p4+GAPhL2foBWR2kOerwkKG0HXlQ==} - '@shikijs/themes@2.5.0': - resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + '@shikijs/themes@2.2.0': + resolution: {integrity: sha512-8Us9ZF2mV9kuh+4ySJ9MzrUDIpc2RIkRfKBZclkliW1z9a0PlGU2U7fCkItZZHpR5e4/ft5BzuO+GDqombC6Aw==} - '@shikijs/transformers@2.5.0': - resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + '@shikijs/transformers@2.3.2': + resolution: {integrity: sha512-2HDnJumw8A/9GecRpTgvfqSbPjEbJ4DPWq5J++OVP1gNMLvbV0MqFsP4canqRNM1LqB7VmWY45Stipb0ZIJ+0A==} - '@shikijs/types@2.5.0': - resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + '@shikijs/types@2.2.0': + resolution: {integrity: sha512-wkZZKs80NtW5Jp/7ONI1j7EdXSatX2BKMS7I01wliDa09gJKHkZyVqlEMRka/mjT5Qk9WgAyitoCKgGgbsP/9g==} - '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@shikijs/types@2.3.2': + resolution: {integrity: sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==} + + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1989,8 +2001,8 @@ packages: resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react@16.3.0': - resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} + '@testing-library/react@16.1.0': + resolution: {integrity: sha512-Q2ToPvg0KsVL0ohND9A3zLJWcOXXcO8IDu3fj11KhNt0UlCWyFyvnCIBkd12tidB2lkiVRG8VFqdhcqhqnAQtg==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 @@ -2008,14 +2020,14 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} - '@trivago/prettier-plugin-sort-imports@5.2.2': - resolution: {integrity: sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==} + '@trivago/prettier-plugin-sort-imports@5.2.0': + resolution: {integrity: sha512-yEIJ7xMKYQwyNRjxSdi4Gs37iszikAjxfky+3hu9bn24u8eHLJNDMAoOTyowp8p6EpSl8IQMdkfBx+WnJTttsw==} engines: {node: '>18.12'} peerDependencies: '@vue/compiler-sfc': 3.x prettier: 2.x - 3.x prettier-plugin-svelte: 3.x - svelte: 4.x || 5.x + svelte: 4.x peerDependenciesMeta: '@vue/compiler-sfc': optional: true @@ -2040,8 +2052,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -2049,14 +2061,14 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.7': - resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2064,8 +2076,8 @@ packages: '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -2100,8 +2112,8 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} '@types/node@22.10.10': resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} @@ -2132,162 +2144,55 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.35.0': - resolution: {integrity: sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==} + '@typescript-eslint/eslint-plugin@8.22.0': + resolution: {integrity: sha512-4Uta6REnz/xEJMvwf72wdUnC3rr4jAQf5jnTkeRQ9b6soxLxhDEbS/pfMPoJLDfFPNVRdryqWUIV/2GZzDJFZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.35.0 + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/parser@8.35.0': - resolution: {integrity: sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA==} + '@typescript-eslint/parser@8.22.0': + resolution: {integrity: sha512-MqtmbdNEdoNxTPzpWiWnqNac54h8JDAmkWtJExBVVnSrSmi9z+sZUt0LfKqk9rjqmKOIeRhO4fHHJ1nQIjduIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/project-service@8.35.0': - resolution: {integrity: sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@8.35.0': - resolution: {integrity: sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/tsconfig-utils@8.35.0': - resolution: {integrity: sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA==} + '@typescript-eslint/scope-manager@8.22.0': + resolution: {integrity: sha512-/lwVV0UYgkj7wPSw0o8URy6YI64QmcOdwHuGuxWIYznO6d45ER0wXUbksr9pYdViAofpUCNJx/tAzNukgvaaiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.35.0': - resolution: {integrity: sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA==} + '@typescript-eslint/type-utils@8.22.0': + resolution: {integrity: sha512-NzE3aB62fDEaGjaAYZE4LH7I1MUwHooQ98Byq0G0y3kkibPJQIXVUspzlFOmOfHhiDLwKzMlWxaNv+/qcZurJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.35.0': - resolution: {integrity: sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ==} + '@typescript-eslint/types@8.22.0': + resolution: {integrity: sha512-0S4M4baNzp612zwpD4YOieP3VowOARgK2EkN/GBn95hpyF8E2fbMT55sRHWBq+Huaqk3b3XK+rxxlM8sPgGM6A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.35.0': - resolution: {integrity: sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w==} + '@typescript-eslint/typescript-estree@8.22.0': + resolution: {integrity: sha512-SJX99NAS2ugGOzpyhMza/tX+zDwjvwAtQFLsBo3GQxiGcvaKlqGBkmZ+Y1IdiSi9h4Q0Lr5ey+Cp9CGWNY/F/w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.35.0': - resolution: {integrity: sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg==} + '@typescript-eslint/utils@8.22.0': + resolution: {integrity: sha512-T8oc1MbF8L+Bk2msAvCUzjxVB2Z2f+vXYfcucE2wOmYs7ZUwco5Ep0fYZw8quNwOiw9K8GYVL+Kgc2pETNTLOg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.35.0': - resolution: {integrity: sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g==} + '@typescript-eslint/visitor-keys@8.22.0': + resolution: {integrity: sha512-AWpYAXnUgvLNabGTy3uBylkgZoosva/miNd1I8Bz3SjotmQPbVqhO4Cczo8AsZ44XVErEBPr/CRSgaj8sG7g0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - - '@unrs/resolver-binding-android-arm-eabi@1.9.2': - resolution: {integrity: sha512-tS+lqTU3N0kkthU+rYp0spAYq15DU8ld9kXkaKg9sbQqJNF+WPMuNHZQGCgdxrUOEO0j22RKMwRVhF1HTl+X8A==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.9.2': - resolution: {integrity: sha512-MffGiZULa/KmkNjHeuuflLVqfhqLv1vZLm8lWIyeADvlElJ/GLSOkoUX+5jf4/EGtfwrNFcEaB8BRas03KT0/Q==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.9.2': - resolution: {integrity: sha512-dzJYK5rohS1sYl1DHdJ3mwfwClJj5BClQnQSyAgEfggbUwA9RlROQSSbKBLqrGfsiC/VyrDPtbO8hh56fnkbsQ==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.9.2': - resolution: {integrity: sha512-gaIMWK+CWtXcg9gUyznkdV54LzQ90S3X3dn8zlh+QR5Xy7Y+Efqw4Rs4im61K1juy4YNb67vmJsCDAGOnIeffQ==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.9.2': - resolution: {integrity: sha512-S7QpkMbVoVJb0xwHFwujnwCAEDe/596xqY603rpi/ioTn9VDgBHnCCxh+UFrr5yxuMH+dliHfjwCZJXOPJGPnw==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2': - resolution: {integrity: sha512-+XPUMCuCCI80I46nCDFbGum0ZODP5NWGiwS3Pj8fOgsG5/ctz+/zzuBlq/WmGa+EjWZdue6CF0aWWNv84sE1uw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.2': - resolution: {integrity: sha512-sqvUyAd1JUpwbz33Ce2tuTLJKM+ucSsYpPGl2vuFwZnEIg0CmdxiZ01MHQ3j6ExuRqEDUCy8yvkDKvjYFPb8Zg==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.9.2': - resolution: {integrity: sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.9.2': - resolution: {integrity: sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.2': - resolution: {integrity: sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.2': - resolution: {integrity: sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.9.2': - resolution: {integrity: sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.9.2': - resolution: {integrity: sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.9.2': - resolution: {integrity: sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.9.2': - resolution: {integrity: sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.9.2': - resolution: {integrity: sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.9.2': - resolution: {integrity: sha512-EdFbGn7o1SxGmN6aZw9wAkehZJetFPao0VGZ9OMBwKx6TkvDuj6cNeLimF/Psi6ts9lMOe+Dt6z19fZQ9Ye2fw==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.9.2': - resolution: {integrity: sha512-JY9hi1p7AG+5c/dMU8o2kWemM8I6VZxfGwn1GCtf3c5i+IKcMo2NQ8OjZ4Z3/itvY/Si3K10jOBQn7qsD/whUA==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.9.2': - resolution: {integrity: sha512-ryoo+EB19lMxAd80ln9BVf8pdOAxLb97amrQ3SFN9OCRn/5M5wvwDgAe4i8ZjhpbiHoDeP8yavcTEnpKBo7lZg==} - cpu: [x64] - os: [win32] + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -2305,8 +2210,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true @@ -2357,8 +2262,8 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} aria-query@5.3.0: @@ -2372,8 +2277,8 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} array-union@2.1.0: @@ -2384,8 +2289,8 @@ packages: resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} - array.prototype.findlastindex@1.2.6: - resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.3: @@ -2422,8 +2327,8 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -2433,8 +2338,8 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.10.3: - resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} axobject-query@4.1.0: @@ -2455,18 +2360,18 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - babel-plugin-polyfill-corejs2@0.4.13: - resolution: {integrity: sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==} + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-corejs3@0.11.1: - resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - babel-plugin-polyfill-regenerator@0.6.4: - resolution: {integrity: sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==} + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 @@ -2496,18 +2401,18 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.1: - resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2524,19 +2429,19 @@ packages: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - cacheable@1.10.0: - resolution: {integrity: sha512-SSgQTAnhd7WlJXnGlIi4jJJOiHzgnM5wRMEPaXAU4kECTAMpBoYKoZ9i5zHmclIEZbxcu3j7yY/CF8DTmwIsHg==} + cacheable@1.8.8: + resolution: {integrity: sha512-OE1/jlarWxROUIpd0qGBSKFLkNsotY8pt4GeiVErUYh/NUeTNrT+SBksUgllQv4m6a0W/VZsLuiHb88maavqEw==} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} call-me-maybe@1.0.2: @@ -2554,8 +2459,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001726: - resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} + caniuse-lite@1.0.30001718: + resolution: {integrity: sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2588,8 +2493,8 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@1.4.1: + resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -2649,8 +2554,8 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - core-js-compat@3.43.0: - resolution: {integrity: sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==} + core-js-compat@3.39.0: + resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} @@ -2692,8 +2597,8 @@ packages: resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} engines: {node: '>=12 || >=16'} - css-has-pseudo@7.0.2: - resolution: {integrity: sha512-nzol/h+E0bId46Kn2dQH5VElaknX2Sr0hFuB/1EomdC7j+OISt2ZzK7EHX9DZDY53WbIVAR7FYKSO2XnSf07MQ==} + css-has-pseudo@7.0.1: + resolution: {integrity: sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -2715,6 +2620,10 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.0.1: + resolution: {integrity: sha512-8Fxxv+tGhORlshCdCwnNJytvlvq46sOLSYEx2ZIGurahWvMucSRnyjPA3AmrMq4VPRYbHVpWj5VkiVasrM2H4Q==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.1.0: resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} @@ -2726,8 +2635,8 @@ packages: css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} - cssdb@8.3.1: - resolution: {integrity: sha512-XnDRQMXucLueX92yDe0LPKupXetWoFOgawr4O4X41l5TltgK2NVbJJVDnnOywDYfW1sTJ28AcXGKOqdRKwCcmQ==} + cssdb@8.2.3: + resolution: {integrity: sha512-9BDG5XmJrJQQnJ51VFxXCAtpZ5ebDlAREmO8sxMOVU0aSxN/gocbctjIG5LMh3WBUq+xTlb/jw2LoljBEqraTA==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -2781,8 +2690,17 @@ packages: supports-color: optional: true - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2790,14 +2708,14 @@ packages: supports-color: optional: true - decimal.js@10.5.0: - resolution: {integrity: sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==} + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - dedent@1.6.0: - resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2878,8 +2796,8 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -2888,8 +2806,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.176: - resolution: {integrity: sha512-2nDK9orkm7M9ZZkjO3PjbEd3VUulQLyg5T9O3enJdFvUg46Hzd4DUvTvAuEgbdHYXyFsiG4A5sO9IzToMH1cDg==} + electron-to-chromium@1.5.70: + resolution: {integrity: sha512-P6FPqAWIZrC3sHDAwBitJBs7N7IF58m39XVny7DFseQXK2eiMn7nNQizFf63mWDDUnFvaqsM8FI0+ZZfLkdUGA==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -2904,14 +2822,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} + engines: {node: '>=10.13.0'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -2919,8 +2837,8 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -2943,9 +2861,8 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} @@ -2957,8 +2874,8 @@ packages: esast-util-from-js@2.0.1: resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} - esbuild@0.25.5: - resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} engines: {node: '>=18'} hasBin: true @@ -2992,8 +2909,8 @@ packages: typescript: optional: true - eslint-config-prettier@10.1.5: - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + eslint-config-prettier@10.0.1: + resolution: {integrity: sha512-lZBts941cyJyeaooiKxAtzoPHTN+GbQTJFAIdQbRhA4/8whaAraEh47Whw/ZFfrjNSnlAxqfm9i0XVAEkULjCw==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -3001,8 +2918,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-import-resolver-typescript@3.10.1: - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} + eslint-import-resolver-typescript@3.7.0: + resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -3014,8 +2931,8 @@ packages: eslint-plugin-import-x: optional: true - eslint-module-utils@2.12.1: - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3035,8 +2952,8 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.32.0: - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -3051,32 +2968,32 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-hooks@5.2.0: - resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} + eslint-plugin-react-hooks@5.1.0: + resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.29.0: - resolution: {integrity: sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ==} + eslint@9.20.0: + resolution: {integrity: sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -3085,8 +3002,8 @@ packages: jiti: optional: true - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -3169,15 +3086,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} fastest-levenshtein@1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} engines: {node: '>= 4.9.1'} - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} @@ -3185,16 +3102,8 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} - peerDependencies: - picomatch: ^3 || ^4 - peerDependenciesMeta: - picomatch: - optional: true - - file-entry-cache@10.1.1: - resolution: {integrity: sha512-zcmsHjg2B2zjuBgjdnB+9q0+cWcgWfykIcsDkWDB4GTPtl1eXUA+gTI6sO0u01AqK3cliHryTU55/b2Ow1hfZg==} + file-entry-cache@10.0.6: + resolution: {integrity: sha512-0wvv16mVo9nN0Md3k7DMjgAPKG/TY4F/gYMBVb/wMThFRJvzrpaqBFqF6km9wf8QfYTN+mNg5aeaBLfy8k35uA==} file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -3216,18 +3125,18 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flat-cache@6.1.10: - resolution: {integrity: sha512-B6/v1f0NwjxzmeOhzfXPGWpKBVA207LS7lehaVKQnFrVktcFRfkzjZZ2gwj2i1TkEUMQht7ZMJbABUT5N+V1Nw==} + flat-cache@6.1.6: + resolution: {integrity: sha512-F+CKgSwp0pzLx67u+Zy1aCueVWFAHWbXepvXlZ+bWVTaASbm5SyCnSJ80Fp1ePEmS57wU+Bf6cx6525qtMZ4lQ==} - flatted@3.3.3: - resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + for-each@0.3.4: + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} engines: {node: '>= 0.4'} - form-data@4.0.3: - resolution: {integrity: sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} format@0.2.2: @@ -3237,8 +3146,8 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@12.19.1: - resolution: {integrity: sha512-nq9hwWAEKf4gzprbOZzKugLV5OVKF7zrNDY6UOVu+4D3ZgIkg8L9Jy6AMrpBM06fhbKJ6LEG6UY5+t7Eq6wNlg==} + framer-motion@12.4.2: + resolution: {integrity: sha512-pW307cQKjDqEuO1flEoIFf6TkuJRfKr+c7qsHAJhDo4368N/5U8/7WU8J+xhd9+gjmOgJfgp+46evxRRFM39dA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -3277,8 +3186,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-nonce@1.0.1: @@ -3301,8 +3210,11 @@ packages: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3356,8 +3268,8 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphemesplit@2.6.0: - resolution: {integrity: sha512-rG9w2wAfkpg0DILa1pjnjNfucng3usON360shisqIMUBw/87pojcBSrHmeE4UwryAuBih7g8m1oilf5/u8EWdQ==} + graphemesplit@2.5.1: + resolution: {integrity: sha512-KWxi3NIPD6HxC8rXHHV7FpN48XvrWUPS7yrTVxNFG08o298FdSsGd012NuWHxQJ3IaH1wcnSVoY56mZxpl4T6A==} has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} @@ -3395,14 +3307,14 @@ packages: hast-util-sanitize@5.0.2: resolution: {integrity: sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==} - hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} - hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + hast-util-to-jsx-runtime@2.3.2: + resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -3410,8 +3322,8 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - hookified@1.9.1: - resolution: {integrity: sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==} + hookified@1.7.0: + resolution: {integrity: sha512-XQdMjqC1AyeOzfs+17cnIk7Wdfu1hh2JtcyNfBf5u9jHrT3iZUlGHxLTntFBuk5lwkqJ6l3+daeQdHK5yByHVA==} html-encoding-sniffer@3.0.0: resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} @@ -3450,12 +3362,12 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + ignore@7.0.3: + resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} engines: {node: '>= 4'} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} import-local@3.2.0: @@ -3481,6 +3393,9 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} @@ -3512,17 +3427,21 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} + is-bun-module@1.3.0: + resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -3569,10 +3488,6 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} @@ -3624,8 +3539,8 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} engines: {node: '>= 0.4'} is-weakset@2.0.4: @@ -3835,11 +3750,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} - hasBin: true - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3871,8 +3781,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.3.4: - resolution: {integrity: sha512-ypEvQvInNpUe+u+w8BIcPkQvEqXquyyibWE/1NB5T2BTzIpS5cGEV1LZskDzPSTvNAaT4+5FutvzlvnkxOSKlw==} + keyv@5.2.3: + resolution: {integrity: sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==} kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -3882,11 +3792,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - known-css-properties@0.36.0: - resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} - - known-css-properties@0.37.0: - resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + known-css-properties@0.35.0: + resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -3974,8 +3881,8 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} @@ -3986,8 +3893,8 @@ packages: mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -3998,14 +3905,14 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} mdast-util-mdx-expression@2.0.1: resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} @@ -4031,11 +3938,14 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdn-data@2.12.1: + resolution: {integrity: sha512-rsfnCbOHjqrhWxwt5/wtSLzpoKTzW7OXdT5lLOIH1OTYhWu9rRJveGq0sKvDZODABH7RX+uoR+DYcpFnq4Tf6Q==} + mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdn-data@2.21.0: - resolution: {integrity: sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==} + mdn-data@2.13.0: + resolution: {integrity: sha512-OmD1FDyP706JqPqtLqgev/QCK0qudBdUuKKag6InQ/elEw3Cm2AhXYktcSggdc/vWniYqIsofkcteMEOioW5vQ==} memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} @@ -4051,8 +3961,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} @@ -4066,8 +3976,8 @@ packages: micromark-extension-gfm-strikethrough@2.1.0: resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} @@ -4078,11 +3988,11 @@ packages: micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} @@ -4099,8 +4009,8 @@ packages: micromark-factory-label@2.0.1: resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} micromark-factory-space@2.0.1: resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} @@ -4132,8 +4042,8 @@ packages: micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} micromark-util-html-tag-name@2.0.1: resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} @@ -4147,17 +4057,17 @@ packages: micromark-util-sanitize-uri@2.0.1: resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + micromark-util-subtokenize@2.0.3: + resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==} micromark-util-symbol@2.0.1: resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} - micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} @@ -4189,14 +4099,14 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - motion-dom@12.19.0: - resolution: {integrity: sha512-m96uqq8VbwxFLU0mtmlsIVe8NGGSdpBvBSHbnnOJQxniPaabvVdGgxSamhuDwBsRhwX7xPxdICgVJlOpzn/5bw==} + motion-dom@12.0.0: + resolution: {integrity: sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==} - motion-utils@12.19.0: - resolution: {integrity: sha512-BuFTHINYmV07pdWs6lj6aI63vr2N4dg0vR+td0rtrdpWOhBzIkEklZyLcvKBoEtwSqx8Jg06vUB5RS0xDiUybw==} + motion-utils@12.0.0: + resolution: {integrity: sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==} - motion@12.19.1: - resolution: {integrity: sha512-OhoHWrht+zwDPccr2wGltJdwgz2elFBBt/sLei2g0hwICvy2hOBFUkA4Ylup3VnDgz+vUtecf694EV7bJK4XjA==} + motion@12.4.2: + resolution: {integrity: sha512-NGocC1zic2hGDEasxS76W5/7JIJ5loKIxawkFoEqk7yTu8yXI+6l6IlEj9u8aPp6tM04DwvuiQcobpw9i0hhiw==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -4217,9 +4127,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.2.4: - resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true natural-compare@1.4.0: @@ -4252,8 +4162,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -4270,15 +4180,15 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.20: - resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} + nwsapi@2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-keys@1.1.1: @@ -4289,8 +4199,8 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -4312,8 +4222,11 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oniguruma-to-es@3.1.1: - resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + oniguruma-to-es@2.3.0: + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + + oniguruma-to-es@3.1.0: + resolution: {integrity: sha512-BJ3Jy22YlgejHSO7Fvmz1kKazlaPmRSUH+4adTDUS/dKQ4wLxI+gALZ8updbaux7/m7fIlpgOZ5fp/Inq5jUAw==} openapi-types@12.1.3: resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} @@ -4353,15 +4266,15 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -4389,20 +4302,16 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} - engines: {node: '>=12'} - - pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} postcss-attribute-case-insensitive@7.0.1: @@ -4417,8 +4326,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.10: - resolution: {integrity: sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==} + postcss-color-functional-notation@7.0.6: + resolution: {integrity: sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4435,20 +4344,20 @@ packages: peerDependencies: postcss: ^8.4 - postcss-custom-media@11.0.6: - resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} + postcss-custom-media@11.0.5: + resolution: {integrity: sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-properties@14.0.6: - resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} + postcss-custom-properties@14.0.4: + resolution: {integrity: sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@8.0.5: - resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} + postcss-custom-selectors@8.0.4: + resolution: {integrity: sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4459,8 +4368,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-double-position-gradients@6.0.2: - resolution: {integrity: sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==} + postcss-double-position-gradients@6.0.0: + resolution: {integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4499,8 +4408,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-lab-function@7.0.10: - resolution: {integrity: sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==} + postcss-lab-function@7.0.6: + resolution: {integrity: sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4523,8 +4432,8 @@ packages: yaml: optional: true - postcss-logical@8.1.0: - resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} + postcss-logical@8.0.0: + resolution: {integrity: sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4532,8 +4441,8 @@ packages: postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - postcss-nesting@13.0.2: - resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} + postcss-nesting@13.0.1: + resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4561,8 +4470,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.2.3: - resolution: {integrity: sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==} + postcss-preset-env@10.1.1: + resolution: {integrity: sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4593,8 +4502,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-selector-parser@7.1.0: - resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + postcss-selector-parser@7.0.0: + resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -4604,16 +4513,16 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + postcss@8.5.2: + resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.6.1: - resolution: {integrity: sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true @@ -4632,8 +4541,8 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} psl@1.15.0: resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} @@ -4659,8 +4568,8 @@ packages: react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - react-hotkeys-hook@4.6.2: - resolution: {integrity: sha512-FmP+ZriY3EG59Ug/lxNfrObCnW9xQShgk7Nb83+CkpfkcCpfS95ydv+E9JuXA5cp8KtskU7LGlIARpkc92X22Q==} + react-hotkeys-hook@4.6.1: + resolution: {integrity: sha512-XlZpbKUj9tkfgPgT9gA+1p7Ey6vFIZHttUjPqpTdyT5nqQ8mHL7elxvSbaC+dpSiHUSmr21Ya1mDxBZG3aje4Q==} peerDependencies: react: '>=16.8.1' react-dom: '>=16.8.1' @@ -4689,8 +4598,8 @@ packages: '@types/react': optional: true - react-remove-scroll@2.7.1: - resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} engines: {node: '>=10'} peerDependencies: '@types/react': '*' @@ -4740,12 +4649,21 @@ packages: regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + regex@6.0.1: resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} @@ -4782,8 +4700,8 @@ packages: remark-gfm@4.0.1: resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - remark-mdx-frontmatter@5.2.0: - resolution: {integrity: sha512-U/hjUYTkQqNjjMRYyilJgLXSPF65qbLPdoESOkXyrwz2tVyhAnm4GUKhfXqOOS9W34M3545xEMq+aMpHgVjEeQ==} + remark-mdx-frontmatter@5.0.0: + resolution: {integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==} remark-mdx@3.1.0: resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} @@ -4791,8 +4709,8 @@ packages: remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} @@ -4832,12 +4750,16 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} run-parallel@1.2.0: @@ -4898,8 +4820,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@2.5.0: - resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + shiki@2.2.0: + resolution: {integrity: sha512-3uoZBmc+zpd2JOEeTvKP/vK5UVDDe8YiigkT9flq+MV5Z1MKFiUXfbLIvHfqcJ+V90StDiP1ckN97z1WlhC6cQ==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -4962,17 +4884,13 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - stable-hash@0.0.5: - resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + stable-hash@0.0.4: + resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -5035,11 +4953,11 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} styled-jsx@5.1.6: resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} @@ -5054,8 +4972,8 @@ packages: babel-plugin-macros: optional: true - stylelint-config-css-modules@4.5.0: - resolution: {integrity: sha512-GKp+06SaleUHzF5uOBmtEgj5r4aMMLRa+O6aKPcKtUHZBqVNXuxoJRgjCS5CFB7qHWz5gTcaqgR3PHJZhqztWg==} + stylelint-config-css-modules@4.4.0: + resolution: {integrity: sha512-J93MtxPjRzs/TjwbJ5y9SQy4iIqULXwL1CF1yx2tQCJfS/VZUcDAmoGOwqlLbhHXSQtZO5XQiA75NVWUR3KDCQ==} peerDependencies: stylelint: ^14.5.1 || ^15.0.0 || ^16.0.0 @@ -5071,14 +4989,14 @@ packages: peerDependencies: stylelint: ^16.13.0 - stylelint-scss@6.12.1: - resolution: {integrity: sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==} + stylelint-scss@6.10.0: + resolution: {integrity: sha512-y03if6Qw9xBMoVaf7tzp5BbnYhYvudIKzURkhSHzcHG0bW0fAYvQpTUVJOe7DyhHaxeThBil4ObEMvGbV7+M+w==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 - stylelint@16.21.0: - resolution: {integrity: sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==} + stylelint@16.14.1: + resolution: {integrity: sha512-oqCL7AC3786oTax35T/nuLL8p2C3k/8rHKAooezrPGRvUX0wX+qqs5kMWh5YYT4PHQgVDobHT4tw55WgpYG6Sw==} engines: {node: '>=18.12.0'} hasBin: true @@ -5090,8 +5008,8 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@3.2.0: - resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + supports-hyperlinks@3.1.0: + resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} engines: {node: '>=14.18'} supports-preserve-symlinks-flag@1.0.0: @@ -5116,6 +5034,10 @@ packages: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -5123,10 +5045,6 @@ packages: tiny-inflate@1.0.3: resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} - tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -5151,8 +5069,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -5177,8 +5095,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.20.3: - resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + tsx@4.19.2: + resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} engines: {node: '>=18.0.0'} hasBin: true @@ -5247,9 +5165,6 @@ packages: unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-mdx-define@1.1.2: - resolution: {integrity: sha512-9ncH7i7TN5Xn7/tzX5bE3rXgz1X/u877gYVAUB3mLeTKYJmQHmqKTDBi6BTGXV7AeolBCI9ErcVsOt2qryoD0g==} - unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} @@ -5269,11 +5184,8 @@ packages: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} - unrs-resolver@1.9.2: - resolution: {integrity: sha512-VUyWiTNQD7itdiMuJy+EuLEErLj3uwX/EpHQF8EOf33Dq3Ju6VW1GXm+swk6+1h7a49uv9fKZ+dft9jU7esdLA==} - - update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -5355,8 +5267,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} which@1.3.1: @@ -5387,8 +5299,8 @@ packages: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - ws@8.18.2: - resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -5413,9 +5325,9 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} - engines: {node: '>= 14.6'} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} hasBin: true yargs-parser@21.1.1: @@ -5439,26 +5351,26 @@ packages: snapshots: - '@adobe/css-tools@4.4.3': {} + '@adobe/css-tools@4.4.1': {} '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@apidevtools/json-schema-ref-parser@11.7.2': + '@apidevtools/json-schema-ref-parser@9.0.6': dependencies: '@jsdevtools/ono': 7.1.3 - '@types/json-schema': 7.0.15 - js-yaml: 4.1.0 + call-me-maybe: 1.0.2 + js-yaml: 3.14.1 '@apidevtools/openapi-schemas@2.1.0': {} '@apidevtools/swagger-methods@3.0.2': {} - '@apidevtools/swagger-parser@10.1.1(openapi-types@12.1.3)': + '@apidevtools/swagger-parser@10.1.0(openapi-types@12.1.3)': dependencies: - '@apidevtools/json-schema-ref-parser': 11.7.2 + '@apidevtools/json-schema-ref-parser': 9.0.6 '@apidevtools/openapi-schemas': 2.1.0 '@apidevtools/swagger-methods': 3.0.2 '@jsdevtools/ono': 7.1.3 @@ -5467,790 +5379,807 @@ snapshots: call-me-maybe: 1.0.2 openapi-types: 12.1.3 - '@babel/code-frame@7.27.1': + '@babel/code-frame@7.26.2': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.27.5': {} + '@babel/compat-data@7.26.3': {} - '@babel/core@7.27.4': + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helpers': 7.27.6 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.0 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.3.7 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.27.5': + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/generator@7.26.3': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - '@jridgewell/gen-mapping': 0.3.8 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.1.0 + jsesc: 3.0.2 - '@babel/helper-annotate-as-pure@7.27.3': + '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.3 - '@babel/helper-compilation-targets@7.27.2': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/compat-data': 7.27.5 - '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.1 + '@babel/compat-data': 7.26.3 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.27.4)': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.27.4)': + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 regexpu-core: 6.2.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.4(@babel/core@7.27.4)': + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.3.7 lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.8 transitivePeerDependencies: - supports-color - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.27.1': + '@babel/helper-optimise-call-expression@7.25.9': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.3 - '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-plugin-utils@7.25.9': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.27.4)': + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.27.4)': + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-member-expression-to-functions': 7.27.1 - '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} - '@babel/helper-wrap-function@7.27.1': + '@babel/helper-wrap-function@7.25.9': dependencies: - '@babel/template': 7.27.2 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/helpers@7.27.6': + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/parser@7.26.2': dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/types': 7.26.0 - '@babel/parser@7.27.5': + '@babel/parser@7.26.3': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.4)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.4)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.4)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.4)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.4)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.4)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.4)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.4)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.27.4)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-async-generator-functions@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-block-scoping@7.27.5(@babel/core@7.27.4)': + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/traverse': 7.26.3 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/template': 7.27.2 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.25.9 - '@babel/plugin-transform-destructuring@7.27.3(@babel/core@7.27.4)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.27.4 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.3 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-object-rest-spread@7.27.3(@babel/core@7.27.4)': + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-constant-elements@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-display-name@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-regenerator@7.27.5(@babel/core@7.27.4)': + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + regenerator-transform: 0.15.2 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.27.4)': - dependencies: - '@babel/core': 7.27.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.27.4) - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/preset-env@7.27.2(@babel/core@7.27.4)': - dependencies: - '@babel/compat-data': 7.27.5 - '@babel/core': 7.27.4 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.27.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.27.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-async-generator-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-block-scoping': 7.27.5(@babel/core@7.27.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-class-static-block': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-classes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-destructuring': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-object-rest-spread': 7.27.3(@babel/core@7.27.4) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-parameters': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-regenerator': 7.27.5(@babel/core@7.27.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.27.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.27.4) - babel-plugin-polyfill-corejs2: 0.4.13(@babel/core@7.27.4) - babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.27.4) - babel-plugin-polyfill-regenerator: 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.43.0 + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/preset-env@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/compat-data': 7.26.3 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.27.4)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.27.6 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/types': 7.26.0 esutils: 2.0.3 - '@babel/preset-react@7.27.1(@babel/core@7.27.4)': + '@babel/preset-react@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-transform-react-display-name': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-jsx-development': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-react-pure-annotations': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/preset-typescript@7.27.1(@babel/core@7.27.4)': + '@babel/preset-typescript@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-transform-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/runtime@7.27.6': {} + '@babel/runtime@7.27.1': {} - '@babel/template@7.27.2': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 - '@babel/traverse@7.27.4': + '@babel/traverse@7.26.3': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 - debug: 4.4.1 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.27.6': + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@babel/types@7.26.3': dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 '@bcoe/v8-coverage@0.2.3': {} @@ -6258,410 +6187,385 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/cascade-layer-name-parser@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/color-helpers@5.0.2': {} + '@csstools/color-helpers@5.0.1': {} - '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-calc@2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-color-parser@3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/color-helpers': 5.0.1 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-tokenizer': 3.0.3 - '@csstools/css-tokenizer@3.0.4': {} + '@csstools/css-tokenizer@3.0.3': {} - '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + '@csstools/media-query-list-parser@4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.6)': + '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.2)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - '@csstools/postcss-color-function@4.0.10(postcss@8.5.6)': + '@csstools/postcss-color-function@4.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-color-mix-function@3.0.10(postcss@8.5.6)': + '@csstools/postcss-color-mix-function@3.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0(postcss@8.5.6)': + '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-content-alt-text@2.0.6(postcss@8.5.6)': + '@csstools/postcss-exponential-functions@2.0.5(postcss@8.5.2)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.6)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.6)': - dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.10(postcss@8.5.6)': + '@csstools/postcss-gamut-mapping@2.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-global-data@3.0.0(postcss@8.5.6)': + '@csstools/postcss-global-data@3.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/postcss-gradients-interpolation-method@5.0.10(postcss@8.5.6)': + '@csstools/postcss-gradients-interpolation-method@5.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-hwb-function@4.0.10(postcss@8.5.6)': + '@csstools/postcss-hwb-function@4.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-ic-unit@4.0.2(postcss@8.5.6)': + '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.2)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.1(postcss@8.5.6)': + '@csstools/postcss-initial@2.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.6)': + '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.2)': dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - '@csstools/postcss-light-dark-function@2.0.9(postcss@8.5.6)': + '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.2)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.6)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.6)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.6)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.6)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.6)': + '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.2)': dependencies: - '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-tokenizer': 3.0.3 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.6)': + '@csstools/postcss-media-minmax@2.0.5(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + postcss: 8.5.2 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.6)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.2)': dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.6 + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + postcss: 8.5.2 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.6)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.2)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.6)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.10(postcss@8.5.6)': + '@csstools/postcss-oklab-function@4.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-progressive-custom-properties@4.1.0(postcss@8.5.6)': + '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@2.0.1(postcss@8.5.6)': + '@csstools/postcss-random-function@1.0.1(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-relative-color-syntax@3.0.10(postcss@8.5.6)': + '@csstools/postcss-relative-color-syntax@3.0.6(postcss@8.5.2)': dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.6)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.2)': dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.6)': + '@csstools/postcss-sign-functions@1.1.0(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.6)': + '@csstools/postcss-stepped-value-functions@4.0.5(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.6)': + '@csstools/postcss-text-decoration-shorthand@4.0.1(postcss@8.5.2)': dependencies: - '@csstools/color-helpers': 5.0.2 - postcss: 8.5.6 + '@csstools/color-helpers': 5.0.1 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.6)': + '@csstools/postcss-trigonometric-functions@4.0.5(postcss@8.5.2)': dependencies: - '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 + '@csstools/css-calc': 2.1.0(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.6)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.0.0)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 - '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-specificity@5.0.0(postcss-selector-parser@7.0.0)': dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 - '@csstools/utilities@2.0.0(postcss@8.5.6)': + '@csstools/utilities@2.0.0(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 '@dual-bundle/import-meta-resolve@4.1.0': {} - '@emnapi/core@1.4.3': - dependencies: - '@emnapi/wasi-threads': 1.0.2 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.4.3': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': - dependencies: - tslib: 2.8.1 + '@esbuild/aix-ppc64@0.23.1': optional: true - '@esbuild/aix-ppc64@0.25.5': + '@esbuild/android-arm64@0.23.1': optional: true - '@esbuild/android-arm64@0.25.5': + '@esbuild/android-arm@0.23.1': optional: true - '@esbuild/android-arm@0.25.5': + '@esbuild/android-x64@0.23.1': optional: true - '@esbuild/android-x64@0.25.5': + '@esbuild/darwin-arm64@0.23.1': optional: true - '@esbuild/darwin-arm64@0.25.5': + '@esbuild/darwin-x64@0.23.1': optional: true - '@esbuild/darwin-x64@0.25.5': + '@esbuild/freebsd-arm64@0.23.1': optional: true - '@esbuild/freebsd-arm64@0.25.5': + '@esbuild/freebsd-x64@0.23.1': optional: true - '@esbuild/freebsd-x64@0.25.5': + '@esbuild/linux-arm64@0.23.1': optional: true - '@esbuild/linux-arm64@0.25.5': + '@esbuild/linux-arm@0.23.1': optional: true - '@esbuild/linux-arm@0.25.5': + '@esbuild/linux-ia32@0.23.1': optional: true - '@esbuild/linux-ia32@0.25.5': + '@esbuild/linux-loong64@0.23.1': optional: true - '@esbuild/linux-loong64@0.25.5': + '@esbuild/linux-mips64el@0.23.1': optional: true - '@esbuild/linux-mips64el@0.25.5': + '@esbuild/linux-ppc64@0.23.1': optional: true - '@esbuild/linux-ppc64@0.25.5': + '@esbuild/linux-riscv64@0.23.1': optional: true - '@esbuild/linux-riscv64@0.25.5': + '@esbuild/linux-s390x@0.23.1': optional: true - '@esbuild/linux-s390x@0.25.5': + '@esbuild/linux-x64@0.23.1': optional: true - '@esbuild/linux-x64@0.25.5': + '@esbuild/netbsd-x64@0.23.1': optional: true - '@esbuild/netbsd-arm64@0.25.5': + '@esbuild/openbsd-arm64@0.23.1': optional: true - '@esbuild/netbsd-x64@0.25.5': + '@esbuild/openbsd-x64@0.23.1': optional: true - '@esbuild/openbsd-arm64@0.25.5': + '@esbuild/sunos-x64@0.23.1': optional: true - '@esbuild/openbsd-x64@0.25.5': + '@esbuild/win32-arm64@0.23.1': optional: true - '@esbuild/sunos-x64@0.25.5': + '@esbuild/win32-ia32@0.23.1': optional: true - '@esbuild/win32-arm64@0.25.5': + '@esbuild/win32-x64@0.23.1': optional: true - '@esbuild/win32-ia32@0.25.5': - optional: true - - '@esbuild/win32-x64@0.25.5': - optional: true - - '@eslint-community/eslint-utils@4.7.0(eslint@9.29.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@9.20.0)': dependencies: - eslint: 9.29.0 + eslint: 9.20.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/config-array@0.20.1': + '@eslint/config-array@0.19.0': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + '@eslint/object-schema': 2.1.4 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.2.3': {} - - '@eslint/core@0.14.0': + '@eslint/core@0.10.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.15.1': + '@eslint/core@0.11.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.3.1': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 - debug: 4.4.1 - espree: 10.4.0 + debug: 4.4.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@eslint/js@9.29.0': {} + '@eslint/js@9.20.0': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.3.3': + '@eslint/plugin-kit@0.2.5': dependencies: - '@eslint/core': 0.15.1 + '@eslint/core': 0.10.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -6675,7 +6579,7 @@ snapshots: '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} + '@humanwhocodes/retry@0.4.1': {} '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: @@ -6897,7 +6801,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -6909,7 +6813,7 @@ snapshots: jest-regex-util: 29.6.3 jest-util: 29.7.0 micromatch: 4.0.8 - pirates: 4.0.7 + pirates: 4.0.6 slash: 3.0.0 write-file-atomic: 4.0.2 transitivePeerDependencies: @@ -6924,7 +6828,7 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -6948,26 +6852,26 @@ snapshots: '@jsdevtools/ono@7.1.3': {} - '@keyv/serialize@1.0.3': + '@keyv/serialize@1.0.2': dependencies: buffer: 6.0.3 - '@lehoczky/postcss-fluid@1.0.3(postcss@8.5.6)': + '@lehoczky/postcss-fluid@1.0.3(postcss@8.5.2)': dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - '@mdx-js/loader@3.1.0(acorn@8.15.0)': + '@mdx-js/loader@3.1.0(acorn@8.14.0)': dependencies: - '@mdx-js/mdx': 3.1.0(acorn@8.15.0) + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) source-map: 0.7.4 transitivePeerDependencies: - acorn - supports-color - '@mdx-js/mdx@3.1.0(acorn@8.15.0)': + '@mdx-js/mdx@3.1.0(acorn@8.14.0)': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 '@types/mdx': 2.0.13 @@ -6976,15 +6880,15 @@ snapshots: estree-util-is-identifier-name: 3.0.0 estree-util-scope: 1.0.0 estree-walker: 3.0.3 - hast-util-to-jsx-runtime: 2.3.6 + hast-util-to-jsx-runtime: 2.3.2 markdown-extensions: 2.0.0 recma-build-jsx: 1.0.0 - recma-jsx: 1.0.0(acorn@8.15.0) + recma-jsx: 1.0.0(acorn@8.14.0) recma-stringify: 1.0.0 rehype-recma: 1.0.0 remark-mdx: 3.1.0 remark-parse: 11.0.0 - remark-rehype: 11.1.2 + remark-rehype: 11.1.1 source-map: 0.7.4 unified: 11.0.5 unist-util-position-from-estree: 2.0.0 @@ -7001,13 +6905,6 @@ snapshots: '@types/react': 19.0.8 react: 19.0.0 - '@napi-rs/wasm-runtime@0.2.11': - dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 - optional: true - '@next/env@15.1.7': {} '@next/env@15.2.4': {} @@ -7016,11 +6913,11 @@ snapshots: dependencies: fast-glob: 3.3.1 - '@next/mdx@15.1.6(@mdx-js/loader@3.1.0(acorn@8.15.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0))': + '@next/mdx@15.1.6(@mdx-js/loader@3.1.0(acorn@8.14.0))(@mdx-js/react@3.1.0(@types/react@19.0.8)(react@19.0.0))': dependencies: source-map: 0.7.4 optionalDependencies: - '@mdx-js/loader': 3.1.0(acorn@8.15.0) + '@mdx-js/loader': 3.1.0(acorn@8.14.0) '@mdx-js/react': 3.1.0(@types/react@19.0.8)(react@19.0.0) '@next/swc-darwin-arm64@15.2.4': @@ -7057,207 +6954,215 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 + fastq: 1.17.1 '@nolyfill/is-core-module@1.0.39': {} - '@radix-ui/primitive@1.1.2': {} + '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-collection@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-context@1.1.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-context@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) - aria-hidden: 1.2.6 + '@radix-ui/react-dialog@1.1.5(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + aria-hidden: 1.2.4 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-remove-scroll: 2.7.1(@types/react@19.0.8)(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.8)(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-direction@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-direction@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-dismissable-layer@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-id@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-id@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-slot': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-slot@1.2.3(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + + '@radix-ui/react-slot@1.1.1(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-slot@1.1.2(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 - '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-tabs@1.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) optionalDependencies: '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.0.8)(react@19.0.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.8)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.8)(react@19.0.0) react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.8)(react@19.0.0)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.8)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.8 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) optionalDependencies: @@ -7266,47 +7171,72 @@ snapshots: '@rtsao/scc@1.1.0': {} - '@rushstack/eslint-patch@1.11.0': {} + '@rushstack/eslint-patch@1.10.5': {} - '@shikijs/core@2.5.0': + '@shikijs/core@2.2.0': dependencies: - '@shikijs/engine-javascript': 2.5.0 - '@shikijs/engine-oniguruma': 2.5.0 - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/engine-javascript': 2.2.0 + '@shikijs/engine-oniguruma': 2.2.0 + '@shikijs/types': 2.2.0 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.5 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@2.5.0': + '@shikijs/core@2.3.2': dependencies: - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 - oniguruma-to-es: 3.1.1 + '@shikijs/engine-javascript': 2.3.2 + '@shikijs/engine-oniguruma': 2.3.2 + '@shikijs/types': 2.3.2 + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + + '@shikijs/engine-javascript@2.2.0': + dependencies: + '@shikijs/types': 2.2.0 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 2.3.0 + + '@shikijs/engine-javascript@2.3.2': + dependencies: + '@shikijs/types': 2.3.2 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 3.1.0 - '@shikijs/engine-oniguruma@2.5.0': + '@shikijs/engine-oniguruma@2.2.0': dependencies: - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/types': 2.2.0 + '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/langs@2.5.0': + '@shikijs/engine-oniguruma@2.3.2': dependencies: - '@shikijs/types': 2.5.0 + '@shikijs/types': 2.3.2 + '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/themes@2.5.0': + '@shikijs/langs@2.2.0': dependencies: - '@shikijs/types': 2.5.0 + '@shikijs/types': 2.2.0 - '@shikijs/transformers@2.5.0': + '@shikijs/themes@2.2.0': dependencies: - '@shikijs/core': 2.5.0 - '@shikijs/types': 2.5.0 + '@shikijs/types': 2.2.0 + + '@shikijs/transformers@2.3.2': + dependencies: + '@shikijs/core': 2.3.2 + '@shikijs/types': 2.3.2 + + '@shikijs/types@2.2.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 - '@shikijs/types@2.5.0': + '@shikijs/types@2.3.2': dependencies: - '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.2': {} + '@shikijs/vscode-textmate@10.0.1': {} '@sinclair/typebox@0.27.8': {} @@ -7318,54 +7248,54 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.27.4)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.27.4)': + '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.27.4 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.27.4) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.27.4) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) '@svgr/core@8.1.0(typescript@5.7.3)': dependencies: - '@babel/core': 7.27.4 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.7.3) snake-case: 3.0.4 @@ -7375,13 +7305,13 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.0 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.7.3))': dependencies: - '@babel/core': 7.27.4 - '@svgr/babel-preset': 8.1.0(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 @@ -7399,11 +7329,11 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.7.3)': dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.27.4) - '@babel/preset-env': 7.27.2(@babel/core@7.27.4) - '@babel/preset-react': 7.27.1(@babel/core@7.27.4) - '@babel/preset-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.0) + '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-react': 7.26.3(@babel/core@7.26.0) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@svgr/core': 8.1.0(typescript@5.7.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3)) '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.7.3))(typescript@5.7.3) @@ -7419,8 +7349,8 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.27.1 - '@babel/runtime': 7.27.6 + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.27.1 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -7430,7 +7360,7 @@ snapshots: '@testing-library/jest-dom@6.6.3': dependencies: - '@adobe/css-tools': 4.4.3 + '@adobe/css-tools': 4.4.1 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 @@ -7438,9 +7368,9 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@testing-library/react@16.1.0(@testing-library/dom@10.4.0)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@babel/runtime': 7.27.6 + '@babel/runtime': 7.27.1 '@testing-library/dom': 10.4.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -7450,15 +7380,15 @@ snapshots: '@tootallnate/once@2.0.0': {} - '@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.6.1)': + '@trivago/prettier-plugin-sort-imports@5.2.0(prettier@3.4.2)': dependencies: - '@babel/generator': 7.27.5 - '@babel/parser': 7.27.5 - '@babel/traverse': 7.27.4 - '@babel/types': 7.27.6 + '@babel/generator': 7.26.3 + '@babel/parser': 7.26.3 + '@babel/traverse': 7.26.3 + '@babel/types': 7.26.3 javascript-natural-sort: 0.7.1 lodash: 4.17.21 - prettier: 3.6.1 + prettier: 3.4.2 transitivePeerDependencies: - supports-color @@ -7472,43 +7402,42 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tybys/wasm-util@0.9.0': + '@types/acorn@4.0.6': dependencies: - tslib: 2.8.1 - optional: true + '@types/estree': 1.0.6 '@types/aria-query@5.0.4': {} '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 - '@types/babel__generator': 7.27.0 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 + '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.20.6 - '@types/babel__generator@7.27.0': + '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.3 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.27.5 - '@babel/types': 7.27.6 + '@babel/parser': 7.26.3 + '@babel/types': 7.26.3 - '@types/babel__traverse@7.20.7': + '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.27.6 + '@babel/types': 7.26.3 '@types/debug@4.1.12': dependencies: - '@types/ms': 2.1.0 + '@types/ms': 0.7.34 '@types/estree-jsx@1.0.5': dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 - '@types/estree@1.0.8': {} + '@types/estree@1.0.6': {} '@types/graceful-fs@4.1.9': dependencies: @@ -7537,7 +7466,7 @@ snapshots: dependencies: '@types/node': 22.10.10 '@types/tough-cookie': 4.0.5 - parse5: 7.3.0 + parse5: 7.2.1 '@types/json-schema@7.0.15': {} @@ -7549,7 +7478,7 @@ snapshots: '@types/mdx@2.0.13': {} - '@types/ms@2.1.0': {} + '@types/ms@0.7.34': {} '@types/node@22.10.10': dependencies: @@ -7577,179 +7506,105 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint@9.29.0)(typescript@5.7.3)': + '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint@9.20.0)(typescript@5.7.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - '@typescript-eslint/scope-manager': 8.35.0 - '@typescript-eslint/type-utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - '@typescript-eslint/utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.35.0 - eslint: 9.29.0 + '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/type-utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + '@typescript-eslint/utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.22.0 + eslint: 9.20.0 graphemer: 1.4.0 - ignore: 7.0.5 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.7.3) - typescript: 5.7.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.35.0 - '@typescript-eslint/types': 8.35.0 - '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) - '@typescript-eslint/visitor-keys': 8.35.0 - debug: 4.4.1 - eslint: 9.29.0 + ts-api-utils: 2.0.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.35.0(typescript@5.7.3)': + '@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.7.3) - '@typescript-eslint/types': 8.35.0 - debug: 4.4.1 + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + '@typescript-eslint/visitor-keys': 8.22.0 + debug: 4.4.0 + eslint: 9.20.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.35.0': - dependencies: - '@typescript-eslint/types': 8.35.0 - '@typescript-eslint/visitor-keys': 8.35.0 - - '@typescript-eslint/tsconfig-utils@8.35.0(typescript@5.7.3)': + '@typescript-eslint/scope-manager@8.22.0': dependencies: - typescript: 5.7.3 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/visitor-keys': 8.22.0 - '@typescript-eslint/type-utils@8.35.0(eslint@9.29.0)(typescript@5.7.3)': + '@typescript-eslint/type-utils@8.22.0(eslint@9.20.0)(typescript@5.7.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) - '@typescript-eslint/utils': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - debug: 4.4.1 - eslint: 9.29.0 - ts-api-utils: 2.1.0(typescript@5.7.3) + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + '@typescript-eslint/utils': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + debug: 4.4.0 + eslint: 9.20.0 + ts-api-utils: 2.0.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.35.0': {} + '@typescript-eslint/types@8.22.0': {} - '@typescript-eslint/typescript-estree@8.35.0(typescript@5.7.3)': + '@typescript-eslint/typescript-estree@8.22.0(typescript@5.7.3)': dependencies: - '@typescript-eslint/project-service': 8.35.0(typescript@5.7.3) - '@typescript-eslint/tsconfig-utils': 8.35.0(typescript@5.7.3) - '@typescript-eslint/types': 8.35.0 - '@typescript-eslint/visitor-keys': 8.35.0 - debug: 4.4.1 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/visitor-keys': 8.22.0 + debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.7.3) + ts-api-utils: 2.0.0(typescript@5.7.3) typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.35.0(eslint@9.29.0)(typescript@5.7.3)': + '@typescript-eslint/utils@8.22.0(eslint@9.20.0)(typescript@5.7.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0) - '@typescript-eslint/scope-manager': 8.35.0 - '@typescript-eslint/types': 8.35.0 - '@typescript-eslint/typescript-estree': 8.35.0(typescript@5.7.3) - eslint: 9.29.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0) + '@typescript-eslint/scope-manager': 8.22.0 + '@typescript-eslint/types': 8.22.0 + '@typescript-eslint/typescript-estree': 8.22.0(typescript@5.7.3) + eslint: 9.20.0 typescript: 5.7.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.35.0': - dependencies: - '@typescript-eslint/types': 8.35.0 - eslint-visitor-keys: 4.2.1 - - '@ungap/structured-clone@1.3.0': {} - - '@unrs/resolver-binding-android-arm-eabi@1.9.2': - optional: true - - '@unrs/resolver-binding-android-arm64@1.9.2': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.9.2': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.9.2': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.9.2': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.9.2': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.9.2': + '@typescript-eslint/visitor-keys@8.22.0': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 - optional: true + '@typescript-eslint/types': 8.22.0 + eslint-visitor-keys: 4.2.0 - '@unrs/resolver-binding-win32-arm64-msvc@1.9.2': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.9.2': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.9.2': - optional: true + '@ungap/structured-clone@1.2.0': {} abab@2.0.6: {} acorn-globals@7.0.1: dependencies: - acorn: 8.15.0 + acorn: 8.14.0 acorn-walk: 8.3.4 - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.15.0 + acorn: 8.14.0 acorn-walk@8.3.4: dependencies: - acorn: 8.15.0 + acorn: 8.14.0 - acorn@8.15.0: {} + acorn@8.14.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.1 + debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -7767,7 +7622,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.6 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -7796,7 +7651,7 @@ snapshots: argparse@2.0.1: {} - aria-hidden@1.2.6: + aria-hidden@1.2.4: dependencies: tslib: 2.8.1 @@ -7808,19 +7663,17 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-array-buffer: 3.0.5 - array-includes@3.1.9: + array-includes@3.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-string: 1.1.1 - math-intrinsics: 1.1.0 array-union@2.1.0: {} @@ -7828,51 +7681,50 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 - array.prototype.findlastindex@1.2.6: + array.prototype.findlastindex@1.2.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 - es-shim-unscopables: 1.1.0 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 + es-shim-unscopables: 1.0.2 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 is-array-buffer: 3.0.5 ast-types-flow@0.0.8: {} @@ -7885,31 +7737,31 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.20(postcss@8.5.2): dependencies: - browserslist: 4.25.1 - caniuse-lite: 1.0.30001726 + browserslist: 4.24.2 + caniuse-lite: 1.0.30001718 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.1.0 + possible-typed-array-names: 1.0.0 - axe-core@4.10.3: {} + axe-core@4.10.2: {} axobject-query@4.1.0: {} - babel-jest@29.7.0(@babel/core@7.27.4): + babel-jest@29.7.0(@babel/core@7.26.0): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.27.4) + babel-preset-jest: 29.6.3(@babel/core@7.26.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -7918,7 +7770,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.25.9 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -7928,59 +7780,59 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.27.6 + '@babel/template': 7.25.9 + '@babel/types': 7.26.3 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.7 + '@types/babel__traverse': 7.20.6 - babel-plugin-polyfill-corejs2@0.4.13(@babel/core@7.27.4): + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): dependencies: - '@babel/compat-data': 7.27.5 - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) + '@babel/compat-data': 7.26.3 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.27.4): + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.0): dependencies: - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) - core-js-compat: 3.43.0 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + core-js-compat: 3.39.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.4(@babel/core@7.27.4): + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): dependencies: - '@babel/core': 7.27.4 - '@babel/helper-define-polyfill-provider': 0.6.4(@babel/core@7.27.4) + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.4): - dependencies: - '@babel/core': 7.27.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.4) - - babel-preset-jest@29.6.3(@babel/core@7.27.4): - dependencies: - '@babel/core': 7.27.4 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.0) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + + babel-preset-jest@29.6.3(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) bail@2.0.2: {} @@ -7992,12 +7844,12 @@ snapshots: boolbase@1.0.0: {} - brace-expansion@1.1.12: + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.2: + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 @@ -8005,12 +7857,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.1: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001726 - electron-to-chromium: 1.5.176 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.1) + caniuse-lite: 1.0.30001718 + electron-to-chromium: 1.5.70 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) bser@2.1.1: dependencies: @@ -8027,27 +7879,27 @@ snapshots: dependencies: streamsearch: 1.1.0 - cacheable@1.10.0: + cacheable@1.8.8: dependencies: - hookified: 1.9.1 - keyv: 5.3.4 + hookified: 1.7.0 + keyv: 5.2.3 - call-bind-apply-helpers@1.0.2: + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.2 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 - call-bound@1.0.4: + call-bound@1.0.3: dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 call-me-maybe@1.0.2: {} @@ -8057,7 +7909,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001726: {} + caniuse-lite@1.0.30001718: {} ccount@2.0.1: {} @@ -8083,7 +7935,7 @@ snapshots: ci-info@3.9.0: {} - cjs-module-lexer@1.4.3: {} + cjs-module-lexer@1.4.1: {} class-variance-authority@0.7.1: dependencies: @@ -8137,13 +7989,13 @@ snapshots: convert-source-map@2.0.0: {} - core-js-compat@3.43.0: + core-js-compat@3.39.0: dependencies: - browserslist: 4.25.1 + browserslist: 4.24.2 cosmiconfig@8.3.6(typescript@5.7.3): dependencies: - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 @@ -8153,7 +8005,7 @@ snapshots: cosmiconfig@9.0.0(typescript@5.7.3): dependencies: env-paths: 2.2.1 - import-fresh: 3.3.1 + import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: @@ -8182,30 +8034,30 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-blank-pseudo@7.0.1(postcss@8.5.6): + css-blank-pseudo@7.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 css-functions-list@3.2.3: {} - css-has-pseudo@7.0.2(postcss@8.5.6): + css-has-pseudo@7.0.1(postcss@8.5.2): dependencies: - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - css-prefers-color-scheme@10.0.0(postcss@8.5.6): + css-prefers-color-scheme@10.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.2.2 + domutils: 3.1.0 nth-check: 2.1.1 css-tree@2.2.1: @@ -8218,6 +8070,12 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.2.1 + css-tree@3.0.1: + dependencies: + mdn-data: 2.12.1 + source-map-js: 1.2.1 + optional: true + css-tree@3.1.0: dependencies: mdn-data: 2.12.2 @@ -8227,7 +8085,7 @@ snapshots: css.escape@1.5.1: {} - cssdb@8.3.1: {} + cssdb@8.2.3: {} cssesc@3.0.0: {} @@ -8255,19 +8113,19 @@ snapshots: data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-data-view: 1.0.2 @@ -8277,17 +8135,21 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.4.1: + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0: dependencies: ms: 2.1.3 - decimal.js@10.5.0: {} + decimal.js@10.4.3: {} - decode-named-character-reference@1.2.0: + decode-named-character-reference@1.0.2: dependencies: character-entities: 2.0.2 - dedent@1.6.0: {} + dedent@1.5.3: {} deep-is@0.1.4: {} @@ -8352,7 +8214,7 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.2.2: + domutils@3.1.0: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -8365,11 +8227,11 @@ snapshots: dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.2 + call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.176: {} + electron-to-chromium@1.5.70: {} emittery@0.13.1: {} @@ -8379,9 +8241,12 @@ snapshots: emoji-regex@9.2.2: {} - entities@4.5.0: {} + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 - entities@6.0.1: {} + entities@4.5.0: {} env-paths@2.2.1: {} @@ -8389,13 +8254,13 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.0: + es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 @@ -8405,7 +8270,7 @@ snapshots: es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -8418,15 +8283,13 @@ snapshots: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 - is-negative-zero: 2.0.3 is-regex: 1.2.1 - is-set: 2.0.3 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.1 + is-weakref: 1.1.0 math-intrinsics: 1.1.0 - object-inspect: 1.13.4 + object-inspect: 1.13.3 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 @@ -8435,7 +8298,6 @@ snapshots: safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -8444,7 +8306,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 + which-typed-array: 1.1.18 es-define-property@1.0.1: {} @@ -8453,13 +8315,13 @@ snapshots: es-iterator-helpers@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -8476,11 +8338,11 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.1.0: + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 @@ -8500,37 +8362,36 @@ snapshots: esast-util-from-js@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - acorn: 8.15.0 + acorn: 8.14.0 esast-util-from-estree: 2.0.0 vfile-message: 4.0.2 - esbuild@0.25.5: + esbuild@0.23.1: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.5 - '@esbuild/android-arm': 0.25.5 - '@esbuild/android-arm64': 0.25.5 - '@esbuild/android-x64': 0.25.5 - '@esbuild/darwin-arm64': 0.25.5 - '@esbuild/darwin-x64': 0.25.5 - '@esbuild/freebsd-arm64': 0.25.5 - '@esbuild/freebsd-x64': 0.25.5 - '@esbuild/linux-arm': 0.25.5 - '@esbuild/linux-arm64': 0.25.5 - '@esbuild/linux-ia32': 0.25.5 - '@esbuild/linux-loong64': 0.25.5 - '@esbuild/linux-mips64el': 0.25.5 - '@esbuild/linux-ppc64': 0.25.5 - '@esbuild/linux-riscv64': 0.25.5 - '@esbuild/linux-s390x': 0.25.5 - '@esbuild/linux-x64': 0.25.5 - '@esbuild/netbsd-arm64': 0.25.5 - '@esbuild/netbsd-x64': 0.25.5 - '@esbuild/openbsd-arm64': 0.25.5 - '@esbuild/openbsd-x64': 0.25.5 - '@esbuild/sunos-x64': 0.25.5 - '@esbuild/win32-arm64': 0.25.5 - '@esbuild/win32-ia32': 0.25.5 - '@esbuild/win32-x64': 0.25.5 + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 escalade@3.2.0: {} @@ -8548,19 +8409,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.1.7(eslint@9.29.0)(typescript@5.7.3): + eslint-config-next@15.1.7(eslint@9.20.0)(typescript@5.7.3): dependencies: '@next/eslint-plugin-next': 15.1.7 - '@rushstack/eslint-patch': 1.11.0 - '@typescript-eslint/eslint-plugin': 8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint@9.29.0)(typescript@5.7.3) - '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - eslint: 9.29.0 + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/eslint-plugin': 8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint@9.20.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + eslint: 9.20.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.29.0) - eslint-plugin-react: 7.37.5(eslint@9.29.0) - eslint-plugin-react-hooks: 5.2.0(eslint@9.29.0) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.20.0) + eslint-plugin-react: 7.37.4(eslint@9.20.0) + eslint-plugin-react-hooks: 5.1.0(eslint@9.20.0) optionalDependencies: typescript: 5.7.3 transitivePeerDependencies: @@ -8568,9 +8429,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.5(eslint@9.29.0): + eslint-config-prettier@10.0.1(eslint@9.20.0): dependencies: - eslint: 9.29.0 + eslint: 9.20.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -8580,44 +8441,45 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1 - eslint: 9.29.0 - get-tsconfig: 4.10.1 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.14 - unrs-resolver: 1.9.2 + debug: 4.4.0 + enhanced-resolve: 5.18.0 + eslint: 9.20.0 + fast-glob: 3.3.3 + get-tsconfig: 4.10.0 + is-bun-module: 1.3.0 + is-glob: 4.0.3 + stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) - eslint: 9.29.0 + '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) + eslint: 9.20.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.29.0) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.20.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0): dependencies: '@rtsao/scc': 1.1.0 - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.3 array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.29.0 + eslint: 9.20.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.35.0(eslint@9.29.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.29.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.22.0(eslint@9.20.0)(typescript@5.7.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0)(eslint@9.20.0) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8629,23 +8491,23 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.35.0(eslint@9.29.0)(typescript@5.7.3) + '@typescript-eslint/parser': 8.22.0(eslint@9.20.0)(typescript@5.7.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.29.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.20.0): dependencies: aria-query: 5.3.2 - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.3 + axe-core: 4.10.2 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.29.0 + eslint: 9.20.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -8654,24 +8516,24 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.2.0(eslint@9.29.0): + eslint-plugin-react-hooks@5.1.0(eslint@9.20.0): dependencies: - eslint: 9.29.0 + eslint: 9.20.0 - eslint-plugin-react@7.37.5(eslint@9.29.0): + eslint-plugin-react@7.37.4(eslint@9.20.0): dependencies: - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.29.0 + eslint: 9.20.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.9 + object.entries: 1.1.8 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 @@ -8680,38 +8542,37 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-scope@8.4.0: + eslint-scope@8.2.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@4.2.0: {} - eslint@9.29.0: + eslint@9.20.0: dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.29.0) + '@eslint-community/eslint-utils': 4.4.1(eslint@9.20.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 - '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.29.0 - '@eslint/plugin-kit': 0.3.3 + '@eslint/config-array': 0.19.0 + '@eslint/core': 0.11.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.20.0 + '@eslint/plugin-kit': 0.2.5 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.0 escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 esquery: 1.6.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -8729,11 +8590,11 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.4.0: + espree@10.3.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 esprima@4.0.1: {} @@ -8749,7 +8610,7 @@ snapshots: estree-util-attach-comments@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-util-build-jsx@3.0.1: dependencies: @@ -8762,7 +8623,7 @@ snapshots: estree-util-scope@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 devlop: 1.1.0 estree-util-to-js@2.0.0: @@ -8773,7 +8634,7 @@ snapshots: estree-util-value-to-estree@3.4.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-util-visit@2.0.0: dependencies: @@ -8782,7 +8643,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 esutils@2.0.3: {} @@ -8814,7 +8675,7 @@ snapshots: fast-fuzzy@1.12.0: dependencies: - graphemesplit: 2.6.0 + graphemesplit: 2.5.1 fast-glob@3.3.1: dependencies: @@ -8836,13 +8697,13 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-uri@3.0.6: {} + fast-uri@3.0.3: {} fastest-levenshtein@1.0.16: {} - fastq@1.19.1: + fastq@1.17.1: dependencies: - reusify: 1.1.0 + reusify: 1.0.4 fault@2.0.1: dependencies: @@ -8852,13 +8713,9 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.6(picomatch@4.0.2): - optionalDependencies: - picomatch: 4.0.2 - - file-entry-cache@10.1.1: + file-entry-cache@10.0.6: dependencies: - flat-cache: 6.1.10 + flat-cache: 6.1.6 file-entry-cache@8.0.0: dependencies: @@ -8880,37 +8737,35 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.3 + flatted: 3.3.2 keyv: 4.5.4 - flat-cache@6.1.10: + flat-cache@6.1.6: dependencies: - cacheable: 1.10.0 - flatted: 3.3.3 - hookified: 1.9.1 + cacheable: 1.8.8 + flatted: 3.3.2 + hookified: 1.7.0 - flatted@3.3.3: {} + flatted@3.3.2: {} - for-each@0.3.5: + for-each@0.3.4: dependencies: is-callable: 1.2.7 - form-data@4.0.3: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 - es-set-tostringtag: 2.1.0 - hasown: 2.0.2 mime-types: 2.1.35 format@0.2.2: {} fraction.js@4.3.7: {} - framer-motion@12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + framer-motion@12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - motion-dom: 12.19.0 - motion-utils: 12.19.0 + motion-dom: 12.0.0 + motion-utils: 12.0.0 tslib: 2.8.1 optionalDependencies: react: 19.0.0 @@ -8926,7 +8781,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -8938,9 +8793,9 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.3.0: + get-intrinsic@1.2.7: dependencies: - call-bind-apply-helpers: 1.0.2 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 @@ -8964,11 +8819,15 @@ snapshots: get-symbol-description@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 - get-tsconfig@4.10.1: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -9027,7 +8886,7 @@ snapshots: graphemer@1.4.0: {} - graphemesplit@2.6.0: + graphemesplit@2.5.1: dependencies: js-base64: 3.7.7 unicode-trie: 2.0.0 @@ -9065,12 +8924,12 @@ snapshots: hast-util-sanitize@5.0.2: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 unist-util-position: 5.0.0 - hast-util-to-estree@3.1.3: + hast-util-to-estree@3.1.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 @@ -9079,17 +8938,17 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-object: 0.4.4 unist-util-position: 5.0.0 zwitch: 2.0.4 transitivePeerDependencies: - supports-color - hast-util-to-html@9.0.5: + hast-util-to-html@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -9098,14 +8957,14 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 - hast-util-to-jsx-runtime@2.3.6: + hast-util-to-jsx-runtime@2.3.2: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 '@types/hast': 3.0.4 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 @@ -9113,11 +8972,11 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 6.5.0 space-separated-tokens: 2.0.2 - style-to-js: 1.1.17 + style-to-object: 1.0.8 unist-util-position: 5.0.0 vfile-message: 4.0.2 transitivePeerDependencies: @@ -9131,7 +8990,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 - hookified@1.9.1: {} + hookified@1.7.0: {} html-encoding-sniffer@3.0.0: dependencies: @@ -9147,14 +9006,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -9168,9 +9027,9 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.5: {} + ignore@7.0.3: {} - import-fresh@3.3.1: + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 @@ -9193,6 +9052,8 @@ snapshots: ini@1.3.8: {} + inline-style-parser@0.1.1: {} + inline-style-parser@0.2.4: {} internal-slot@1.1.0: @@ -9211,8 +9072,8 @@ snapshots: is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} @@ -9222,7 +9083,7 @@ snapshots: is-async-function@2.1.1: dependencies: async-function: 1.0.0 - call-bound: 1.0.4 + call-bound: 1.0.3 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -9231,30 +9092,34 @@ snapshots: dependencies: has-bigints: 1.1.0 - is-boolean-object@1.2.2: + is-boolean-object@1.2.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 - is-bun-module@2.0.0: + is-bun-module@1.3.0: dependencies: semver: 7.7.2 is-callable@1.2.7: {} + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + is-core-module@2.16.1: dependencies: hasown: 2.0.2 is-data-view@1.0.2: dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-decimal@2.0.1: {} @@ -9263,7 +9128,7 @@ snapshots: is-finalizationregistry@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-fullwidth-code-point@3.0.0: {} @@ -9271,7 +9136,7 @@ snapshots: is-generator-function@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -9284,11 +9149,9 @@ snapshots: is-map@2.0.3: {} - is-negative-zero@2.0.3: {} - is-number-object@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -9301,7 +9164,7 @@ snapshots: is-regex@1.2.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -9310,35 +9173,35 @@ snapshots: is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-stream@2.0.1: {} is-string@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.18 is-weakmap@2.0.2: {} - is-weakref@1.1.1: + is-weakref@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 is-weakset@2.0.4: dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 isarray@2.0.5: {} @@ -9348,8 +9211,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.27.4 - '@babel/parser': 7.27.5 + '@babel/core': 7.26.0 + '@babel/parser': 7.26.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -9358,8 +9221,8 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.27.4 - '@babel/parser': 7.27.5 + '@babel/core': 7.26.0 + '@babel/parser': 7.26.3 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.2 @@ -9374,7 +9237,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.0 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -9389,7 +9252,7 @@ snapshots: dependencies: define-data-property: 1.1.4 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 @@ -9411,7 +9274,7 @@ snapshots: '@types/node': 22.10.10 chalk: 4.1.2 co: 4.6.0 - dedent: 1.6.0 + dedent: 1.5.3 is-generator-fn: 2.1.0 jest-each: 29.7.0 jest-matcher-utils: 29.7.0 @@ -9449,10 +9312,10 @@ snapshots: jest-config@29.7.0(@types/node@22.10.10)(ts-node@10.9.2(@types/node@22.10.10)(typescript@5.7.3)): dependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.27.4) + babel-jest: 29.7.0(@babel/core@7.26.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9553,7 +9416,7 @@ snapshots: jest-message-util@29.7.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.26.2 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -9590,7 +9453,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.10 + resolve: 1.22.8 resolve.exports: 2.0.3 slash: 3.0.0 @@ -9631,7 +9494,7 @@ snapshots: '@jest/types': 29.6.3 '@types/node': 22.10.10 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -9649,15 +9512,15 @@ snapshots: jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.27.4 - '@babel/generator': 7.27.5 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) - '@babel/types': 7.27.6 + '@babel/core': 7.26.0 + '@babel/generator': 7.26.3 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.3 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -9736,21 +9599,21 @@ snapshots: jsdom@20.0.3: dependencies: abab: 2.0.6 - acorn: 8.15.0 + acorn: 8.14.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.5.0 + decimal.js: 10.4.3 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.3 + form-data: 4.0.1 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.20 - parse5: 7.3.0 + nwsapi: 2.2.16 + parse5: 7.2.1 saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 4.1.4 @@ -9759,7 +9622,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.2 + ws: 8.18.0 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -9768,8 +9631,6 @@ snapshots: jsesc@3.0.2: {} - jsesc@3.1.0: {} - json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -9788,7 +9649,7 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.9 + array-includes: 3.1.8 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -9797,18 +9658,15 @@ snapshots: dependencies: json-buffer: 3.0.1 - keyv@5.3.4: + keyv@5.2.3: dependencies: - '@keyv/serialize': 1.0.3 + '@keyv/serialize': 1.0.2 kind-of@6.0.3: {} kleur@3.0.3: {} - known-css-properties@0.36.0: - optional: true - - known-css-properties@0.37.0: {} + known-css-properties@0.35.0: {} language-subtag-registry@0.3.23: {} @@ -9879,7 +9737,7 @@ snapshots: mathml-tag-names@2.1.3: {} - mdast-util-find-and-replace@3.0.2: + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 escape-string-regexp: 5.0.0 @@ -9890,15 +9748,15 @@ snapshots: dependencies: '@types/mdast': 4.0.4 '@types/unist': 3.0.3 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 mdast-util-to-string: 4.0.0 - micromark: 4.0.2 + micromark: 4.0.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-decode-string: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color @@ -9919,10 +9777,10 @@ snapshots: '@types/mdast': 4.0.4 ccount: 2.0.1 devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.2 + mdast-util-find-and-replace: 3.0.1 micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@2.1.0: + mdast-util-gfm-footnote@2.0.0: dependencies: '@types/mdast': 4.0.4 devlop: 1.1.0 @@ -9959,11 +9817,11 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-gfm@3.1.0: + mdast-util-gfm@3.0.0: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-footnote: 2.0.0 mdast-util-gfm-strikethrough: 2.0.0 mdast-util-gfm-table: 2.0.0 mdast-util-gfm-task-list-item: 2.0.0 @@ -9982,7 +9840,7 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.2.0: + mdast-util-mdx-jsx@3.1.3: dependencies: '@types/estree-jsx': 1.0.5 '@types/hast': 3.0.4 @@ -9992,7 +9850,7 @@ snapshots: devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 mdast-util-to-markdown: 2.1.2 - parse-entities: 4.0.2 + parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 @@ -10003,7 +9861,7 @@ snapshots: dependencies: mdast-util-from-markdown: 2.0.2 mdast-util-mdx-expression: 2.0.1 - mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdx-jsx: 3.1.3 mdast-util-mdxjs-esm: 2.0.1 mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: @@ -10029,7 +9887,7 @@ snapshots: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -10057,9 +9915,12 @@ snapshots: mdn-data@2.0.30: {} + mdn-data@2.12.1: + optional: true + mdn-data@2.12.2: {} - mdn-data@2.21.0: + mdn-data@2.13.0: optional: true memoize-one@5.2.1: {} @@ -10070,9 +9931,9 @@ snapshots: merge2@1.4.1: {} - micromark-core-commonmark@2.0.3: + micromark-core-commonmark@2.0.2: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-factory-destination: 2.0.1 micromark-factory-label: 2.0.1 @@ -10085,34 +9946,34 @@ snapshots: micromark-util-html-tag-name: 2.0.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 - micromark-util-subtokenize: 2.1.0 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm-footnote@2.1.0: dependencies: devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 + micromark-core-commonmark: 2.0.2 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-normalize-identifier: 2.0.1 micromark-util-sanitize-uri: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm-strikethrough@2.1.0: dependencies: @@ -10121,19 +9982,19 @@ snapshots: micromark-util-classify-character: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 - micromark-extension-gfm-table@2.1.1: + micromark-extension-gfm-table@2.1.0: dependencies: devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm-task-list-item@2.1.0: dependencies: @@ -10141,118 +10002,119 @@ snapshots: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-gfm@3.0.0: dependencies: micromark-extension-gfm-autolink-literal: 2.1.0 micromark-extension-gfm-footnote: 2.1.0 micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-table: 2.1.0 micromark-extension-gfm-tagfilter: 2.0.0 micromark-extension-gfm-task-list-item: 2.1.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 - micromark-extension-mdx-expression@3.0.1: + micromark-extension-mdx-expression@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.3 + micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 + micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 - micromark-extension-mdx-jsx@3.0.2: + micromark-extension-mdx-jsx@3.0.1: dependencies: - '@types/estree': 1.0.8 + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 devlop: 1.1.0 estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.3 + micromark-factory-mdx-expression: 2.0.2 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 + micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 vfile-message: 4.0.2 micromark-extension-mdx-md@2.0.0: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-extension-mdxjs-esm@3.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 + micromark-core-commonmark: 2.0.2 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 + micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - micromark-extension-mdx-expression: 3.0.1 - micromark-extension-mdx-jsx: 3.0.2 + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-factory-destination@2.0.1: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-factory-label@2.0.1: dependencies: devlop: 1.1.0 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 - micromark-factory-mdx-expression@2.0.3: + micromark-factory-mdx-expression@2.0.2: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 devlop: 1.1.0 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 - micromark-util-events-to-acorn: 2.0.3 + micromark-util-events-to-acorn: 2.0.2 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 unist-util-position-from-estree: 2.0.0 vfile-message: 4.0.2 micromark-factory-space@2.0.1: dependencies: micromark-util-character: 2.1.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-factory-title@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-factory-whitespace@2.0.1: dependencies: micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-character@2.1.1: dependencies: micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-chunked@2.0.1: dependencies: @@ -10262,12 +10124,12 @@ snapshots: dependencies: micromark-util-character: 2.1.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-combine-extensions@2.0.1: dependencies: micromark-util-chunked: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-decode-numeric-character-reference@2.0.2: dependencies: @@ -10275,21 +10137,22 @@ snapshots: micromark-util-decode-string@2.0.1: dependencies: - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 micromark-util-character: 2.1.1 micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 micromark-util-encode@2.0.1: {} - micromark-util-events-to-acorn@2.0.3: + micromark-util-events-to-acorn@2.0.2: dependencies: - '@types/estree': 1.0.8 + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 '@types/unist': 3.0.3 devlop: 1.1.0 estree-util-visit: 2.0.0 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 vfile-message: 4.0.2 micromark-util-html-tag-name@2.0.1: {} @@ -10300,7 +10163,7 @@ snapshots: micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-sanitize-uri@2.0.1: dependencies: @@ -10308,24 +10171,24 @@ snapshots: micromark-util-encode: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@2.1.0: + micromark-util-subtokenize@2.0.3: dependencies: devlop: 1.1.0 micromark-util-chunked: 2.0.1 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 micromark-util-symbol@2.0.1: {} - micromark-util-types@2.0.2: {} + micromark-util-types@2.0.1: {} - micromark@4.0.2: + micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 - decode-named-character-reference: 1.2.0 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 devlop: 1.1.0 - micromark-core-commonmark: 2.0.3 + micromark-core-commonmark: 2.0.2 micromark-factory-space: 2.0.1 micromark-util-character: 2.1.1 micromark-util-chunked: 2.0.1 @@ -10335,9 +10198,9 @@ snapshots: micromark-util-normalize-identifier: 2.0.1 micromark-util-resolve-all: 2.0.1 micromark-util-sanitize-uri: 2.0.1 - micromark-util-subtokenize: 2.1.0 + micromark-util-subtokenize: 2.0.3 micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 transitivePeerDependencies: - supports-color @@ -10358,23 +10221,23 @@ snapshots: minimatch@3.1.2: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 1.1.11 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 2.0.1 minimist@1.2.8: {} - motion-dom@12.19.0: + motion-dom@12.0.0: dependencies: - motion-utils: 12.19.0 + motion-utils: 12.0.0 - motion-utils@12.19.0: {} + motion-utils@12.0.0: {} - motion@12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + motion@12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - framer-motion: 12.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + framer-motion: 12.4.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 optionalDependencies: react: 19.0.0 @@ -10384,21 +10247,21 @@ snapshots: nanoid@3.3.11: {} - napi-postinstall@0.2.4: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} - next@15.2.4(@babel/core@7.27.4)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.2.4(@babel/core@7.26.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: '@next/env': 15.2.4 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 - caniuse-lite: 1.0.30001726 + caniuse-lite: 1.0.30001718 postcss: 8.4.31 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(@babel/core@7.27.4)(react@19.0.0) + styled-jsx: 5.1.6(@babel/core@7.26.0)(react@19.0.0) optionalDependencies: '@next/swc-darwin-arm64': 15.2.4 '@next/swc-darwin-x64': 15.2.4 @@ -10420,7 +10283,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.19: {} + node-releases@2.0.18: {} normalize-path@3.0.0: {} @@ -10434,27 +10297,26 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.20: {} + nwsapi@2.2.16: {} object-assign@4.1.1: {} - object-inspect@1.13.4: {} + object-inspect@1.13.3: {} object-keys@1.1.1: {} object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.9: + object.entries@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -10462,19 +10324,19 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -10486,7 +10348,13 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oniguruma-to-es@3.1.1: + oniguruma-to-es@2.3.0: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 + + oniguruma-to-es@3.1.0: dependencies: emoji-regex-xs: 1.0.0 regex: 6.0.1 @@ -10505,7 +10373,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -10533,26 +10401,27 @@ snapshots: dependencies: callsites: 3.1.0 - parse-entities@4.0.2: + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.11 + character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.2.0 + decode-named-character-reference: 1.0.2 is-alphanumerical: 2.0.1 is-decimal: 2.0.1 is-hexadecimal: 2.0.1 parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.3.0: + parse5@7.2.1: dependencies: - entities: 6.0.1 + entities: 4.5.0 path-exists@4.0.0: {} @@ -10568,251 +10437,248 @@ snapshots: picomatch@2.3.1: {} - picomatch@4.0.2: {} - - pirates@4.0.7: {} + pirates@4.0.6: {} pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - possible-typed-array-names@1.1.0: {} + possible-typed-array-names@1.0.0: {} - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.6): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-clamp@4.1.0(postcss@8.5.6): + postcss-clamp@4.1.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.10(postcss@8.5.6): + postcss-color-functional-notation@7.0.6(postcss@8.5.2): dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - postcss-color-hex-alpha@10.0.0(postcss@8.5.6): + postcss-color-hex-alpha@10.0.0(postcss@8.5.2): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.6): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.2): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.6(postcss@8.5.6): + postcss-custom-media@11.0.5(postcss@8.5.2): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - postcss: 8.5.6 + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + postcss: 8.5.2 - postcss-custom-properties@14.0.6(postcss@8.5.6): + postcss-custom-properties@14.0.4(postcss@8.5.2): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.5(postcss@8.5.6): + postcss-custom-selectors@8.0.4(postcss@8.5.2): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.6): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-double-position-gradients@6.0.2(postcss@8.5.6): + postcss-double-position-gradients@6.0.0(postcss@8.5.2): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-flexbugs-fixes@5.0.2(postcss@8.5.6): + postcss-flexbugs-fixes@5.0.2(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-focus-visible@10.0.1(postcss@8.5.6): + postcss-focus-visible@10.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-focus-within@9.0.1(postcss@8.5.6): + postcss-focus-within@9.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-font-variant@5.0.0(postcss@8.5.6): + postcss-font-variant@5.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-gap-properties@6.0.0(postcss@8.5.6): + postcss-gap-properties@6.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-image-set-function@7.0.0(postcss@8.5.6): + postcss-image-set-function@7.0.0(postcss@8.5.2): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-lab-function@7.0.10(postcss@8.5.6): + postcss-lab-function@7.0.6(postcss@8.5.2): dependencies: - '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/utilities': 2.0.0(postcss@8.5.6) - postcss: 8.5.6 + '@csstools/css-color-parser': 3.0.6(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/utilities': 2.0.0(postcss@8.5.2) + postcss: 8.5.2 - postcss-load-config@6.0.1(postcss@8.5.6)(tsx@4.20.3)(yaml@2.8.0): + postcss-load-config@6.0.1(postcss@8.5.2)(tsx@4.19.2)(yaml@2.7.0): dependencies: lilconfig: 3.1.3 optionalDependencies: - postcss: 8.5.6 - tsx: 4.20.3 - yaml: 2.8.0 + postcss: 8.5.2 + tsx: 4.19.2 + yaml: 2.7.0 - postcss-logical@8.1.0(postcss@8.5.6): + postcss-logical@8.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 postcss-media-query-parser@0.2.3: optional: true - postcss-nesting@13.0.2(postcss@8.5.6): + postcss-nesting@13.0.1(postcss@8.5.2): dependencies: - '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.0.0) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.6): + postcss-opacity-percentage@3.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-overflow-shorthand@6.0.0(postcss@8.5.6): + postcss-overflow-shorthand@6.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.6): + postcss-page-break@3.0.4(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-place@10.0.0(postcss@8.5.6): + postcss-place@10.0.0(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 postcss-value-parser: 4.2.0 - postcss-preset-env@10.2.3(postcss@8.5.6): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.6) - '@csstools/postcss-color-function': 4.0.10(postcss@8.5.6) - '@csstools/postcss-color-mix-function': 3.0.10(postcss@8.5.6) - '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.0(postcss@8.5.6) - '@csstools/postcss-content-alt-text': 2.0.6(postcss@8.5.6) - '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.6) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.6) - '@csstools/postcss-gamut-mapping': 2.0.10(postcss@8.5.6) - '@csstools/postcss-gradients-interpolation-method': 5.0.10(postcss@8.5.6) - '@csstools/postcss-hwb-function': 4.0.10(postcss@8.5.6) - '@csstools/postcss-ic-unit': 4.0.2(postcss@8.5.6) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.6) - '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.6) - '@csstools/postcss-light-dark-function': 2.0.9(postcss@8.5.6) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.6) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.6) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.6) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.6) - '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.6) - '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.6) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.6) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.6) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.6) - '@csstools/postcss-oklab-function': 4.0.10(postcss@8.5.6) - '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.6) - '@csstools/postcss-random-function': 2.0.1(postcss@8.5.6) - '@csstools/postcss-relative-color-syntax': 3.0.10(postcss@8.5.6) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.6) - '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.6) - '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.6) - '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.6) - '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.6) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.6) - autoprefixer: 10.4.21(postcss@8.5.6) - browserslist: 4.25.1 - css-blank-pseudo: 7.0.1(postcss@8.5.6) - css-has-pseudo: 7.0.2(postcss@8.5.6) - css-prefers-color-scheme: 10.0.0(postcss@8.5.6) - cssdb: 8.3.1 - postcss: 8.5.6 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.6) - postcss-clamp: 4.1.0(postcss@8.5.6) - postcss-color-functional-notation: 7.0.10(postcss@8.5.6) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.6) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.6) - postcss-custom-media: 11.0.6(postcss@8.5.6) - postcss-custom-properties: 14.0.6(postcss@8.5.6) - postcss-custom-selectors: 8.0.5(postcss@8.5.6) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.6) - postcss-double-position-gradients: 6.0.2(postcss@8.5.6) - postcss-focus-visible: 10.0.1(postcss@8.5.6) - postcss-focus-within: 9.0.1(postcss@8.5.6) - postcss-font-variant: 5.0.0(postcss@8.5.6) - postcss-gap-properties: 6.0.0(postcss@8.5.6) - postcss-image-set-function: 7.0.0(postcss@8.5.6) - postcss-lab-function: 7.0.10(postcss@8.5.6) - postcss-logical: 8.1.0(postcss@8.5.6) - postcss-nesting: 13.0.2(postcss@8.5.6) - postcss-opacity-percentage: 3.0.0(postcss@8.5.6) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.6) - postcss-page-break: 3.0.4(postcss@8.5.6) - postcss-place: 10.0.0(postcss@8.5.6) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.6) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.6) - postcss-selector-not: 8.0.1(postcss@8.5.6) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 - - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 + postcss-preset-env@10.1.1(postcss@8.5.2): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.2) + '@csstools/postcss-color-function': 4.0.6(postcss@8.5.2) + '@csstools/postcss-color-mix-function': 3.0.6(postcss@8.5.2) + '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.2) + '@csstools/postcss-exponential-functions': 2.0.5(postcss@8.5.2) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.2) + '@csstools/postcss-gamut-mapping': 2.0.6(postcss@8.5.2) + '@csstools/postcss-gradients-interpolation-method': 5.0.6(postcss@8.5.2) + '@csstools/postcss-hwb-function': 4.0.6(postcss@8.5.2) + '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.2) + '@csstools/postcss-initial': 2.0.0(postcss@8.5.2) + '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.2) + '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.2) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.2) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.2) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.2) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.2) + '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.2) + '@csstools/postcss-media-minmax': 2.0.5(postcss@8.5.2) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.2) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.2) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.2) + '@csstools/postcss-oklab-function': 4.0.6(postcss@8.5.2) + '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.2) + '@csstools/postcss-random-function': 1.0.1(postcss@8.5.2) + '@csstools/postcss-relative-color-syntax': 3.0.6(postcss@8.5.2) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.2) + '@csstools/postcss-sign-functions': 1.1.0(postcss@8.5.2) + '@csstools/postcss-stepped-value-functions': 4.0.5(postcss@8.5.2) + '@csstools/postcss-text-decoration-shorthand': 4.0.1(postcss@8.5.2) + '@csstools/postcss-trigonometric-functions': 4.0.5(postcss@8.5.2) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.2) + autoprefixer: 10.4.20(postcss@8.5.2) + browserslist: 4.24.2 + css-blank-pseudo: 7.0.1(postcss@8.5.2) + css-has-pseudo: 7.0.1(postcss@8.5.2) + css-prefers-color-scheme: 10.0.0(postcss@8.5.2) + cssdb: 8.2.3 + postcss: 8.5.2 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.2) + postcss-clamp: 4.1.0(postcss@8.5.2) + postcss-color-functional-notation: 7.0.6(postcss@8.5.2) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.2) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.2) + postcss-custom-media: 11.0.5(postcss@8.5.2) + postcss-custom-properties: 14.0.4(postcss@8.5.2) + postcss-custom-selectors: 8.0.4(postcss@8.5.2) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.2) + postcss-double-position-gradients: 6.0.0(postcss@8.5.2) + postcss-focus-visible: 10.0.1(postcss@8.5.2) + postcss-focus-within: 9.0.1(postcss@8.5.2) + postcss-font-variant: 5.0.0(postcss@8.5.2) + postcss-gap-properties: 6.0.0(postcss@8.5.2) + postcss-image-set-function: 7.0.0(postcss@8.5.2) + postcss-lab-function: 7.0.6(postcss@8.5.2) + postcss-logical: 8.0.0(postcss@8.5.2) + postcss-nesting: 13.0.1(postcss@8.5.2) + postcss-opacity-percentage: 3.0.0(postcss@8.5.2) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.2) + postcss-page-break: 3.0.4(postcss@8.5.2) + postcss-place: 10.0.0(postcss@8.5.2) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.2) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.2) + postcss-selector-not: 8.0.1(postcss@8.5.2) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.2): + dependencies: + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 + + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.2): + dependencies: + postcss: 8.5.2 postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@7.0.1(postcss@8.5.6): + postcss-safe-parser@7.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 + postcss: 8.5.2 - postcss-selector-not@8.0.1(postcss@8.5.6): + postcss-selector-not@8.0.1(postcss@8.5.2): dependencies: - postcss: 8.5.6 - postcss-selector-parser: 7.1.0 + postcss: 8.5.2 + postcss-selector-parser: 7.0.0 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -10825,15 +10691,15 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postcss@8.5.6: + postcss@8.5.2: dependencies: - nanoid: 3.3.11 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier@3.6.1: {} + prettier@3.4.2: {} pretty-format@27.5.1: dependencies: @@ -10858,7 +10724,7 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@7.1.0: {} + property-information@6.5.0: {} psl@1.15.0: dependencies: @@ -10879,7 +10745,7 @@ snapshots: react-fast-compare@3.2.2: {} - react-hotkeys-hook@4.6.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + react-hotkeys-hook@4.6.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -10907,7 +10773,7 @@ snapshots: optionalDependencies: '@types/react': 19.0.8 - react-remove-scroll@2.7.1(@types/react@19.0.8)(react@19.0.0): + react-remove-scroll@2.6.3(@types/react@19.0.8)(react@19.0.0): dependencies: react: 19.0.0 react-remove-scroll-bar: 2.3.8(@types/react@19.0.8)(react@19.0.0) @@ -10930,13 +10796,13 @@ snapshots: recma-build-jsx@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-util-build-jsx: 3.0.1 vfile: 6.0.3 - recma-jsx@1.0.0(acorn@8.15.0): + recma-jsx@1.0.0(acorn@8.14.0): dependencies: - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn-jsx: 5.3.2(acorn@8.14.0) estree-util-to-js: 2.0.0 recma-parse: 1.0.0 recma-stringify: 1.0.0 @@ -10946,14 +10812,14 @@ snapshots: recma-parse@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 esast-util-from-js: 2.0.1 unified: 11.0.5 vfile: 6.0.3 recma-stringify@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 estree-util-to-js: 2.0.0 unified: 11.0.5 vfile: 6.0.3 @@ -10967,10 +10833,10 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -10980,12 +10846,25 @@ snapshots: regenerate@1.4.2: {} + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.27.1 + + regex-recursion@5.1.1: + dependencies: + regex: 5.1.1 + regex-utilities: 2.3.0 + regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 regex-utilities@2.3.0: {} + regex@5.1.1: + dependencies: + regex-utilities: 2.3.0 + regex@6.0.1: dependencies: regex-utilities: 2.3.0 @@ -11017,7 +10896,7 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.0 + '@ungap/structured-clone': 1.2.0 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 @@ -11025,9 +10904,9 @@ snapshots: rehype-recma@1.0.0: dependencies: - '@types/estree': 1.0.8 + '@types/estree': 1.0.6 '@types/hast': 3.0.4 - hast-util-to-estree: 3.1.3 + hast-util-to-estree: 3.1.0 transitivePeerDependencies: - supports-color @@ -11056,7 +10935,7 @@ snapshots: remark-gfm@4.0.1: dependencies: '@types/mdast': 4.0.4 - mdast-util-gfm: 3.1.0 + mdast-util-gfm: 3.0.0 micromark-extension-gfm: 3.0.0 remark-parse: 11.0.0 remark-stringify: 11.0.0 @@ -11064,14 +10943,14 @@ snapshots: transitivePeerDependencies: - supports-color - remark-mdx-frontmatter@5.2.0: + remark-mdx-frontmatter@5.0.0: dependencies: '@types/mdast': 4.0.4 + estree-util-is-identifier-name: 3.0.0 estree-util-value-to-estree: 3.4.0 toml: 3.0.0 unified: 11.0.5 - unist-util-mdx-define: 1.1.2 - yaml: 2.8.0 + yaml: 2.7.0 remark-mdx@3.1.0: dependencies: @@ -11084,12 +10963,12 @@ snapshots: dependencies: '@types/mdast': 4.0.4 mdast-util-from-markdown: 2.0.2 - micromark-util-types: 2.0.2 + micromark-util-types: 2.0.1 unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-rehype@11.1.2: + remark-rehype@11.1.1: dependencies: '@types/hast': 3.0.4 '@types/mdast': 4.0.4 @@ -11127,13 +11006,19 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@2.0.0-next.5: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.1.0: {} + reusify@1.0.4: {} run-parallel@1.2.0: dependencies: @@ -11142,8 +11027,8 @@ snapshots: safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 has-symbols: 1.1.0 isarray: 2.0.5 @@ -11154,7 +11039,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-regex: 1.2.1 @@ -11175,7 +11060,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -11225,41 +11110,41 @@ snapshots: shebang-regex@3.0.0: {} - shiki@2.5.0: + shiki@2.2.0: dependencies: - '@shikijs/core': 2.5.0 - '@shikijs/engine-javascript': 2.5.0 - '@shikijs/engine-oniguruma': 2.5.0 - '@shikijs/langs': 2.5.0 - '@shikijs/themes': 2.5.0 - '@shikijs/types': 2.5.0 - '@shikijs/vscode-textmate': 10.0.2 + '@shikijs/core': 2.2.0 + '@shikijs/engine-javascript': 2.2.0 + '@shikijs/engine-oniguruma': 2.2.0 + '@shikijs/langs': 2.2.0 + '@shikijs/themes': 2.2.0 + '@shikijs/types': 2.2.0 + '@shikijs/vscode-textmate': 10.0.1 '@types/hast': 3.0.4 side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.4 + object-inspect: 1.13.3 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.4 + object-inspect: 1.13.3 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 @@ -11303,17 +11188,12 @@ snapshots: sprintf-js@1.0.3: {} - stable-hash@0.0.5: {} + stable-hash@0.0.4: {} stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - streamsearch@1.1.0: {} string-length@4.0.2: @@ -11331,17 +11211,17 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-errors: 1.3.0 es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 @@ -11352,22 +11232,22 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.24.0 + es-abstract: 1.23.9 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 - call-bound: 1.0.4 + call-bound: 1.0.3 define-properties: 1.2.1 es-object-atoms: 1.1.1 @@ -11398,86 +11278,86 @@ snapshots: strip-json-comments@3.1.1: {} - style-to-js@1.1.17: + style-to-object@0.4.4: dependencies: - style-to-object: 1.0.9 + inline-style-parser: 0.1.1 - style-to-object@1.0.9: + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 - styled-jsx@5.1.6(@babel/core@7.27.4)(react@19.0.0): + styled-jsx@5.1.6(@babel/core@7.26.0)(react@19.0.0): dependencies: client-only: 0.0.1 react: 19.0.0 optionalDependencies: - '@babel/core': 7.27.4 + '@babel/core': 7.26.0 - stylelint-config-css-modules@4.5.0(stylelint@16.21.0(typescript@5.7.3)): + stylelint-config-css-modules@4.4.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: - stylelint: 16.21.0(typescript@5.7.3) + stylelint: 16.14.1(typescript@5.7.3) optionalDependencies: - stylelint-scss: 6.12.1(stylelint@16.21.0(typescript@5.7.3)) + stylelint-scss: 6.10.0(stylelint@16.14.1(typescript@5.7.3)) - stylelint-config-recommended@15.0.0(stylelint@16.21.0(typescript@5.7.3)): + stylelint-config-recommended@15.0.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: - stylelint: 16.21.0(typescript@5.7.3) + stylelint: 16.14.1(typescript@5.7.3) - stylelint-config-standard@37.0.0(stylelint@16.21.0(typescript@5.7.3)): + stylelint-config-standard@37.0.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: - stylelint: 16.21.0(typescript@5.7.3) - stylelint-config-recommended: 15.0.0(stylelint@16.21.0(typescript@5.7.3)) + stylelint: 16.14.1(typescript@5.7.3) + stylelint-config-recommended: 15.0.0(stylelint@16.14.1(typescript@5.7.3)) - stylelint-scss@6.12.1(stylelint@16.21.0(typescript@5.7.3)): + stylelint-scss@6.10.0(stylelint@16.14.1(typescript@5.7.3)): dependencies: - css-tree: 3.1.0 + css-tree: 3.0.1 is-plain-object: 5.0.0 - known-css-properties: 0.36.0 - mdn-data: 2.21.0 + known-css-properties: 0.35.0 + mdn-data: 2.13.0 postcss-media-query-parser: 0.2.3 postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 - stylelint: 16.21.0(typescript@5.7.3) + stylelint: 16.14.1(typescript@5.7.3) optional: true - stylelint@16.21.0(typescript@5.7.3): + stylelint@16.14.1(typescript@5.7.3): dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.0.0) '@dual-bundle/import-meta-resolve': 4.1.0 balanced-match: 2.0.0 colord: 2.9.3 cosmiconfig: 9.0.0(typescript@5.7.3) css-functions-list: 3.2.3 css-tree: 3.1.0 - debug: 4.4.1 + debug: 4.4.0 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.1.1 + file-entry-cache: 10.0.6 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 html-tags: 3.3.1 - ignore: 7.0.5 + ignore: 7.0.3 imurmurhash: 0.1.4 is-plain-object: 5.0.0 - known-css-properties: 0.37.0 + known-css-properties: 0.35.0 mathml-tag-names: 2.1.3 meow: 13.2.0 micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 + postcss: 8.5.2 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.1(postcss@8.5.6) - postcss-selector-parser: 7.1.0 + postcss-safe-parser: 7.0.1(postcss@8.5.2) + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 string-width: 4.2.3 - supports-hyperlinks: 3.2.0 + supports-hyperlinks: 3.1.0 svg-tags: 1.0.0 table: 6.9.0 write-file-atomic: 5.0.1 @@ -11493,7 +11373,7 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@3.2.0: + supports-hyperlinks@3.1.0: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 @@ -11524,6 +11404,8 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + tapable@2.2.1: {} + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 @@ -11532,11 +11414,6 @@ snapshots: tiny-inflate@1.0.3: {} - tinyglobby@0.2.14: - dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - tmpl@1.0.5: {} to-regex-range@5.0.1: @@ -11560,7 +11437,7 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.7.3): + ts-api-utils@2.0.0(typescript@5.7.3): dependencies: typescript: 5.7.3 @@ -11572,7 +11449,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 22.10.10 - acorn: 8.15.0 + acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -11591,10 +11468,10 @@ snapshots: tslib@2.8.1: {} - tsx@4.20.3: + tsx@4.19.2: dependencies: - esbuild: 0.25.5 - get-tsconfig: 4.10.1 + esbuild: 0.23.1 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -11608,14 +11485,14 @@ snapshots: typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.4 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -11624,7 +11501,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.4 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -11633,17 +11510,17 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.5 + for-each: 0.3.4 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 + possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.10 typescript@5.7.3: {} unbox-primitive@1.1.0: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 @@ -11680,16 +11557,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - unist-util-mdx-define@1.1.2: - dependencies: - '@types/estree': 1.0.8 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - estree-util-is-identifier-name: 3.0.0 - estree-util-scope: 1.0.0 - estree-walker: 3.0.3 - vfile: 6.0.3 - unist-util-position-from-estree@2.0.0: dependencies: '@types/unist': 3.0.3 @@ -11715,33 +11582,9 @@ snapshots: universalify@0.2.0: {} - unrs-resolver@1.9.2: + update-browserslist-db@1.1.1(browserslist@4.24.2): dependencies: - napi-postinstall: 0.2.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.9.2 - '@unrs/resolver-binding-android-arm64': 1.9.2 - '@unrs/resolver-binding-darwin-arm64': 1.9.2 - '@unrs/resolver-binding-darwin-x64': 1.9.2 - '@unrs/resolver-binding-freebsd-x64': 1.9.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.9.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.9.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.9.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.9.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.9.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.9.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.9.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.9.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.9.2 - '@unrs/resolver-binding-linux-x64-musl': 1.9.2 - '@unrs/resolver-binding-wasm32-wasi': 1.9.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.9.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.9.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.9.2 - - update-browserslist-db@1.1.3(browserslist@4.25.1): - dependencies: - browserslist: 4.25.1 + browserslist: 4.24.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -11813,14 +11656,14 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.2 + is-boolean-object: 1.2.1 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.4 + call-bound: 1.0.3 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.1.1 @@ -11828,11 +11671,11 @@ snapshots: is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.1.1 + is-weakref: 1.1.0 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.19 + which-typed-array: 1.1.18 which-collection@1.0.2: dependencies: @@ -11841,13 +11684,12 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.19: + which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 + call-bound: 1.0.3 + for-each: 0.3.4 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -11879,7 +11721,7 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.2: {} + ws@8.18.0: {} xml-name-validator@4.0.0: {} @@ -11889,7 +11731,7 @@ snapshots: yallist@3.1.1: {} - yaml@2.8.0: {} + yaml@2.7.0: {} yargs-parser@21.1.1: {} diff --git a/public/api-schema-v2.json b/public/api-schema-v2.json deleted file mode 100644 index 8087d0c5..00000000 --- a/public/api-schema-v2.json +++ /dev/null @@ -1,59811 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "dev", - "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io", - "contact": { - "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io", - "email": "support@cloudsmith.io" - }, - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - }, - "version": "v1" - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "paths": { - "/audit-log/{owner}/": { - "get": { - "operationId": "audit_log_namespace_list", - "summary": "Lists audit log entries for a specific namespace.", - "description": "Lists audit log entries for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NamespaceAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/audit-log/{owner}/{repo}/": { - "get": { - "operationId": "audit_log_repo_list", - "summary": "Lists audit log entries for a specific repository.", - "description": "Lists audit log entries for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { - "get": { - "operationId": "badges_version_list", - "summary": "Get latest package version for a package or package group.", - "description": "Get latest package version for a package or package group.", - "parameters": [ - { - "name": "badge_token", - "in": "query", - "description": "Badge token to authenticate for private packages", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "cacheSeconds", - "in": "query", - "description": "Override the shields.io badge cacheSeconds value.", - "required": false, - "schema": { - "type": "string", - "default": "300" - } - }, - { - "name": "color", - "in": "query", - "description": "Override the shields.io badge color value.", - "required": false, - "schema": { - "type": "string", - "default": "12577E" - } - }, - { - "name": "label", - "in": "query", - "description": "Override the shields.io badge label value.", - "required": false, - "schema": { - "type": "string", - "default": "cloudsmith" - } - }, - { - "name": "labelColor", - "in": "query", - "description": "Override the shields.io badge labelColor value.", - "required": false, - "schema": { - "type": "string", - "default": "021F2F" - } - }, - { - "name": "logoColor", - "in": "query", - "description": "Override the shields.io badge logoColor value.", - "required": false, - "schema": { - "type": "string", - "default": "45B6EE" - } - }, - { - "name": "logoWidth", - "in": "query", - "description": "Override the shields.io badge logoWidth value.", - "required": false, - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "render", - "in": "query", - "description": "If true, badge will be rendered", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "shields", - "in": "query", - "description": "If true, a shields response will be generated", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_latest", - "in": "query", - "description": "If true, for latest version badges a '(latest)' suffix is added", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "style", - "in": "query", - "description": "Override the shields.io badge style value.", - "required": false, - "schema": { - "type": "string", - "default": "flat-square" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVersionBadge" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "badges" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_identifiers", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/plans/": { - "parameters": [] - }, - "/billing/{owner}/account-status/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/{invoice_id}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "invoice_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/payment-methods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/periods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/portal/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/subscription/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/trial/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_kind", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/{identifier}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/distros/": { - "get": { - "operationId": "distros_list", - "summary": "Get a list of all supported distributions.", - "description": "Get a list of all supported distributions.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/distros/{slug}/": { - "get": { - "operationId": "distros_read", - "summary": "View for viewing/listing distributions.", - "description": "View for viewing/listing distributions.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "entitlements_list", - "summary": "Get a list of all entitlements in a repository.", - "description": "Get a list of all entitlements in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names of entitlements.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "If true, only include active tokens", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of entitlement tokens", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "entitlements_create", - "summary": "Create a specific entitlement in a repository.", - "description": "Create a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/sync/": { - "post": { - "operationId": "entitlements_sync", - "summary": "Synchronise tokens from a source repository.", - "description": "Synchronise tokens from a source repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSyncRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The tokens have been synchronised from the source repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "entitlements_read", - "summary": "Get a specific entitlement in a repository.", - "description": "Get a specific entitlement in a repository.", - "parameters": [ - { - "name": "fuzzy", - "in": "query", - "description": "If true, entitlement identifiers including name will be fuzzy matched.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Couldn't retrieve the specified token because the request contains an error.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "entitlements_partial_update", - "summary": "Update a specific entitlement in a repository.", - "description": "Update a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "The entitlement cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "entitlements_delete", - "summary": "Delete a specific entitlement in a repository.", - "description": "Delete a specific entitlement in a repository.", - "responses": { - "204": { - "description": "Soft-deleted the specified entitlement token successfully." - }, - "400": { - "description": "The entitlement cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/disable/": { - "post": { - "operationId": "entitlements_disable", - "summary": "Disable an entitlement token in a repository.", - "description": "Disable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/enable/": { - "post": { - "operationId": "entitlements_enable", - "summary": "Enable an entitlement token in a repository.", - "description": "Enable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/refresh/": { - "post": { - "operationId": "entitlements_refresh", - "summary": "Refresh an entitlement token in a repository.", - "description": "Refresh an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The entitlement token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefresh" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/reset/": { - "post": { - "operationId": "entitlements_reset", - "summary": "Reset the statistics for an entitlement token in a repository.", - "description": "Reset the statistics for an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "204": { - "description": "The entitlement token statistics have been reset." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/": { - "post": { - "operationId": "files_create", - "summary": "Request URL(s) to upload new package file upload(s) to.", - "description": "Request URL(s) to upload new package file upload(s) to.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "202": { - "description": "The upload request was accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/validate/": { - "post": { - "operationId": "files_validate", - "summary": "Validate parameters used for create.", - "description": "Validate parameters used for create.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/abort/": { - "post": { - "operationId": "files_abort", - "summary": "Abort a multipart file upload.", - "description": "Abort a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "The multipart upload was aborted successfully." - }, - "400": { - "description": "The multipart upload could not be aborted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/complete/": { - "post": { - "operationId": "files_complete", - "summary": "Complete a multipart file upload.", - "description": "Complete a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "201": { - "description": "The multipart upload was completed successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "The multipart upload could not be completed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/info/": { - "get": { - "operationId": "files_info", - "summary": "Get upload information to perform a multipart file upload.", - "description": "Get upload information to perform a multipart file upload.", - "parameters": [ - { - "name": "filename", - "in": "query", - "description": "The filename of the file being uploaded", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "part_number", - "in": "query", - "description": "The part number to be uploaded next", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Information for multipart uploaded retrieved successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFilePartsUpload" - } - } - } - }, - "400": { - "description": "The provided upload file was not a multipart upload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/formats/": { - "get": { - "operationId": "formats_list", - "summary": "Get a list of all supported package formats.", - "description": "Get a list of all supported package formats.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Format" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/formats/{slug}/": { - "get": { - "operationId": "formats_read", - "summary": "Get a specific supported package format.", - "description": "Get a specific supported package format.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Format" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/orgs/slugify/": { - "parameters": [] - }, - "/internal/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/user/confirm/": { - "parameters": [] - }, - "/internal/user/escalate/": { - "parameters": [] - }, - "/internal/user/login/": { - "parameters": [] - }, - "/internal/user/password/request-reset/": { - "parameters": [] - }, - "/internal/user/password/reset/": { - "parameters": [] - }, - "/internal/user/signup/": { - "parameters": [] - }, - "/internal/user/two-factor/": { - "parameters": [] - }, - "/internal/user/verify-device/": { - "parameters": [] - }, - "/internal/user/zendesk/jwt/": { - "parameters": [] - }, - "/licenses/": { - "parameters": [] - }, - "/metrics/entitlements/{owner}/": { - "get": { - "operationId": "metrics_entitlements_account_list", - "summary": "View for listing entitlement token metrics, across an account.", - "description": "View for listing entitlement token metrics, across an account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", - "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "metrics_entitlements_repo_list", - "summary": "View for listing entitlement token metrics, for a repository.", - "description": "View for listing entitlement token metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/packages/{owner}/{repo}/": { - "get": { - "operationId": "metrics_packages_list", - "summary": "View for listing package usage metrics, for a repository.", - "description": "View for listing package usage metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "packages", - "in": "query", - "description": "A comma seperated list of packages (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for packages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/namespaces/": { - "get": { - "operationId": "namespaces_list", - "summary": "Get a list of all namespaces the user belongs to.", - "description": "Get a list of all namespaces the user belongs to.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [] - }, - "/namespaces/{slug}/": { - "get": { - "operationId": "namespaces_read", - "summary": "Get a specific namespace that the user belongs to.", - "description": "Get a specific namespace that the user belongs to.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Namespace" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/openid/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/": { - "get": { - "operationId": "orgs_list", - "summary": "Get a list of all the organizations you are associated with.", - "description": "Get a list of all the organizations you are associated with.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Organization" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [] - }, - "/orgs/{org}/": { - "get": { - "operationId": "orgs_read", - "summary": "Get the details for the specific organization.", - "description": "Get the details for the specific organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "delete": { - "operationId": "orgs_delete", - "summary": "Delete the specified organization.", - "description": "Delete the specified organization.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/enforce/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/relax/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/authentication-policy": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/company-logo/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/custom-domains/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/default-object-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/delete-org/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/": { - "get": { - "operationId": "orgs_deny-policy_list", - "summary": "Get a list of all package deny policies.", - "description": "Get a list of all package deny policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_deny-policy_create", - "summary": "Create a package deny policy.", - "description": "Create a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_deny-policy_read", - "summary": "Get a package deny policy.", - "description": "Get a package deny policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_deny-policy_update", - "summary": "Update a package deny policy.", - "description": "Update a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_deny-policy_partial_update", - "summary": "Partially update a package deny policy.", - "description": "Partially update a package deny policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_deny-policy_delete", - "summary": "Delete a package deny policy.", - "description": "Delete a package deny policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/check/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/global-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/": { - "get": { - "operationId": "orgs_invites_list", - "summary": "Get a list of all invites for an organization.", - "description": "Get a list of all invites for an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization invites", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization invites not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_invites_create", - "summary": "Create an organization invite for a specific user", - "description": "Create an organization invite for a specific user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Invite sent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/": { - "patch": { - "operationId": "orgs_invites_partial_update", - "summary": "Update a specific organization invite.", - "description": "Update a specific organization invite.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Invite updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_invites_delete", - "summary": "Delete a specific organization invite", - "description": "Delete a specific organization invite", - "responses": { - "204": { - "description": "Deleted the organization invite successfully." - }, - "400": { - "description": "The organization invite cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/extend/": { - "post": { - "operationId": "orgs_invites_extend", - "summary": "Extend an organization invite.", - "description": "Extend an organization invite.", - "responses": { - "200": { - "description": "The invite has been extended", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/resend/": { - "post": { - "operationId": "orgs_invites_resend", - "summary": "Resend an organization invite.", - "description": "Resend an organization invite.", - "responses": { - "200": { - "description": "The invite has been resent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy-violation/": { - "get": { - "operationId": "orgs_license-policy-violation_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" - } - } - }, - "title": "PackageLicensePolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/": { - "get": { - "operationId": "orgs_license-policy_list", - "summary": "Get a list of all package license policies.", - "description": "Get a list of all package license policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_create", - "summary": "Create a package license policy.", - "description": "Create a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_license-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_read", - "summary": "Get a package license policy.", - "description": "Get a package license policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_license-policy_update", - "summary": "Update a package license policy.", - "description": "Update a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_license-policy_partial_update", - "summary": "Partially update a package license policy.", - "description": "Partially update a package license policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_license-policy_delete", - "summary": "Delete a package license policy.", - "description": "Delete a package license policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/disable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/enable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/": { - "get": { - "operationId": "orgs_members_list", - "summary": "Get the details for all organization members.", - "description": "Get the details for all organization members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "is_active", - "in": "query", - "description": "Filter for active/inactive users.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", - "required": false, - "schema": { - "type": "string", - "default": "user_name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization's members", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/": { - "get": { - "operationId": "orgs_members_read", - "summary": "Get the details for a specific organization member.", - "description": "Get the details for a specific organization member.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_members_partial_update", - "summary": "Views for working with organization members.", - "description": "Views for working with organization members.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_members_delete", - "summary": "Removes a member from the organization.", - "description": "Removes a member from the organization.", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/refresh/": { - "post": { - "operationId": "orgs_members_refresh", - "summary": "Refresh a member of the organization's API key.", - "description": "Refresh a member of the organization's API key.", - "responses": { - "204": { - "description": "Org member API key has been refreshed." - }, - "400": { - "description": "The org member's API key cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org member not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/remove/": { - "get": { - "operationId": "orgs_members_remove", - "summary": "Removes a member from the organization (deprecated, use DELETE instead).", - "description": "Removes a member from the organization (deprecated, use DELETE instead).", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-role/": { - "patch": { - "operationId": "orgs_members_update_role", - "summary": "Update a member's role in the organization.", - "description": "Update a member's role in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-visibility/": { - "patch": { - "operationId": "orgs_members_update_visibility", - "summary": "Update a member's visibility in the organization.", - "description": "Update a member's visibility in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/": { - "get": { - "operationId": "orgs_openid-connect_list", - "summary": "Retrieve the list of OpenID Connect provider settings for the org.", - "description": "Retrieve the list of OpenID Connect provider settings for the org.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_openid-connect_create", - "summary": "Create the OpenID Connect provider settings for the org.", - "description": "Create the OpenID Connect provider settings for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "201": { - "description": "Created the OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/{slug_perm}/": { - "get": { - "operationId": "orgs_openid-connect_read", - "summary": "Retrieve a specific OpenID Connect provider setting for the org.", - "description": "Retrieve a specific OpenID Connect provider setting for the org.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_openid-connect_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_openid-connect_partial_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_openid-connect_delete", - "summary": "Delete a specific OpenID Connect provider setting for the org.", - "description": "Delete a specific OpenID Connect provider setting for the org.", - "responses": { - "204": { - "description": "Deleted the specified OpenID Connect provider setting successfully." - }, - "400": { - "description": "The specified OpenID Connect provider setting cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/license/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/vulnerability/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/product-features/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-authentication": { - "get": { - "operationId": "orgs_saml-authentication_read", - "summary": "Retrieve the SAML Authentication settings for this Organization.", - "description": "Retrieve the SAML Authentication settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_saml-authentication_partial_update", - "summary": "Update the SAML Authentication settings for this Organization.", - "description": "Update the SAML Authentication settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/": { - "get": { - "operationId": "orgs_saml-group-sync_list", - "summary": "Get the details of all SAML Group Sync mapping within an organization.", - "description": "Get the details of all SAML Group Sync mapping within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of all SAML Group Sync mappings for this org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_saml-group-sync_create", - "summary": "Create a new SAML Group Sync mapping within an organization.", - "description": "Create a new SAML Group Sync mapping within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The SAML Group Sync mapping was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/disable/": { - "post": { - "operationId": "orgs_saml-group-sync_disable", - "summary": "Disable SAML Group Sync for this organization.", - "description": "Disable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been disabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/enable/": { - "post": { - "operationId": "orgs_saml-group-sync_enable", - "summary": "Enable SAML Group Sync for this organization.", - "description": "Enable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been enabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/status/": { - "get": { - "operationId": "orgs_saml-group-sync_status", - "summary": "Retrieve the SAML Group Sync status for this organization.", - "description": "Retrieve the SAML Group Sync status for this organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Group Sync status for this organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/{slug_perm}/": { - "delete": { - "operationId": "orgs_saml-group-sync_delete", - "summary": "Delete a SAML Group Sync mapping from an organization.", - "description": "Delete a SAML Group Sync mapping from an organization.", - "responses": { - "204": { - "description": "Mapping removed successfully" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim/refresh-token": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/": { - "get": { - "operationId": "orgs_services_list", - "summary": "Get a list of all services within an organization.", - "description": "Get a list of all services within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of services within an Organization.Available options are: name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", - "required": false, - "schema": { - "type": "string", - "default": "created_at" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of services within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Service" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "orgs_services_create", - "summary": "Create a service within an organization.", - "description": "Create a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Created the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/": { - "get": { - "operationId": "orgs_services_read", - "summary": "Retrieve details of a single service within an organization.", - "description": "Retrieve details of a single service within an organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_services_partial_update", - "summary": "Update a service within an organization.", - "description": "Update a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_services_delete", - "summary": "Delete a specific service", - "description": "Delete a specific service", - "responses": { - "204": { - "description": "Deleted the service successfully." - }, - "400": { - "description": "The service cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/refresh/": { - "post": { - "operationId": "orgs_services_refresh", - "summary": "Refresh service API token.", - "description": "Refresh service API token.", - "responses": { - "200": { - "description": "Refreshed the service token successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "The service token cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/settings": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/slug": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/": { - "get": { - "operationId": "orgs_teams_list", - "summary": "Get the details of all teams within an organization.", - "description": "Get the details of all teams within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "for_user", - "in": "query", - "description": "Filter for teams that you are a member of.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of teams within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_teams_create", - "summary": "Create a team for this organization.", - "description": "Create a team for this organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Team created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/": { - "get": { - "operationId": "orgs_teams_read", - "summary": "Get the details of a specific team within an organization.", - "description": "Get the details of a specific team within an organization.", - "responses": { - "200": { - "description": "Retrieved the details of the requested team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_teams_partial_update", - "summary": "Update a specific team in a organization.", - "description": "Update a specific team in a organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "orgs_teams_delete", - "summary": "Delete a specific team in a organization.", - "description": "Delete a specific team in a organization.", - "responses": { - "204": { - "description": "Deleted the team successfully." - }, - "400": { - "description": "The team cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members": { - "get": { - "operationId": "orgs_teams_members_list", - "summary": "List all members for the team.", - "description": "List all members for the team.", - "responses": { - "200": { - "description": "Retrieved users for the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "post": { - "operationId": "orgs_teams_members_create", - "summary": "Add users to a team.", - "description": "Add users to a team.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "201": { - "description": "The users were added to the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "orgs_teams_members_update", - "summary": "Replace all team members.", - "description": "Replace all team members.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "204": { - "description": "The team members were replaced.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members/{member}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/memberships/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/usage-limits/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy-violation/": { - "get": { - "operationId": "orgs_vulnerability-policy-violation_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" - } - } - }, - "title": "PackageVulnerabilityPolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/": { - "get": { - "operationId": "orgs_vulnerability-policy_list", - "summary": "Get a list of all package vulnerability policies.", - "description": "Get a list of all package vulnerability policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_create", - "summary": "Create a package vulnerability policy.", - "description": "Create a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_read", - "summary": "Get a package vulnerability policy.", - "description": "Get a package vulnerability policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_vulnerability-policy_update", - "summary": "Update a package vulnerability policy.", - "description": "Update a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_vulnerability-policy_partial_update", - "summary": "Partially update a package vulnerability policy.", - "description": "Partially update a package vulnerability policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_vulnerability-policy_delete", - "summary": "Delete a package vulnerability policy.", - "description": "Delete a package vulnerability policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/docker/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/maven/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/": { - "get": { - "operationId": "packages_list", - "summary": "Get a list of all packages associated with repository.", - "description": "Get a list of all packages associated with repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/groups/": { - "get": { - "operationId": "packages_groups_list", - "summary": "Return a list of Package Groups in a repository.", - "description": "Return a list of Package Groups in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "group_by", - "in": "query", - "description": "A field to group packages by. Available options: name, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of package groups.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageGroup" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/alpine/": { - "post": { - "operationId": "packages_upload_alpine", - "summary": "Create a new Alpine package", - "description": "Create a new Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cargo/": { - "post": { - "operationId": "packages_upload_cargo", - "summary": "Create a new Cargo package", - "description": "Create a new Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cocoapods/": { - "post": { - "operationId": "packages_upload_cocoapods", - "summary": "Create a new CocoaPods package", - "description": "Create a new CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/composer/": { - "post": { - "operationId": "packages_upload_composer", - "summary": "Create a new Composer package", - "description": "Create a new Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conan/": { - "post": { - "operationId": "packages_upload_conan", - "summary": "Create a new Conan package", - "description": "Create a new Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conda/": { - "post": { - "operationId": "packages_upload_conda", - "summary": "Create a new Conda package", - "description": "Create a new Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cran/": { - "post": { - "operationId": "packages_upload_cran", - "summary": "Create a new CRAN package", - "description": "Create a new CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/dart/": { - "post": { - "operationId": "packages_upload_dart", - "summary": "Create a new Dart package", - "description": "Create a new Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/deb/": { - "post": { - "operationId": "packages_upload_deb", - "summary": "Create a new Debian package", - "description": "Create a new Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/docker/": { - "post": { - "operationId": "packages_upload_docker", - "summary": "Create a new Docker package", - "description": "Create a new Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/go/": { - "post": { - "operationId": "packages_upload_go", - "summary": "Create a new Go package", - "description": "Create a new Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/helm/": { - "post": { - "operationId": "packages_upload_helm", - "summary": "Create a new Helm package", - "description": "Create a new Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/hex/": { - "post": { - "operationId": "packages_upload_hex", - "summary": "Create a new Hex package", - "description": "Create a new Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/luarocks/": { - "post": { - "operationId": "packages_upload_luarocks", - "summary": "Create a new LuaRocks package", - "description": "Create a new LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/maven/": { - "post": { - "operationId": "packages_upload_maven", - "summary": "Create a new Maven package", - "description": "Create a new Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/npm/": { - "post": { - "operationId": "packages_upload_npm", - "summary": "Create a new npm package", - "description": "Create a new npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/nuget/": { - "post": { - "operationId": "packages_upload_nuget", - "summary": "Create a new NuGet package", - "description": "Create a new NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/p2/": { - "post": { - "operationId": "packages_upload_p2", - "summary": "Create a new P2 package", - "description": "Create a new P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/python/": { - "post": { - "operationId": "packages_upload_python", - "summary": "Create a new Python package", - "description": "Create a new Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/raw/": { - "post": { - "operationId": "packages_upload_raw", - "summary": "Create a new Raw package", - "description": "Create a new Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/rpm/": { - "post": { - "operationId": "packages_upload_rpm", - "summary": "Create a new RedHat package", - "description": "Create a new RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/ruby/": { - "post": { - "operationId": "packages_upload_ruby", - "summary": "Create a new Ruby package", - "description": "Create a new Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/swift/": { - "post": { - "operationId": "packages_upload_swift", - "summary": "Create a new Swift package", - "description": "Create a new Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/terraform/": { - "post": { - "operationId": "packages_upload_terraform", - "summary": "Create a new Terraform package", - "description": "Create a new Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/vagrant/": { - "post": { - "operationId": "packages_upload_vagrant", - "summary": "Create a new Vagrant package", - "description": "Create a new Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/alpine/": { - "post": { - "operationId": "packages_validate-upload_alpine", - "summary": "Validate parameters for create Alpine package", - "description": "Validate parameters for create Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cargo/": { - "post": { - "operationId": "packages_validate-upload_cargo", - "summary": "Validate parameters for create Cargo package", - "description": "Validate parameters for create Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cocoapods/": { - "post": { - "operationId": "packages_validate-upload_cocoapods", - "summary": "Validate parameters for create CocoaPods package", - "description": "Validate parameters for create CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/composer/": { - "post": { - "operationId": "packages_validate-upload_composer", - "summary": "Validate parameters for create Composer package", - "description": "Validate parameters for create Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conan/": { - "post": { - "operationId": "packages_validate-upload_conan", - "summary": "Validate parameters for create Conan package", - "description": "Validate parameters for create Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conda/": { - "post": { - "operationId": "packages_validate-upload_conda", - "summary": "Validate parameters for create Conda package", - "description": "Validate parameters for create Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cran/": { - "post": { - "operationId": "packages_validate-upload_cran", - "summary": "Validate parameters for create CRAN package", - "description": "Validate parameters for create CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/dart/": { - "post": { - "operationId": "packages_validate-upload_dart", - "summary": "Validate parameters for create Dart package", - "description": "Validate parameters for create Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/deb/": { - "post": { - "operationId": "packages_validate-upload_deb", - "summary": "Validate parameters for create Debian package", - "description": "Validate parameters for create Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/docker/": { - "post": { - "operationId": "packages_validate-upload_docker", - "summary": "Validate parameters for create Docker package", - "description": "Validate parameters for create Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/go/": { - "post": { - "operationId": "packages_validate-upload_go", - "summary": "Validate parameters for create Go package", - "description": "Validate parameters for create Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/helm/": { - "post": { - "operationId": "packages_validate-upload_helm", - "summary": "Validate parameters for create Helm package", - "description": "Validate parameters for create Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/hex/": { - "post": { - "operationId": "packages_validate-upload_hex", - "summary": "Validate parameters for create Hex package", - "description": "Validate parameters for create Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/luarocks/": { - "post": { - "operationId": "packages_validate-upload_luarocks", - "summary": "Validate parameters for create LuaRocks package", - "description": "Validate parameters for create LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/maven/": { - "post": { - "operationId": "packages_validate-upload_maven", - "summary": "Validate parameters for create Maven package", - "description": "Validate parameters for create Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/npm/": { - "post": { - "operationId": "packages_validate-upload_npm", - "summary": "Validate parameters for create npm package", - "description": "Validate parameters for create npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/nuget/": { - "post": { - "operationId": "packages_validate-upload_nuget", - "summary": "Validate parameters for create NuGet package", - "description": "Validate parameters for create NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/p2/": { - "post": { - "operationId": "packages_validate-upload_p2", - "summary": "Validate parameters for create P2 package", - "description": "Validate parameters for create P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/python/": { - "post": { - "operationId": "packages_validate-upload_python", - "summary": "Validate parameters for create Python package", - "description": "Validate parameters for create Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/raw/": { - "post": { - "operationId": "packages_validate-upload_raw", - "summary": "Validate parameters for create Raw package", - "description": "Validate parameters for create Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/rpm/": { - "post": { - "operationId": "packages_validate-upload_rpm", - "summary": "Validate parameters for create RedHat package", - "description": "Validate parameters for create RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/ruby/": { - "post": { - "operationId": "packages_validate-upload_ruby", - "summary": "Validate parameters for create Ruby package", - "description": "Validate parameters for create Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/swift/": { - "post": { - "operationId": "packages_validate-upload_swift", - "summary": "Validate parameters for create Swift package", - "description": "Validate parameters for create Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/terraform/": { - "post": { - "operationId": "packages_validate-upload_terraform", - "summary": "Validate parameters for create Terraform package", - "description": "Validate parameters for create Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/vagrant/": { - "post": { - "operationId": "packages_validate-upload_vagrant", - "summary": "Validate parameters for create Vagrant package", - "description": "Validate parameters for create Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "packages_read", - "summary": "Get a specific package in a repository.", - "description": "Get a specific package in a repository.", - "responses": { - "200": { - "description": "Retrieved the specified package successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "delete": { - "operationId": "packages_delete", - "summary": "Delete a specific package in a repository.", - "description": "Delete a specific package in a repository.", - "responses": { - "204": { - "description": "Deleted the specified package successfully." - }, - "400": { - "description": "The package cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/copy/": { - "post": { - "operationId": "packages_copy", - "summary": "Copy a package to another repository.", - "description": "Copy a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopyRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Copied specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopy" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/dependencies/": { - "get": { - "operationId": "packages_dependencies", - "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "responses": { - "200": { - "description": "Retrieved stored dependencies for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDependencies" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/move/": { - "post": { - "operationId": "packages_move", - "summary": "Move a package to another repository.", - "description": "Move a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMoveRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Moved specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMove" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/quarantine/": { - "post": { - "operationId": "packages_quarantine", - "summary": "Quarantine or release a package.", - "description": "Quarantine or release a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantineRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Changed the package's quarantine status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantine" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/resync/": { - "post": { - "operationId": "packages_resync", - "summary": "Schedule a package for resynchronisation.", - "description": "Schedule a package for resynchronisation.", - "responses": { - "200": { - "description": "Scheduled the package for resynchronisation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageResync" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/scan/": { - "post": { - "operationId": "packages_scan", - "summary": "Schedule a package for scanning.", - "description": "Schedule a package for scanning.", - "responses": { - "200": { - "description": "Scheduled the package for scanning.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/status/": { - "get": { - "operationId": "packages_status", - "summary": "Get the synchronization status for a package.", - "description": "Get the synchronization status for a package.", - "responses": { - "200": { - "description": "Retrieved status for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/tag/": { - "post": { - "operationId": "packages_tag", - "summary": "Add/Replace/Remove tags for a package.", - "description": "Add/Replace/Remove tags for a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageTagRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Modified tags for the package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/history/{owner}/": { - "get": { - "operationId": "quota_history_read", - "summary": "Quota history for a given namespace.", - "description": "Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/history/{owner}/": { - "get": { - "operationId": "quota_oss_history_read", - "summary": "Open-source Quota history for a given namespace.", - "description": "Open-source Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/{owner}/": { - "get": { - "operationId": "quota_oss_read", - "summary": "Open-source Quota usage for a given namespace.", - "description": "Open-source Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/{owner}/": { - "get": { - "operationId": "quota_read", - "summary": "Quota usage for a given namespace.", - "description": "Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/rates/limits/": { - "get": { - "operationId": "rates_limits_list", - "summary": "Endpoint to check rate limits for current user.", - "description": "Endpoint to check rate limits for current user.", - "responses": { - "200": { - "description": "Rate check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcesRateCheck" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "rates" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/repos/": { - "get": { - "operationId": "repos_user_list", - "summary": "Get a list of all repositories associated with current user.", - "description": "Get a list of all repositories associated with current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/repos/{owner}/": { - "get": { - "operationId": "repos_namespace_list", - "summary": "Get a list of all repositories within a namespace.", - "description": "Get a list of all repositories within a namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_create", - "summary": "Create a new repository in a given namespace.", - "description": "Create a new repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreateRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The repository was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/": { - "get": { - "operationId": "repos_read", - "summary": "Get a specific repository.", - "description": "Get a specific repository.", - "responses": { - "200": { - "description": "Retrieved the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_partial_update", - "summary": "Update details about a repository in a given namespace.", - "description": "Update details about a repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "The repository was updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "repos_delete", - "summary": "Delete a repository in a given namespace.", - "description": "Delete a repository in a given namespace.", - "responses": { - "200": { - "description": "The repository has been scheduled for deletion." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/": { - "get": { - "operationId": "repos_ecdsa_list", - "summary": "Retrieve the active ECDSA key for the Repository.", - "description": "Retrieve the active ECDSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" - }, - "post": { - "operationId": "repos_ecdsa_create", - "summary": "Set the active ECDSA key for the Repository.", - "description": "Set the active ECDSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided ECDSA key is the same as the current ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "201": { - "description": "The provided ECDSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "The provided ECDSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom ECDSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/regenerate/": { - "post": { - "operationId": "repos_ecdsa_regenerate", - "summary": "Regenerate ECDSA Key for the Repository.", - "description": "Regenerate ECDSA Key for the Repository.", - "responses": { - "200": { - "description": "An ECDSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip": { - "get": { - "operationId": "repos_geoip_read", - "summary": "List all repository geoip rules.", - "description": "List all repository geoip rules.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_geoip_update", - "summary": "Replace repository geoip rules.", - "description": "Replace repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_geoip_partial_update", - "summary": "Partially update repository geoip rules.", - "description": "Partially update repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/disable/": { - "post": { - "operationId": "repos_geoip_disable", - "summary": "Disable GeoIP for this repository.", - "description": "Disable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been disabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/enable/": { - "post": { - "operationId": "repos_geoip_enable", - "summary": "Enable GeoIP for this repository.", - "description": "Enable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been enabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/status/": { - "get": { - "operationId": "api_repos_geoip_status", - "summary": "Retrieve the GeoIP status for this repository.", - "description": "Retrieve the GeoIP status for this repository.", - "responses": { - "200": { - "description": "Retrieved the GeoIP status for this repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/test/": { - "post": { - "operationId": "repos_geoip_test", - "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", - "description": "Test a list of IP addresses against the repository's current GeoIP rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" - } - } - } - }, - "responses": { - "201": { - "description": "Successfuly tested addresses against the repository's GeoIP rules", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/": { - "get": { - "operationId": "repos_gpg_list", - "summary": "Retrieve the active GPG key for the Repository.", - "description": "Retrieve the active GPG key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_gpg_create", - "summary": "Set the active GPG key for the Repository.", - "description": "Set the active GPG key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided GPG key is the same as the current GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "201": { - "description": "The provided GPG key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "The provided GPG key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom GPG keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/regenerate/": { - "post": { - "operationId": "repos_gpg_regenerate", - "summary": "Regenerate GPG Key for the Repository.", - "description": "Regenerate GPG Key for the Repository.", - "responses": { - "200": { - "description": "A GPG key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/privileges": { - "get": { - "operationId": "repos_privileges_list", - "summary": "List all explicity created privileges for the repository.", - "description": "List all explicity created privileges for the repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved privileges for the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInput" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_privileges_update", - "summary": "Replace all existing repository privileges with those specified.", - "description": "Replace all existing repository privileges with those specified.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges replaced" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_privileges_partial_update", - "summary": "Modify privileges for the repository.", - "description": "Modify privileges for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges updated" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/": { - "get": { - "operationId": "repos_rsa_list", - "summary": "Retrieve the active RSA key for the Repository.", - "description": "Retrieve the active RSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_rsa_create", - "summary": "Set the active RSA key for the Repository.", - "description": "Set the active RSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided RSA key is the same as the current RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "201": { - "description": "The provided RSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "The provided RSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom RSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/regenerate/": { - "post": { - "operationId": "repos_rsa_regenerate", - "summary": "Regenerate RSA Key for the Repository.", - "description": "Regenerate RSA Key for the Repository.", - "responses": { - "200": { - "description": "An RSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/": { - "get": { - "operationId": "repos_upstream_cargo_list", - "summary": "List Cargo upstream configs for this repository.", - "description": "List Cargo upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cargo_create", - "summary": "Create a Cargo upstream config for this repository.", - "description": "Create a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cargo_read", - "summary": "Retrieve a Cargo upstream config for this repository.", - "description": "Retrieve a Cargo upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cargo_update", - "summary": "Update a Cargo upstream config for this repository.", - "description": "Update a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cargo_partial_update", - "summary": "Partially update a Cargo upstream config for this repository.", - "description": "Partially update a Cargo upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cargo_delete", - "summary": "Delete a Cargo upstream config for this repository.", - "description": "Delete a Cargo upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/": { - "get": { - "operationId": "repos_upstream_composer_list", - "summary": "List Composer upstream configs for this repository.", - "description": "List Composer upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_composer_create", - "summary": "Create a Composer upstream config for this repository.", - "description": "Create a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_composer_read", - "summary": "Retrieve a Composer upstream config for this repository.", - "description": "Retrieve a Composer upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_composer_update", - "summary": "Update a Composer upstream config for this repository.", - "description": "Update a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_composer_partial_update", - "summary": "Partially update a Composer upstream config for this repository.", - "description": "Partially update a Composer upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_composer_delete", - "summary": "Delete a Composer upstream config for this repository.", - "description": "Delete a Composer upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/": { - "get": { - "operationId": "repos_upstream_cran_list", - "summary": "List CRAN upstream configs for this repository.", - "description": "List CRAN upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cran_create", - "summary": "Create a CRAN upstream config for this repository.", - "description": "Create a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cran_read", - "summary": "Retrieve a CRAN upstream config for this repository.", - "description": "Retrieve a CRAN upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cran_update", - "summary": "Update a CRAN upstream config for this repository.", - "description": "Update a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cran_partial_update", - "summary": "Partially update a CRAN upstream config for this repository.", - "description": "Partially update a CRAN upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cran_delete", - "summary": "Delete a CRAN upstream config for this repository.", - "description": "Delete a CRAN upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/": { - "get": { - "operationId": "repos_upstream_dart_list", - "summary": "List Dart upstream configs for this repository.", - "description": "List Dart upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_dart_create", - "summary": "Create a Dart upstream config for this repository.", - "description": "Create a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_dart_read", - "summary": "Retrieve a Dart upstream config for this repository.", - "description": "Retrieve a Dart upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_dart_update", - "summary": "Update a Dart upstream config for this repository.", - "description": "Update a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_dart_partial_update", - "summary": "Partially update a Dart upstream config for this repository.", - "description": "Partially update a Dart upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_dart_delete", - "summary": "Delete a Dart upstream config for this repository.", - "description": "Delete a Dart upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/": { - "get": { - "operationId": "repos_upstream_deb_list", - "summary": "List Debian upstream configs for this repository.", - "description": "List Debian upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_deb_create", - "summary": "Create a Debian upstream config for this repository.", - "description": "Create a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_deb_read", - "summary": "Retrieve a Debian upstream config for this repository.", - "description": "Retrieve a Debian upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_deb_update", - "summary": "Update a Debian upstream config for this repository.", - "description": "Update a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_deb_partial_update", - "summary": "Partially update a Debian upstream config for this repository.", - "description": "Partially update a Debian upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_deb_delete", - "summary": "Delete a Debian upstream config for this repository.", - "description": "Delete a Debian upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/": { - "get": { - "operationId": "repos_upstream_docker_list", - "summary": "List Docker upstream configs for this repository.", - "description": "List Docker upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_docker_create", - "summary": "Create a Docker upstream config for this repository.", - "description": "Create a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_docker_read", - "summary": "Retrieve a Docker upstream config for this repository.", - "description": "Retrieve a Docker upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_docker_update", - "summary": "Update a Docker upstream config for this repository.", - "description": "Update a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_docker_partial_update", - "summary": "Partially update a Docker upstream config for this repository.", - "description": "Partially update a Docker upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_docker_delete", - "summary": "Delete a Docker upstream config for this repository.", - "description": "Delete a Docker upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/": { - "get": { - "operationId": "repos_upstream_go_list", - "summary": "List Go upstream configs for this repository.", - "description": "List Go upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_go_create", - "summary": "Create a Go upstream config for this repository.", - "description": "Create a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_go_read", - "summary": "Retrieve a Go upstream config for this repository.", - "description": "Retrieve a Go upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_go_update", - "summary": "Update a Go upstream config for this repository.", - "description": "Update a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_go_partial_update", - "summary": "Partially update a Go upstream config for this repository.", - "description": "Partially update a Go upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_go_delete", - "summary": "Delete a Go upstream config for this repository.", - "description": "Delete a Go upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/": { - "get": { - "operationId": "repos_upstream_helm_list", - "summary": "List Helm upstream configs for this repository.", - "description": "List Helm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_helm_create", - "summary": "Create a Helm upstream config for this repository.", - "description": "Create a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_helm_read", - "summary": "Retrieve a Helm upstream config for this repository.", - "description": "Retrieve a Helm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_helm_update", - "summary": "Update a Helm upstream config for this repository.", - "description": "Update a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_helm_partial_update", - "summary": "Partially update a Helm upstream config for this repository.", - "description": "Partially update a Helm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_helm_delete", - "summary": "Delete a Helm upstream config for this repository.", - "description": "Delete a Helm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/": { - "get": { - "operationId": "repos_upstream_hex_list", - "summary": "List Hex upstream configs for this repository.", - "description": "List Hex upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_hex_create", - "summary": "Create a Hex upstream config for this repository.", - "description": "Create a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_hex_read", - "summary": "Retrieve a Hex upstream config for this repository.", - "description": "Retrieve a Hex upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_hex_update", - "summary": "Update a Hex upstream config for this repository.", - "description": "Update a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_hex_partial_update", - "summary": "Partially update a Hex upstream config for this repository.", - "description": "Partially update a Hex upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_hex_delete", - "summary": "Delete a Hex upstream config for this repository.", - "description": "Delete a Hex upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/": { - "get": { - "operationId": "repos_upstream_maven_list", - "summary": "List Maven upstream configs for this repository.", - "description": "List Maven upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_maven_create", - "summary": "Create a Maven upstream config for this repository.", - "description": "Create a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_maven_read", - "summary": "Retrieve a Maven upstream config for this repository.", - "description": "Retrieve a Maven upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_maven_update", - "summary": "Update a Maven upstream config for this repository.", - "description": "Update a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_maven_partial_update", - "summary": "Partially update a Maven upstream config for this repository.", - "description": "Partially update a Maven upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_maven_delete", - "summary": "Delete a Maven upstream config for this repository.", - "description": "Delete a Maven upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/": { - "get": { - "operationId": "repos_upstream_npm_list", - "summary": "List npm upstream configs for this repository.", - "description": "List npm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_npm_create", - "summary": "Create a npm upstream config for this repository.", - "description": "Create a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_npm_read", - "summary": "Retrieve a npm upstream config for this repository.", - "description": "Retrieve a npm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_npm_update", - "summary": "Update a npm upstream config for this repository.", - "description": "Update a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_npm_partial_update", - "summary": "Partially update a npm upstream config for this repository.", - "description": "Partially update a npm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_npm_delete", - "summary": "Delete a npm upstream config for this repository.", - "description": "Delete a npm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/": { - "get": { - "operationId": "repos_upstream_nuget_list", - "summary": "List NuGet upstream configs for this repository.", - "description": "List NuGet upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_nuget_create", - "summary": "Create a NuGet upstream config for this repository.", - "description": "Create a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_nuget_read", - "summary": "Retrieve a NuGet upstream config for this repository.", - "description": "Retrieve a NuGet upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_nuget_update", - "summary": "Update a NuGet upstream config for this repository.", - "description": "Update a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_nuget_partial_update", - "summary": "Partially update a NuGet upstream config for this repository.", - "description": "Partially update a NuGet upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_nuget_delete", - "summary": "Delete a NuGet upstream config for this repository.", - "description": "Delete a NuGet upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/": { - "get": { - "operationId": "repos_upstream_python_list", - "summary": "List Python upstream configs for this repository.", - "description": "List Python upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_python_create", - "summary": "Create a Python upstream config for this repository.", - "description": "Create a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_python_read", - "summary": "Retrieve a Python upstream config for this repository.", - "description": "Retrieve a Python upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_python_update", - "summary": "Update a Python upstream config for this repository.", - "description": "Update a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_python_partial_update", - "summary": "Partially update a Python upstream config for this repository.", - "description": "Partially update a Python upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_python_delete", - "summary": "Delete a Python upstream config for this repository.", - "description": "Delete a Python upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/": { - "get": { - "operationId": "repos_upstream_rpm_list", - "summary": "List RedHat upstream configs for this repository.", - "description": "List RedHat upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_rpm_create", - "summary": "Create a RedHat upstream config for this repository.", - "description": "Create a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_rpm_read", - "summary": "Retrieve a RedHat upstream config for this repository.", - "description": "Retrieve a RedHat upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_rpm_update", - "summary": "Update a RedHat upstream config for this repository.", - "description": "Update a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_rpm_partial_update", - "summary": "Partially update a RedHat upstream config for this repository.", - "description": "Partially update a RedHat upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_rpm_delete", - "summary": "Delete a RedHat upstream config for this repository.", - "description": "Delete a RedHat upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/": { - "get": { - "operationId": "repos_upstream_ruby_list", - "summary": "List Ruby upstream configs for this repository.", - "description": "List Ruby upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_ruby_create", - "summary": "Create a Ruby upstream config for this repository.", - "description": "Create a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_ruby_read", - "summary": "Retrieve a Ruby upstream config for this repository.", - "description": "Retrieve a Ruby upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_ruby_update", - "summary": "Update a Ruby upstream config for this repository.", - "description": "Update a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_ruby_partial_update", - "summary": "Partially update a Ruby upstream config for this repository.", - "description": "Partially update a Ruby upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_ruby_delete", - "summary": "Delete a Ruby upstream config for this repository.", - "description": "Delete a Ruby upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/": { - "get": { - "operationId": "repos_upstream_swift_list", - "summary": "List Swift upstream configs for this repository.", - "description": "List Swift upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_swift_create", - "summary": "Create a Swift upstream config for this repository.", - "description": "Create a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_swift_read", - "summary": "Retrieve a Swift upstream config for this repository.", - "description": "Retrieve a Swift upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_swift_update", - "summary": "Update a Swift upstream config for this repository.", - "description": "Update a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_swift_partial_update", - "summary": "Partially update a Swift upstream config for this repository.", - "description": "Partially update a Swift upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_swift_delete", - "summary": "Delete a Swift upstream config for this repository.", - "description": "Delete a Swift upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-ecdsa/": { - "get": { - "operationId": "repos_x509_ecdsa_list", - "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 ECDSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-rsa/": { - "get": { - "operationId": "repos_x509_rsa_list", - "summary": "Retrieve the active X.509 RSA certificate for the Repository.", - "description": "Retrieve the active X.509 RSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 RSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509RsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/create-entitlement/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/{eula}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "eula", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/invalidate-cache/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/retention/": { - "get": { - "operationId": "repo_retention_read", - "summary": "Retrieve the retention rules for the repository.", - "description": "Retrieve the retention rules for the repository.", - "responses": { - "200": { - "description": "Retrieved the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "repo_retention_partial_update", - "summary": "Update the retention rules for the repository.", - "description": "Update the retention rules for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-owner/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-region/": { - "post": { - "operationId": "repos_transfer_region", - "summary": "Transfer a repository to a different region.", - "description": "Transfer a repository to a different region.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferRegionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Repository region transfer initiated." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom storage regions not available on plan; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner, namespace or repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Groups": { - "get": { - "operationId": "scim_v2_Groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Groups_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Groups/{id}": { - "get": { - "operationId": "scim_v2_Groups_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Groups_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Groups_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Groups_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ResourceTypes": { - "get": { - "operationId": "scim_v2_ResourceTypes_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ResourceTypes_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ResourceTypes/{id}": { - "get": { - "operationId": "scim_v2_ResourceTypes_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ResourceTypes_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ResourceTypes_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ResourceTypes_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ServiceProviderConfig": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ServiceProviderConfig_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ServiceProviderConfig/{id}": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ServiceProviderConfig_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ServiceProviderConfig_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ServiceProviderConfig_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Users": { - "get": { - "operationId": "scim_v2_Users_list", - "description": "", - "parameters": [ - { - "name": "count", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "startIndex", - "in": "query", - "description": "The initial index from which to return the results.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Users_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Users/{identifier}": { - "get": { - "operationId": "scim_v2_Users_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Users_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Users_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Users_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" - } - } - ] - }, - "/status/check/basic/": { - "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", - "responses": { - "200": { - "description": "Status check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatusBasic" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "status" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/storage-regions/": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", - "responses": { - "200": { - "description": "Available storage regions retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/storage-regions/{slug}/": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/usage/{owner}/{requested_metric}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "requested_metric", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/additional-onboarding-actions/": { - "parameters": [] - }, - "/user/default-org/": { - "parameters": [] - }, - "/user/emails/": { - "parameters": [] - }, - "/user/emails/{email}/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/emails/{email}/resend-confirmation/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/": { - "parameters": [] - }, - "/user/invites/{invite_id}/accept/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/{invite_id}/reject/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/logins/": { - "parameters": [] - }, - "/user/logout/": { - "parameters": [] - }, - "/user/logout/other-sessions/": { - "parameters": [] - }, - "/user/password/": { - "parameters": [] - }, - "/user/permissions/check/": { - "parameters": [] - }, - "/user/profile/": { - "parameters": [] - }, - "/user/refresh-token/": { - "parameters": [] - }, - "/user/self/": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/user/sessions/": { - "parameters": [] - }, - "/user/slug/": { - "parameters": [] - }, - "/user/soft-delete/": { - "parameters": [] - }, - "/user/token/": { - "post": { - "operationId": "user_token_create", - "summary": "Create or retrieve API token for a user.", - "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "security": [ - { - "basic": [] - } - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions/": { - "parameters": [] - }, - "/user/token/restrictions/{token}/": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/tokens/": { - "get": { - "operationId": "user_tokens_list", - "summary": "Retrieve the API key assigned to the user that is currently authenticated.", - "description": "Retrieve the API key assigned to the user that is currently authenticated.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the user that is currently authenticated.", - "description": "Create an API key for the user that is currently authenticated.", - "responses": { - "201": { - "description": "Created an API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh/": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the user that is currently authenticated.", - "description": "Refresh the specified API key for the user that is currently authenticated.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/totp/backup/disable/": { - "parameters": [] - }, - "/user/totp/backup/enable/": { - "parameters": [] - }, - "/user/totp/confirm/": { - "parameters": [] - }, - "/user/totp/disable/": { - "parameters": [] - }, - "/user/totp/enable/": { - "parameters": [] - }, - "/user/totp/settings/": { - "parameters": [] - }, - "/user/two-factor/": { - "parameters": [] - }, - "/users/profile/{slug}/": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "users" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "CargoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } - }, - "SwiftUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequest" - } - } - } - }, - "NpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequest" - } - } - } - }, - "SwiftPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUploadRequest" - } - } - } - }, - "HexUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequest" - } - } - } - }, - "RubyPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUploadRequest" - } - } - } - }, - "CargoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUploadRequest" - } - } - } - }, - "RubyUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequest" - } - } - } - }, - "RpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequest" - } - } - } - }, - "MavenUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequest" - } - } - } - }, - "OrganizationTeamMembers": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "VagrantPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUploadRequest" - } - } - } - }, - "GoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequest" - } - } - } - }, - "ConanPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUploadRequest" - } - } - } - }, - "RawPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUploadRequest" - } - } - } - }, - "HelmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequest" - } - } - } - }, - "NugetUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequest" - } - } - } - }, - "TerraformPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUploadRequest" - } - } - } - }, - "PackageFileUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUploadRequest" - } - } - } - }, - "PackageDenyPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequest" - } - } - } - }, - "ProviderSettingsRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequest" - } - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" - } - } - } - }, - "AlpinePackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUploadRequest" - } - } - } - }, - "CocoapodsPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" - } - } - } - }, - "ComposerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUploadRequest" - } - } - } - }, - "CondaPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUploadRequest" - } - } - } - }, - "CranPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUploadRequest" - } - } - } - }, - "DartPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUploadRequest" - } - } - } - }, - "DebPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUploadRequest" - } - } - } - }, - "DockerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUploadRequest" - } - } - } - }, - "HelmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUploadRequest" - } - } - } - }, - "HexPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUploadRequest" - } - } - } - }, - "LuarocksPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUploadRequest" - } - } - } - }, - "MavenPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUploadRequest" - } - } - } - }, - "NpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUploadRequest" - } - } - } - }, - "NugetPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUploadRequest" - } - } - } - }, - "P2PackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUploadRequest" - } - } - } - }, - "PythonPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUploadRequest" - } - } - } - }, - "RpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUploadRequest" - } - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" - } - } - } - }, - "ComposerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequest" - } - } - } - }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } - } - } - }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": [ - "detail" - ], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - }, - "fields": { - "title": "Fields", - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - } - }, - "GeoIpLocation": { - "required": [ - "city", - "continent", - "country", - "postal_code" - ], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "PlanPrice": { - "description": "List of prices for the plan", - "required": [ - "amount", - "billing_interval", - "currency" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Plan Amount", - "type": "string", - "format": "decimal" - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing", - "type": "string", - "minLength": 1 - } - } - }, - "Plan": { - "required": [ - "identifier", - "is_enterprise", - "prices" - ], - "type": "object", - "properties": { - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_enterprise": { - "title": "Is enterprise", - "description": "Is this an enterprise plan", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "prices": { - "description": "List of prices for the plan", - "type": "array", - "items": { - "$ref": "#/components/schemas/PlanPrice" - } - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - } - } - }, - "Payment": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "When was the payment created and attempted", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "failure_code": { - "title": "Failure code", - "description": "Failure Code for the payment", - "type": "string", - "minLength": 1 - }, - "failure_message": { - "title": "Failure message", - "description": "Failure message for the payment", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Payment Status", - "type": "string", - "minLength": 1 - } - } - }, - "AccountStatus": { - "required": [ - "payments" - ], - "type": "object", - "properties": { - "billing_period_end_date": { - "title": "Billing period end date", - "description": "When does the current billing period end", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "status": { - "title": "Status", - "description": "Current Status of account", - "type": "string", - "minLength": 1 - } - } - }, - "InvoiceItem": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the line", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Invoice": { - "type": "object", - "properties": { - "amount_due": { - "title": "Amount due", - "description": "Amount due to be paid", - "type": "integer", - "readOnly": true - }, - "amount_paid": { - "title": "Amount paid", - "description": "Amount paid", - "type": "integer", - "readOnly": true - }, - "billing_reason": { - "title": "Billing reason", - "description": "Reason for the invoice to be created", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "billing_reason_text": { - "title": "Billing reason text", - "type": "string", - "readOnly": true - }, - "created": { - "title": "Created", - "description": "When was the invoice created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "currency": { - "title": "Currency", - "description": "The currency of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoice_id": { - "title": "Invoice id", - "description": "Invoice ID", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoiceitems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvoiceItem" - }, - "readOnly": true - }, - "number": { - "title": "Number", - "description": "Invoice number", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Status of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InvoicePDF": { - "type": "object", - "properties": { - "invoice_pdf": { - "title": "Invoice pdf", - "description": "Link to the invoice in PDF", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "CardPaymentMethod": { - "type": "object", - "properties": { - "brand": { - "title": "Brand", - "description": "Card Brand (e.g. Visa)", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "exp_month": { - "title": "Exp month", - "description": "Expiration Month", - "type": "integer", - "readOnly": true - }, - "exp_year": { - "title": "Exp year", - "description": "Expiration Year", - "type": "integer", - "readOnly": true - }, - "last4": { - "title": "Last4", - "description": "Last 4 digits of card", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "PaymentMethod": { - "required": [ - "card" - ], - "type": "object", - "properties": { - "card": { - "$ref": "#/components/schemas/CardPaymentMethod" - }, - "created": { - "title": "Created", - "description": "When was the payment method created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "is_default": { - "title": "Is default", - "description": "Is this the default payment method", - "type": "boolean", - "readOnly": true - }, - "type": { - "title": "Type", - "description": "Payment Method Type", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "BillingPeriod": { - "type": "object", - "properties": { - "is_current": { - "title": "Is current", - "description": "Is this the current Billing Period", - "type": "boolean", - "readOnly": true - }, - "period_end_at": { - "title": "Period End At", - "description": "The datetime usage is recorded to.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "period_start_at": { - "title": "Period Start At", - "description": "The datetime usage is recorded from.", - "type": "string", - "format": "date-time" - }, - "trial": { - "title": "Trial", - "description": "Usage period occurred during a trial.", - "type": "boolean" - } - } - }, - "PortalUrl": { - "required": [ - "url" - ], - "type": "object", - "properties": { - "url": { - "title": "Url", - "description": "Billing Portal URL to Redirect User to", - "type": "string", - "format": "uri", - "minLength": 1 - } - } - }, - "OnDemandUsageProduct": { - "description": "Products in the On-Demand Usage Subscription", - "required": [ - "currency", - "identifier", - "price_per_unit", - "unit" - ], - "type": "object", - "properties": { - "currency": { - "title": "Currency", - "description": "Currency used for invoicing product", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Identifier for this product", - "type": "string", - "minLength": 1 - }, - "price_per_unit": { - "title": "Price per unit", - "description": "Price per unit", - "type": "string", - "format": "decimal" - }, - "unit": { - "title": "Unit", - "description": "Unit for this product", - "type": "string", - "minLength": 1 - } - } - }, - "OnDemandUsageSubcription": { - "description": "Details of On-Demand Usage Subscription", - "required": [ - "billing_interval", - "products" - ], - "type": "object", - "properties": { - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "products": { - "description": "Products in the On-Demand Usage Subscription", - "type": "array", - "items": { - "$ref": "#/components/schemas/OnDemandUsageProduct" - } - } - } - }, - "Subscription": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Subscription Amount", - "type": "string", - "format": "decimal" - }, - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "can_charge": { - "title": "Can charge", - "description": "Does the customer have payment method configured", - "type": "boolean" - }, - "cancel_at_period_end": { - "title": "Cancel at period end", - "description": "Subscription will be cancelled when billing period ends", - "type": "boolean" - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing subscription", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_delinquent": { - "title": "Is delinquent", - "description": "Does this subscription have outstanding invoices", - "type": "boolean" - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "on_demand_usage": { - "$ref": "#/components/schemas/OnDemandUsageSubcription" - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Current Status of subscription", - "type": "string", - "minLength": 1 - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - }, - "trial_end_date": { - "title": "Trial end date", - "description": "Trial End Date", - "type": "string", - "format": "date-time" - } - } - }, - "TrialDays": { - "required": [ - "identifier", - "is_trialing", - "remaining_trial_days", - "trial_days" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "remaining_trial_days": { - "title": "Remaining trial days", - "description": "Remaining Unused Trial Days", - "type": "integer" - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - } - } - }, - "OrganizationCustomDomainNestedRepo": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "backend_kind_str": { - "title": "Backend kind str", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "domain_type_str": { - "title": "Domain type str", - "type": "string", - "readOnly": true - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - } - } - }, - "PublicBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "PublicBroadcastsRepository": { - "required": [ - "gpg_keys", - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string", - "maxLength": 1000 - }, - "gpg_keys": { - "type": "array", - "items": { - "type": "integer" - }, - "uniqueItems": true - }, - "is_open_source": { - "title": "Is open source", - "type": "string", - "readOnly": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "open_source_license_name": { - "title": "Open source license name", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_license_url": { - "title": "Open source license url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Total Packages", - "description": "The total number of packages in this repository.", - "type": "integer" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 50 - } - } - }, - "DistributionVersion": { - "description": "A list of the versions for this distribution", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The textual name for this version.", - "type": "string", - "maxLength": 64 - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this version", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "DistributionFull": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "versions": { - "description": "A list of the versions for this distribution", - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "readOnly": true - } - } - }, - "Eula": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "nullable": true - }, - "number": { - "title": "Number", - "description": "A sequential identifier that increments by one for each new commit in a repository.", - "type": "integer", - "nullable": true - } - }, - "nullable": true - }, - "RepositoryToken": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTokenRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSyncRequest": { - "required": [ - "source" - ], - "type": "object", - "properties": { - "source": { - "title": "Source", - "description": "The source repository slug (in the same owner namespace).", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSync": { - "type": "object", - "properties": { - "tokens": { - "description": "The entitlements that have been synchronised.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - }, - "readOnly": true - } - } - }, - "RepositoryTokenRequestPatch": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenAction": { - "type": "object", - "properties": {} - }, - "RepositoryTokenRefreshRequest": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenRefresh": { - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageFileUploadRequest": { - "required": [ - "filename" - ], - "type": "object", - "properties": { - "filename": { - "title": "Filename", - "description": "Filename for the package file upload.", - "type": "string", - "minLength": 1 - }, - "md5_checksum": { - "title": "Md5 checksum", - "description": "MD5 checksum for a POST-based package file upload.", - "type": "string", - "maxLength": 32, - "minLength": 32 - }, - "method": { - "title": "Method", - "description": "The method to use for package file upload.", - "type": "string", - "enum": [ - "put_parts", - "put", - "post", - "presigned", - "unsigned_put" - ], - "default": "post" - }, - "sha256_checksum": { - "title": "Sha256 checksum", - "description": "SHA256 checksum for a PUT-based package file upload.", - "type": "string", - "maxLength": 64, - "minLength": 64 - } - } - }, - "PackageFileUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use when creating packages", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_fields": { - "title": "Upload fields", - "description": "The dictionary of fields that must be sent with POST uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_headers": { - "title": "Upload headers", - "description": "The dictionary of headers that must be sent with uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step POST or PUT upload", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step POST or PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "PackageFilePartsUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use uploading parts.", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step PUT upload.", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "Distribution": { - "description": "The distributions supported by this package format", - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - } - }, - "nullable": true - }, - "FormatSupportUpstream": { - "description": "The upstream support for the package format", - "required": [ - "auth_modes", - "caching", - "indexing", - "proxying" - ], - "type": "object", - "properties": { - "auth_modes": { - "description": "The authentication modes supported by the upstream format", - "type": "array", - "items": { - "type": "string", - "enum": [ - "Username and Password", - "Token", - "Certificate and Key" - ], - "default": "Username and Password" - } - }, - "caching": { - "title": "Caching", - "description": "If true the upstream format supports caching", - "type": "boolean" - }, - "indexing": { - "title": "Indexing", - "description": "If true the upstream format supports indexing", - "type": "boolean" - }, - "indexing_behavior": { - "title": "Indexing behavior", - "description": "The behavior of the upstream when indexing", - "type": "string", - "enum": [ - "Unsupported", - "Ahead-of-time (static) indexing", - "Just-in-time (dynamic) indexing" - ], - "default": "Unsupported" - }, - "proxying": { - "title": "Proxying", - "description": "If true the upstream format supports proxying", - "type": "boolean" - }, - "signature_verification": { - "title": "Signature verification", - "description": "The signature verification supported by the upstream format", - "type": "string", - "enum": [ - "Unsupported", - "Repository Metadata", - "Packages", - "Repository Metadata and Packages" - ], - "default": "Unsupported" - } - } - }, - "FormatSupport": { - "description": "A set of what the package format supports", - "required": [ - "dependencies", - "distributions", - "file_lists", - "metadata", - "upstreams", - "versioning" - ], - "type": "object", - "properties": { - "dependencies": { - "title": "Dependencies", - "description": "If true the package format supports dependencies", - "type": "boolean" - }, - "distributions": { - "title": "Distributions", - "description": "If true the package format supports distributions", - "type": "boolean" - }, - "file_lists": { - "title": "File lists", - "description": "If true the package format supports file lists", - "type": "boolean" - }, - "metadata": { - "title": "Metadata", - "description": "If true the package format supports metadata", - "type": "boolean" - }, - "upstreams": { - "$ref": "#/components/schemas/FormatSupportUpstream" - }, - "versioning": { - "title": "Versioning", - "description": "If true the package format supports versioning", - "type": "boolean" - } - } - }, - "Format": { - "required": [ - "description", - "extensions", - "name", - "premium", - "slug", - "supports" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the package format", - "type": "string", - "minLength": 1 - }, - "distributions": { - "description": "The distributions supported by this package format", - "type": "array", - "items": { - "$ref": "#/components/schemas/Distribution" - }, - "nullable": true - }, - "extensions": { - "description": "A non-exhaustive list of extensions supported", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "name": { - "title": "Name", - "description": "Name for the package format", - "type": "string", - "minLength": 1 - }, - "premium": { - "title": "Premium", - "description": "If true the package format is a premium-only feature", - "type": "boolean" - }, - "premium_plan_id": { - "title": "Premium plan id", - "description": "The minimum plan id required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "premium_plan_name": { - "title": "Premium plan name", - "description": "The minimum plan name required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug": { - "title": "Slug", - "description": "Slug for the package format", - "type": "string", - "minLength": 1 - }, - "supports": { - "$ref": "#/components/schemas/FormatSupport" - } - } - }, - "PrivilegeEscalation": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for verification.", - "type": "string", - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "description": "TOTP code for verification.", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "description": "The type of verification used.", - "type": "string", - "enum": [ - "totp", - "password" - ] - } - } - }, - "UserRequestPasswordResetRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserRequestPasswordReset": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserResetPasswordRequest": { - "required": [ - "key", - "password" - ], - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Password reset token.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Enter a new password.", - "type": "string", - "minLength": 1 - } - } - }, - "UserResetPassword": { - "type": "object", - "properties": {} - }, - "DeviceVerificationRequest": { - "required": [ - "device_id" - ], - "type": "object", - "properties": { - "device_id": { - "title": "Device id", - "description": "The device ID to verify.", - "type": "string", - "minLength": 1 - } - } - }, - "DeviceVerification": { - "type": "object", - "properties": {} - }, - "License": { - "type": "object", - "properties": { - "full_name": { - "title": "Full name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the license.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "spdx_identifier": { - "title": "Spdx identifier", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "CommonBandwidthMetricsValue": { - "description": "Average bandwidth usage in the specified period, e.g. a day", - "required": [ - "display", - "value" - ], - "type": "object", - "properties": { - "display": { - "title": "Display", - "description": "Bandwidth usage value", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "units": { - "title": "Units", - "description": "Unit of measurement e.g. bytes", - "type": "string", - "default": "bytes", - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "Human readable version of display value", - "type": "integer" - } - } - }, - "CommonBandwidthMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - } - } - }, - "CommonDownloadsMetricsValue": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "value": { - "title": "Value", - "type": "integer" - } - } - }, - "CommonDownloadsMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - } - } - }, - "CommonMetrics": { - "required": [ - "bandwidth", - "downloads" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "Number of packages with at least 1 download", - "type": "integer", - "default": 0 - }, - "bandwidth": { - "$ref": "#/components/schemas/CommonBandwidthMetrics" - }, - "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": [ - "tokens" - ], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": [ - "packages" - ], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "OidcRequest": { - "required": [ - "oidc_token", - "service_slug" - ], - "type": "object", - "properties": { - "oidc_token": { - "title": "Oidc token", - "description": "Serialized OIDC token.", - "type": "string", - "minLength": 1 - }, - "service_slug": { - "title": "Service slug", - "description": "Slug for the service account.", - "type": "string", - "minLength": 1 - } - } - }, - "Oidc": { - "type": "object", - "properties": {} - }, - "Organization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationUserTokenPolicy": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - } - } - }, - "OrganizationUserTokenPolicyRequest": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationUserTokenPolicyRequestPatch": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequest": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequestPatch": { - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "dns_alias_value": { - "title": "Dns alias value", - "description": "The CNAME value to use to publish this domain publicly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_name": { - "title": "Dns cert name", - "description": "The CNAME name to create to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_value": { - "title": "Dns cert value", - "description": "The CNAME value to use to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationDefaultObjectPrivileges": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "OrganizationDefaultObjectPrivilegesRequest": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "PackageDenyPolicy": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Block downloads" - ], - "readOnly": true, - "default": "Block downloads" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "In Progress" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PackageDenyPolicyRequest": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "PackageDenyPolicyRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationFeatureFlags": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The human/computer readable name.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationGlobalPrivileges": { - "required": [ - "label", - "privilege", - "selected" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "type": "string", - "minLength": 1 - }, - "privilege": { - "title": "Privilege", - "type": "string", - "minLength": 1 - }, - "selected": { - "title": "Selected", - "type": "boolean" - } - } - }, - "OrganizationTeamInvite": { - "required": [ - "team" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user in the team.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationInvite": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationInviteRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationInviteUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteUpdate": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteExtend": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm of the invite to be extended.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageVulnerability": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "NestedLicensePolicy": { - "required": [ - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageLicensePolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "OrganizationPackageLicensePolicy": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageLicensePolicyRequest": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackageLicensePolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageLicensePolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageLicensePolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationMembership": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "is_active": { - "title": "Is active", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipRequestPatch": { - "type": "object", - "properties": {} - }, - "OrganizationMembershipRoleUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - } - } - }, - "OrganizationMembershipRoleUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdateRequestPatch": { - "type": "object", - "properties": { - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "ProviderSettings": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackagePolicyViolationsLicense": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NestedVulnerabilityScanResults": { - "required": [ - "identifier", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackagePolicyViolationsVulnerability": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationProductFeatures": { - "type": "object", - "properties": { - "plan": { - "title": "Plan", - "description": "Plan Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationSAMLAuth": { - "required": [ - "saml_auth_enabled", - "saml_auth_enforced" - ], - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationSAMLAuthRequestPatch": { - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGroupSync": { - "required": [ - "idp_key", - "idp_value", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncRequest": { - "required": [ - "idp_key", - "idp_value", - "organization", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "organization": { - "title": "Organization", - "type": "string" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncStatus": { - "type": "object", - "properties": { - "saml_group_sync_status": { - "title": "Saml group sync status", - "type": "boolean", - "readOnly": true - } - } - }, - "OrganizationSCIM": { - "required": [ - "scim_enabled" - ], - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - }, - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationSCIMRequestPatch": { - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - } - } - }, - "OrganizationSCIMToken": { - "type": "object", - "properties": { - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "ServiceTeams": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The team role associated with the service", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - }, - "slug": { - "title": "Slug", - "description": "The teams associated with the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "Service": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "key": { - "title": "Key", - "description": "The API key of the service", - "type": "string", - "readOnly": true - }, - "key_expires_at": { - "title": "Key expires at", - "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug": { - "title": "Slug", - "description": "The slug of the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "OrganizationGeneralSettings": { - "required": [ - "email", - "name" - ], - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGeneralSettingsRequestPatch": { - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationRenameSlugRequest": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationRenameSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "OrganizationTeam": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamMembership": { - "description": "The team members", - "required": [ - "role", - "user" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamMembers": { - "required": [ - "members" - ], - "type": "object", - "properties": { - "members": { - "description": "The team members", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMembership" - } - } - } - }, - "OrganizationEditTeamMemberRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationEditTeamMember": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationTeamMember": { - "required": [ - "role" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationUsage": { - "type": "object", - "properties": { - "bandwidth_overage_limit": { - "title": "Package Delivery On-Demand Limit (GBs)", - "description": "The on-demand limit for package delivery usage (in GBs).", - "type": "integer", - "nullable": true - }, - "storage_overage_limit": { - "title": "Artifact Data On-Demand Limit (GBs)", - "description": "The on-demand limit for artifact data usage (in GBs).", - "type": "integer", - "nullable": true - } - } - }, - "OrganizationUsageUpdateRequestPatch": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "OrganizationUsageUpdate": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationPackageVulnerabilityPolicy": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageVulnerabilityPolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "DockerLayerReference": { - "type": "object", - "properties": { - "command": { - "title": "Command", - "description": "The V1 command for managing the layer.", - "type": "string", - "readOnly": true - }, - "digest": { - "title": "Digest", - "description": "The digest of the layer.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_empty": { - "title": "Is empty", - "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", - "type": "boolean", - "readOnly": true - }, - "layer_type": { - "title": "Layer type", - "description": "The type of layer this is relative to image.", - "type": "string", - "enum": [ - "Base Layer", - "Intermediate Layer", - "Final Layer" - ], - "readOnly": true, - "default": "Base Layer" - }, - "mount_type": { - "title": "Mount type", - "description": "The Mount Type for the layer.", - "type": "string", - "enum": [ - "Local", - "Remote" - ], - "readOnly": true, - "default": "Local" - }, - "processed": { - "title": "Processed", - "description": "Has the layer been processed.", - "type": "boolean", - "readOnly": true - }, - "size": { - "title": "Size", - "description": "The size of the layer (in bytes).", - "type": "integer", - "readOnly": true - } - } - }, - "DockerCosign": { - "description": "The list of docker cosign attestations", - "required": [ - "created_at" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "When this cosign artifact was created", - "type": "string", - "format": "date-time" - }, - "digest": { - "title": "Digest", - "description": "The cosign artifact digest", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "The package identifier of this signature.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - } - } - }, - "DockerManifest": { - "description": "The list of manifests associated with this Docker package", - "type": "object", - "properties": { - "digest": { - "title": "Digest", - "description": "The digest for the manifest.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "is_primary": { - "title": "Is primary", - "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", - "type": "boolean", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest Type", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "manifest_type_display": { - "title": "Manifest type display", - "type": "string", - "readOnly": true - } - } - }, - "DockerPackageAdditionalDetails": { - "type": "object", - "properties": { - "attestations": { - "$ref": "#/components/schemas/DockerCosign" - }, - "config_digest": { - "title": "Config digest", - "description": "The digest of the Docker image config", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - }, - "manifests": { - "$ref": "#/components/schemas/DockerManifest" - }, - "package_type": { - "title": "Package type", - "description": "The type of the docker package i.e. a manifest or manifest list.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "sboms": { - "$ref": "#/components/schemas/DockerCosign" - }, - "signatures": { - "$ref": "#/components/schemas/DockerCosign" - } - } - }, - "MavenPackageAdditionalDetails": { - "type": "object", - "properties": { - "extended_metadata": { - "title": "Extended metadata", - "type": "string", - "readOnly": true - } - } - }, - "Architecture": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "PackageFile": { - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true, - "nullable": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_primary": { - "title": "Is primary", - "type": "boolean", - "readOnly": true - }, - "is_synchronised": { - "title": "Is synchronised", - "type": "boolean", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the file.", - "type": "integer", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "tag": { - "title": "Tag", - "description": "Freeform descriptor that describes what the file is.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "Tags": { - "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", - "type": "object", - "properties": {} - }, - "Package": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageGroup": { - "required": [ - "count", - "last_push", - "num_downloads", - "size" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "type": "integer" - }, - "count": { - "title": "Count", - "type": "integer", - "nullable": true - }, - "last_push": { - "title": "Last push", - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "integer", - "nullable": true - }, - "size": { - "title": "Size", - "type": "integer", - "nullable": true - } - } - }, - "AlpinePackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "AlpinePackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CargoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CargoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CocoapodsPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CocoapodsPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ComposerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ComposerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ConanPackageUploadRequest": { - "required": [ - "info_file", - "manifest_file", - "metadata_file", - "package_file" - ], - "type": "object", - "properties": { - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "info_file": { - "title": "Info file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "manifest_file": { - "title": "Manifest file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "metadata_file": { - "title": "Metadata file", - "description": "The conan file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ConanPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CondaPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CondaPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CranPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "architecture": { - "title": "Architecture", - "description": "Binary package uploads for macOS should specify the architecture they were built for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CranPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DartPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DartPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DebPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "changes_file": { - "title": "Changes file", - "description": "The changes archive containing the changes made to the source and debian packaging files", - "type": "string", - "minLength": 1, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", - "type": "string", - "pattern": "^[-_.\\w]+$", - "default": "main", - "maxLength": 64, - "minLength": 1 - }, - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sources_file": { - "title": "Sources file", - "description": "The sources archive containing the source code for the binary", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DebPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DockerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DockerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "GoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "GoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HelmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provenance_file": { - "title": "Provenance file", - "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HelmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HexPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HexPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "LuarocksPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "LuarocksPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "MavenPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "extra_files": { - "description": "Extra files to include in the package. This can be a single file or multiple files.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "ivy_file": { - "title": "Ivy file", - "description": "The ivy file is an XML file describing the dependencies of the project.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "javadoc_file": { - "title": "Javadoc file", - "description": "Adds bundled Java documentation to the Maven package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "pom_file": { - "title": "Pom file", - "description": "The POM file is an XML file containing the Maven coordinates.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "sources_file": { - "title": "Sources file", - "description": "Adds bundled Java source code to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "tests_file": { - "title": "Tests file", - "description": "Adds bundled Java tests to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "MavenPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NpmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "npm_dist_tag": { - "title": "Npm dist tag", - "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", - "type": "string", - "default": "latest", - "maxLength": 255, - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NugetPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "symbols_file": { - "title": "Symbols file", - "description": "Uploads a symbols file as a separate package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NugetPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "P2PackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "P2PackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PythonPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "PythonPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RawPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "content_type": { - "title": "Content/Media Type", - "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "RawPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RpmPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RubyPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RubyPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "SwiftPackageUploadRequest": { - "required": [ - "name", - "package_file", - "scope", - "version" - ], - "type": "object", - "properties": { - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "SwiftPackageUpload": { - "required": [ - "name", - "scope", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "TerraformPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "TerraformPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VagrantPackageUploadRequest": { - "required": [ - "name", - "package_file", - "provider", - "version" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "VagrantPackageUpload": { - "required": [ - "name", - "provider", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageCopyRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - } - } - }, - "PackageCopy": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be copied to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageDependency": { - "type": "object", - "properties": { - "dep_type": { - "title": "Dep type", - "type": "string", - "enum": [ - "Depends", - "Pre-Depends", - "Recommends", - "Suggests", - "Enhances", - "Replaces", - "Breaks", - "Built-Using", - "Build-Depends", - "Build-Depends-Indep", - "Build-Conflicts", - "Build-Conflicts-Indep", - "Conflicts", - "Provides", - "Obsoletes", - "Requires", - "Runtime", - "Development", - "Compile", - "Provided", - "Test", - "System", - "Import", - "Excluded", - "Build-Requires", - "Python-Requires" - ], - "readOnly": true, - "default": "Depends" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "maxLength": 255, - "minLength": 1 - }, - "operator": { - "title": "Operator", - "type": "string", - "enum": [ - "=", - "!=", - "<", - "<<", - "<=", - ">", - ">>", - ">=", - "~=", - "~>", - "matches" - ], - "readOnly": true, - "default": "=", - "nullable": true - }, - "version": { - "title": "Version", - "type": "string", - "readOnly": true, - "maxLength": 128, - "minLength": 1, - "nullable": true - } - } - }, - "PackageDependencies": { - "required": [ - "dependencies" - ], - "type": "object", - "properties": { - "dependencies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDependency" - } - } - } - }, - "PackageMoveRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - } - } - }, - "PackageMove": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be moved to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageQuarantineRequest": { - "type": "object", - "properties": { - "release": { - "title": "Release", - "description": "If true, the package is released from quarantine.", - "type": "boolean" - }, - "restore": { - "title": "Restore", - "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", - "type": "boolean" - } - } - }, - "PackageQuarantine": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageResync": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageStatus": { - "type": "object", - "properties": { - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - } - } - }, - "PackageTagRequest": { - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Add", - "Clear", - "Replace", - "Remove" - ], - "default": "Add", - "nullable": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "tags": { - "description": "A list of tags to apply the action to. Not required for clears.", - "type": "array", - "items": { - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "default": [], - "nullable": true - } - } - }, - "PackageTag": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "Usage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageUsage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "HistoryFieldset": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/Usage" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsage" - }, - "uploaded": { - "$ref": "#/components/schemas/Usage" - } - } - }, - "UsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageUsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "HistoryFieldsetRaw": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/UsageRaw" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsageRaw" - }, - "uploaded": { - "$ref": "#/components/schemas/UsageRaw" - } - } - }, - "History": { - "required": [ - "display", - "end", - "plan", - "raw", - "start" - ], - "type": "object", - "properties": { - "days": { - "title": "Days", - "type": "integer", - "default": 0 - }, - "display": { - "$ref": "#/components/schemas/HistoryFieldset" - }, - "end": { - "title": "End", - "type": "string", - "format": "date-time" - }, - "plan": { - "title": "Plan", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "raw": { - "$ref": "#/components/schemas/HistoryFieldsetRaw" - }, - "start": { - "title": "Start", - "type": "string", - "format": "date-time" - } - } - }, - "QuotaHistory": { - "required": [ - "history" - ], - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/components/schemas/History" - } - } - } - }, - "AllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageAllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "UsageLimits": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimit" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimit" - } - } - }, - "AllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageAllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "UsageLimitsRaw": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimitRaw" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimitRaw" - } - } - }, - "UsageFieldset": { - "required": [ - "display", - "raw" - ], - "type": "object", - "properties": { - "display": { - "$ref": "#/components/schemas/UsageLimits" - }, - "raw": { - "$ref": "#/components/schemas/UsageLimitsRaw" - } - } - }, - "Quota": { - "required": [ - "usage" - ], - "type": "object", - "properties": { - "usage": { - "$ref": "#/components/schemas/UsageFieldset" - } - } - }, - "RateCheck": { - "type": "object", - "properties": { - "interval": { - "title": "Interval", - "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", - "type": "number", - "readOnly": true - }, - "limit": { - "title": "Limit", - "description": "The maximum number of requests that you are permitted to send per hour", - "type": "integer", - "readOnly": true - }, - "remaining": { - "title": "Remaining", - "description": "The number of requests that are remaining in the current rate limit window", - "type": "integer", - "readOnly": true - }, - "reset": { - "title": "Reset", - "description": "The UTC epoch timestamp at which the current rate limit window will reset", - "type": "integer", - "readOnly": true - }, - "reset_iso_8601": { - "title": "Reset iso 8601", - "description": "The ISO 8601 datetime at which the current rate limit window will reset", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "throttled": { - "title": "Throttled", - "description": "If true, throttling is currently being enforced.", - "type": "boolean", - "readOnly": true - } - } - }, - "ResourcesRateCheck": { - "type": "object", - "properties": { - "resources": { - "title": "Resources", - "description": "Rate limit values per resource", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RateCheck" - }, - "readOnly": true - } - } - }, - "RepositoryEcdsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryGpgKey": { - "required": [ - "comment" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "comment": { - "title": "Comment", - "type": "string", - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by GPG for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Repository": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "readOnly": true, - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreate": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryRequestPatch": { - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryEcdsaKeyCreate": { - "required": [ - "ecdsa_private_key" - ], - "type": "object", - "properties": { - "ecdsa_passphrase": { - "title": "Ecdsa passphrase", - "description": "The ECDSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "ecdsa_private_key": { - "title": "Ecdsa private key", - "description": "The ECDSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpCidr": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed CIDRs for this repository", - "type": "array", - "items": { - "description": "The allowed CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied CIDRs for this repository", - "type": "array", - "items": { - "description": "The denied CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpCountryCode": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed country codes for this repository", - "type": "array", - "items": { - "description": "The allowed country codes for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied country codes for this repository", - "type": "array", - "items": { - "description": "The denied country codes for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpRules": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequest": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "type": "object", - "properties": {} - }, - "RespositoryGeoIpEnableDisable": { - "type": "object", - "properties": {} - }, - "RepositoryGeoIpStatus": { - "type": "object", - "properties": { - "geoip_enabled": { - "title": "Geo/IP Restriction Enabled?", - "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", - "type": "boolean", - "readOnly": true - } - } - }, - "RepositoryGeoIpTestAddress": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP addresses to test against this repository", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "RepositoryGeoIpTestAddressResponseDict": { - "required": [ - "allowed", - "country_code", - "ip_address", - "reason" - ], - "type": "object", - "properties": { - "allowed": { - "title": "Allowed", - "description": "The result of the IP test", - "type": "boolean" - }, - "country_code": { - "title": "Country code", - "description": "The country code of the tested IP address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "ip_address": { - "title": "Ip address", - "description": "The IP address that was tested", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "The reason for the result", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpTestAddressResponse": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP address test results ordered by allowed", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" - } - } - } - }, - "RepositoryGpgKeyCreate": { - "required": [ - "gpg_private_key" - ], - "type": "object", - "properties": { - "gpg_passphrase": { - "title": "Gpg passphrase", - "description": "The GPG passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "gpg_private_key": { - "title": "Gpg private key", - "description": "The GPG private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeDict": { - "required": [ - "privilege" - ], - "type": "object", - "properties": { - "privilege": { - "title": "Privilege", - "description": "The level of privilege that the user or team should be granted to the specified repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ] - }, - "service": { - "title": "Service", - "description": "The service identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "user": { - "title": "User", - "description": "The user identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeInput": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequest": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequestPatch": { - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryRsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by RSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by RSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryRsaKeyCreate": { - "required": [ - "rsa_private_key" - ], - "type": "object", - "properties": { - "rsa_passphrase": { - "title": "Rsa passphrase", - "description": "The RSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "rsa_private_key": { - "title": "Rsa private key", - "description": "The RSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "CargoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstream": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequest": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstream": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequest": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509EcdsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryX509RsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "EulaCreate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "EulaCreateRequest": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdateRequestPatch": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "RepositoryTransferOwnerRequest": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTransferOwner": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "0.0.0", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": [ - "label", - "slug" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "MetricsRequest": { - "type": "object", - "properties": { - "backend_type": { - "title": "Backend type", - "type": "string", - "enum": [ - "DEB", - "RPM", - "RUBY", - "PYTHON", - "MAVEN", - "BOWER", - "DOCKER", - "RAW", - "CHOCOLATEY", - "NPM", - "NUGET", - "VAGRANT", - "COMPOSER", - "ALPINE", - "HELM", - "CONAN", - "CARGO", - "LUAROCKS", - "CRAN", - "GO", - "DART", - "COCOAPODS", - "TERRAFORM", - "P2", - "CONDA", - "HEX", - "SWIFT", - "DEFAULT" - ] - }, - "end_time": { - "title": "End time", - "type": "string", - "format": "date" - }, - "interval": { - "title": "Interval", - "type": "string", - "enum": [ - "day", - "week", - "month" - ], - "default": "day" - }, - "repository_slugs": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "repository_type": { - "title": "Repository type", - "type": "string", - "enum": [ - "PUBLIC", - "PRIVATE", - "OPEN_SOURCE" - ] - }, - "start_time": { - "title": "Start time", - "type": "string", - "format": "date" - }, - "user_type": { - "title": "User type", - "type": "string", - "enum": [ - "USER", - "SERVICE" - ] - } - } - }, - "AdditionalOnboardingActions": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "type": "string", - "readOnly": true - }, - "kind": { - "title": "Kind", - "type": "string", - "readOnly": true - }, - "label": { - "title": "Label", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "verb": { - "title": "Verb", - "type": "string", - "readOnly": true - } - } - }, - "AdditionalOnboardingActionsRequestPatch": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - } - } - }, - "UserDefaultOrg": { - "required": [ - "org_slug" - ], - "type": "object", - "properties": { - "org_name": { - "title": "Org name", - "description": "The descriptive name for the user's default organization.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "org_slug_perm": { - "title": "Org slug perm", - "description": "The slug_perm of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserDefaultOrgRequestPatch": { - "type": "object", - "properties": { - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "EmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddressRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "UpdatePrimaryEmail": { - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean", - "readOnly": true - } - } - }, - "EmailAddressResendConfirmation": { - "type": "object", - "properties": {} - }, - "UserOrganizationInvite": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "UserOrganizationInviteRequest": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "Location": { - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "readOnly": true - }, - "country": { - "title": "Country", - "type": "string", - "readOnly": true - } - } - }, - "UserLoginHistory": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "method": { - "title": "Method", - "type": "string", - "readOnly": true - }, - "method_context": { - "title": "Method context", - "type": "string", - "readOnly": true, - "nullable": true - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserLogoutOtherSessions": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserPasswordRequest": { - "required": [ - "confirm_new_password", - "current_password", - "new_password" - ], - "type": "object", - "properties": { - "confirm_new_password": { - "title": "Confirm new password", - "description": "Confirming the new password for the current user.", - "type": "string", - "minLength": 1 - }, - "current_password": { - "title": "Current password", - "description": "The current user's password.", - "type": "string", - "minLength": 1 - }, - "new_password": { - "title": "New password", - "description": "The new password for the current user.", - "type": "string", - "minLength": 1 - } - } - }, - "UserPassword": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Permission": { - "description": "A list of permissions to check if permissible.", - "required": [ - "name" - ], - "type": "object", - "properties": { - "args": { - "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "context": { - "title": "Context", - "description": "Any additional context for why a permission check failed.", - "type": "string", - "readOnly": true, - "maxLength": 512, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The qualified name of the permission; e.g. package.upload_packages", - "type": "string", - "maxLength": 256, - "minLength": 1 - }, - "permissible": { - "title": "Permissible", - "description": "If permissible is true, then the user has the specified permission.", - "type": "boolean", - "readOnly": true, - "default": false - } - } - }, - "Permissions": { - "required": [ - "permissions" - ], - "type": "object", - "properties": { - "permissions": { - "description": "A list of permissions to check if permissible.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "User": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "onboarding_actions": { - "title": "Onboarding actions", - "type": "string", - "readOnly": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" - } - } - }, - "UserRequestPatch": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" - } - } - }, - "UserRefreshWebTokenRequest": { - "required": [ - "refresh_token" - ], - "type": "object", - "properties": { - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserRefreshWebToken": { - "required": [ - "refresh_token" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserBrief": { - "type": "object", - "properties": { - "authenticated": { - "title": "Authenticated", - "description": "If true then you're logged in as a user.", - "type": "boolean", - "readOnly": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSession": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSlugRequestPatch": { - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "UserSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "SoftDeleteUser": { - "type": "object", - "properties": {} - }, - "UserAuthTokenRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "Email address to authenticate with", - "type": "string", - "format": "email", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password to authenticate with", - "type": "string", - "minLength": 1 - }, - "totp_token": { - "title": "Two-factor code", - "description": "Two-factor authentication code", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthToken": { - "type": "object", - "properties": { - "token": { - "title": "Token", - "description": "API token for the authenticated user", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "two_factor_required": { - "title": "Two factor required", - "description": "Flag indicating whether a 2FA code is required to complete authentication", - "type": "boolean", - "readOnly": true - }, - "two_factor_token": { - "title": "Two factor token", - "description": "Token to use when providing 2FA code", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserApiCidr": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "An auto-generated id that uniquely identifies the object.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1, - "nullable": true - } - } - }, - "UserApiCidrRequest": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserApiCidrRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthenticationToken": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "The time at which the API key was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm for token.", - "type": "string", - "readOnly": true - } - } - }, - "TOTPRequest": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - }, - "token": { - "title": "Token", - "description": "Token for TOTP Device confirmation", - "type": "string", - "minLength": 1 - } - } - }, - "TOTP": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "qr_code_encoded_image": { - "title": "Qr code encoded image", - "description": "Base64 Encoded QR Image", - "type": "string", - "readOnly": true - }, - "secret_key": { - "title": "Secret key", - "description": "TOTP Secret Key", - "type": "string", - "readOnly": true - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - } - } - }, - "TOTPSettings": { - "required": [ - "enforce_saml_2fa" - ], - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - }, - "is_2fa_backup_codes_enabled": { - "title": "Is 2fa backup codes enabled", - "description": "Is 2FA Backup Codes enabled for the authenticated user", - "type": "boolean", - "readOnly": true - }, - "is_2fa_enabled": { - "title": "Is 2fa enabled", - "description": "Is 2FA enabled for the authenticated user", - "type": "boolean", - "readOnly": true - } - } - }, - "TOTPSettingsRequestPatch": { - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - } - } - }, - "UserProfile": { - "required": [ - "first_name", - "last_name" - ], - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time" - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VulnerabilityScanResultsList": { - "required": [ - "identifier", - "package", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - } - } - }, - "VulnerabilityScanVersion": { - "required": [ - "major", - "minor", - "patch" - ], - "type": "object", - "properties": { - "major": { - "title": "Major", - "type": "integer" - }, - "minor": { - "title": "Minor", - "type": "integer" - }, - "operator": { - "title": "Operator", - "type": "string", - "default": "", - "maxLength": 32, - "minLength": 1 - }, - "patch": { - "title": "Patch", - "type": "integer" - }, - "raw_version": { - "title": "Raw version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - }, - "version": { - "title": "Version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - } - } - }, - "Vulnerability": { - "required": [ - "affected_version", - "description", - "fixed_version", - "package_name", - "references", - "severity_source", - "title", - "vulnerability_id" - ], - "type": "object", - "properties": { - "affected_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 1028, - "minLength": 1 - }, - "fixed_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "package_name": { - "title": "Package name", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "references": { - "type": "array", - "items": { - "type": "string", - "maxLength": 2048, - "minLength": 1 - } - }, - "severity": { - "title": "Severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "severity_source": { - "title": "Severity source", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "title": { - "title": "Title", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "vulnerability_id": { - "title": "Vulnerability id", - "type": "string", - "maxLength": 13, - "minLength": 1 - } - } - }, - "VulnerabilityScan": { - "required": [ - "results", - "target", - "type" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Vulnerability" - } - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "type": "string", - "minLength": 1 - } - } - }, - "VulnerabilityScanResults": { - "required": [ - "identifier", - "package", - "scan_id", - "scans" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "scans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScan" - } - } - } - }, - "WebhookTemplate": { - "required": [ - "event" - ], - "type": "object", - "properties": { - "event": { - "title": "Event", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "template": { - "title": "Template", - "type": "string", - "maxLength": 4096, - "nullable": true - } - }, - "nullable": true - }, - "RepositoryWebhook": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "disable_reason_str": { - "title": "Disable reason str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "is_last_response_bad": { - "title": "Is last response bad", - "type": "boolean", - "readOnly": true - }, - "last_response_status": { - "title": "Last response status", - "type": "integer", - "readOnly": true - }, - "last_response_status_str": { - "title": "Last response status str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "num_sent": { - "title": "Num sent", - "type": "integer", - "readOnly": true - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_format_str": { - "title": "Request body format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_body_template_format_str": { - "title": "Request body template format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequest": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequestPatch": { - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - } - } - } -} diff --git a/public/api-schema-v3.json b/public/api-schema-v3.json deleted file mode 100644 index 8087d0c5..00000000 --- a/public/api-schema-v3.json +++ /dev/null @@ -1,59811 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "dev", - "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io", - "contact": { - "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io", - "email": "support@cloudsmith.io" - }, - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - }, - "version": "v1" - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "paths": { - "/audit-log/{owner}/": { - "get": { - "operationId": "audit_log_namespace_list", - "summary": "Lists audit log entries for a specific namespace.", - "description": "Lists audit log entries for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NamespaceAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/audit-log/{owner}/{repo}/": { - "get": { - "operationId": "audit_log_repo_list", - "summary": "Lists audit log entries for a specific repository.", - "description": "Lists audit log entries for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { - "get": { - "operationId": "badges_version_list", - "summary": "Get latest package version for a package or package group.", - "description": "Get latest package version for a package or package group.", - "parameters": [ - { - "name": "badge_token", - "in": "query", - "description": "Badge token to authenticate for private packages", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "cacheSeconds", - "in": "query", - "description": "Override the shields.io badge cacheSeconds value.", - "required": false, - "schema": { - "type": "string", - "default": "300" - } - }, - { - "name": "color", - "in": "query", - "description": "Override the shields.io badge color value.", - "required": false, - "schema": { - "type": "string", - "default": "12577E" - } - }, - { - "name": "label", - "in": "query", - "description": "Override the shields.io badge label value.", - "required": false, - "schema": { - "type": "string", - "default": "cloudsmith" - } - }, - { - "name": "labelColor", - "in": "query", - "description": "Override the shields.io badge labelColor value.", - "required": false, - "schema": { - "type": "string", - "default": "021F2F" - } - }, - { - "name": "logoColor", - "in": "query", - "description": "Override the shields.io badge logoColor value.", - "required": false, - "schema": { - "type": "string", - "default": "45B6EE" - } - }, - { - "name": "logoWidth", - "in": "query", - "description": "Override the shields.io badge logoWidth value.", - "required": false, - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "render", - "in": "query", - "description": "If true, badge will be rendered", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "shields", - "in": "query", - "description": "If true, a shields response will be generated", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_latest", - "in": "query", - "description": "If true, for latest version badges a '(latest)' suffix is added", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "style", - "in": "query", - "description": "Override the shields.io badge style value.", - "required": false, - "schema": { - "type": "string", - "default": "flat-square" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVersionBadge" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "badges" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_identifiers", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/plans/": { - "parameters": [] - }, - "/billing/{owner}/account-status/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/{invoice_id}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "invoice_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/payment-methods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/periods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/portal/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/subscription/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/trial/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_kind", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/{identifier}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/distros/": { - "get": { - "operationId": "distros_list", - "summary": "Get a list of all supported distributions.", - "description": "Get a list of all supported distributions.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/distros/{slug}/": { - "get": { - "operationId": "distros_read", - "summary": "View for viewing/listing distributions.", - "description": "View for viewing/listing distributions.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "entitlements_list", - "summary": "Get a list of all entitlements in a repository.", - "description": "Get a list of all entitlements in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names of entitlements.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "If true, only include active tokens", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of entitlement tokens", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "entitlements_create", - "summary": "Create a specific entitlement in a repository.", - "description": "Create a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/sync/": { - "post": { - "operationId": "entitlements_sync", - "summary": "Synchronise tokens from a source repository.", - "description": "Synchronise tokens from a source repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSyncRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The tokens have been synchronised from the source repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "entitlements_read", - "summary": "Get a specific entitlement in a repository.", - "description": "Get a specific entitlement in a repository.", - "parameters": [ - { - "name": "fuzzy", - "in": "query", - "description": "If true, entitlement identifiers including name will be fuzzy matched.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Couldn't retrieve the specified token because the request contains an error.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "entitlements_partial_update", - "summary": "Update a specific entitlement in a repository.", - "description": "Update a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "The entitlement cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "entitlements_delete", - "summary": "Delete a specific entitlement in a repository.", - "description": "Delete a specific entitlement in a repository.", - "responses": { - "204": { - "description": "Soft-deleted the specified entitlement token successfully." - }, - "400": { - "description": "The entitlement cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/disable/": { - "post": { - "operationId": "entitlements_disable", - "summary": "Disable an entitlement token in a repository.", - "description": "Disable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/enable/": { - "post": { - "operationId": "entitlements_enable", - "summary": "Enable an entitlement token in a repository.", - "description": "Enable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/refresh/": { - "post": { - "operationId": "entitlements_refresh", - "summary": "Refresh an entitlement token in a repository.", - "description": "Refresh an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The entitlement token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefresh" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/reset/": { - "post": { - "operationId": "entitlements_reset", - "summary": "Reset the statistics for an entitlement token in a repository.", - "description": "Reset the statistics for an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "204": { - "description": "The entitlement token statistics have been reset." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/": { - "post": { - "operationId": "files_create", - "summary": "Request URL(s) to upload new package file upload(s) to.", - "description": "Request URL(s) to upload new package file upload(s) to.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "202": { - "description": "The upload request was accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/validate/": { - "post": { - "operationId": "files_validate", - "summary": "Validate parameters used for create.", - "description": "Validate parameters used for create.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/abort/": { - "post": { - "operationId": "files_abort", - "summary": "Abort a multipart file upload.", - "description": "Abort a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "The multipart upload was aborted successfully." - }, - "400": { - "description": "The multipart upload could not be aborted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/complete/": { - "post": { - "operationId": "files_complete", - "summary": "Complete a multipart file upload.", - "description": "Complete a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "201": { - "description": "The multipart upload was completed successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "The multipart upload could not be completed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/info/": { - "get": { - "operationId": "files_info", - "summary": "Get upload information to perform a multipart file upload.", - "description": "Get upload information to perform a multipart file upload.", - "parameters": [ - { - "name": "filename", - "in": "query", - "description": "The filename of the file being uploaded", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "part_number", - "in": "query", - "description": "The part number to be uploaded next", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Information for multipart uploaded retrieved successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFilePartsUpload" - } - } - } - }, - "400": { - "description": "The provided upload file was not a multipart upload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/formats/": { - "get": { - "operationId": "formats_list", - "summary": "Get a list of all supported package formats.", - "description": "Get a list of all supported package formats.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Format" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/formats/{slug}/": { - "get": { - "operationId": "formats_read", - "summary": "Get a specific supported package format.", - "description": "Get a specific supported package format.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Format" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/orgs/slugify/": { - "parameters": [] - }, - "/internal/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/user/confirm/": { - "parameters": [] - }, - "/internal/user/escalate/": { - "parameters": [] - }, - "/internal/user/login/": { - "parameters": [] - }, - "/internal/user/password/request-reset/": { - "parameters": [] - }, - "/internal/user/password/reset/": { - "parameters": [] - }, - "/internal/user/signup/": { - "parameters": [] - }, - "/internal/user/two-factor/": { - "parameters": [] - }, - "/internal/user/verify-device/": { - "parameters": [] - }, - "/internal/user/zendesk/jwt/": { - "parameters": [] - }, - "/licenses/": { - "parameters": [] - }, - "/metrics/entitlements/{owner}/": { - "get": { - "operationId": "metrics_entitlements_account_list", - "summary": "View for listing entitlement token metrics, across an account.", - "description": "View for listing entitlement token metrics, across an account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", - "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "metrics_entitlements_repo_list", - "summary": "View for listing entitlement token metrics, for a repository.", - "description": "View for listing entitlement token metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/packages/{owner}/{repo}/": { - "get": { - "operationId": "metrics_packages_list", - "summary": "View for listing package usage metrics, for a repository.", - "description": "View for listing package usage metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "packages", - "in": "query", - "description": "A comma seperated list of packages (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for packages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/namespaces/": { - "get": { - "operationId": "namespaces_list", - "summary": "Get a list of all namespaces the user belongs to.", - "description": "Get a list of all namespaces the user belongs to.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [] - }, - "/namespaces/{slug}/": { - "get": { - "operationId": "namespaces_read", - "summary": "Get a specific namespace that the user belongs to.", - "description": "Get a specific namespace that the user belongs to.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Namespace" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/openid/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/": { - "get": { - "operationId": "orgs_list", - "summary": "Get a list of all the organizations you are associated with.", - "description": "Get a list of all the organizations you are associated with.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Organization" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [] - }, - "/orgs/{org}/": { - "get": { - "operationId": "orgs_read", - "summary": "Get the details for the specific organization.", - "description": "Get the details for the specific organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "delete": { - "operationId": "orgs_delete", - "summary": "Delete the specified organization.", - "description": "Delete the specified organization.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/enforce/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/relax/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/authentication-policy": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/company-logo/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/custom-domains/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/default-object-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/delete-org/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/": { - "get": { - "operationId": "orgs_deny-policy_list", - "summary": "Get a list of all package deny policies.", - "description": "Get a list of all package deny policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_deny-policy_create", - "summary": "Create a package deny policy.", - "description": "Create a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_deny-policy_read", - "summary": "Get a package deny policy.", - "description": "Get a package deny policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_deny-policy_update", - "summary": "Update a package deny policy.", - "description": "Update a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_deny-policy_partial_update", - "summary": "Partially update a package deny policy.", - "description": "Partially update a package deny policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_deny-policy_delete", - "summary": "Delete a package deny policy.", - "description": "Delete a package deny policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/check/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/global-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/": { - "get": { - "operationId": "orgs_invites_list", - "summary": "Get a list of all invites for an organization.", - "description": "Get a list of all invites for an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization invites", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization invites not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_invites_create", - "summary": "Create an organization invite for a specific user", - "description": "Create an organization invite for a specific user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Invite sent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/": { - "patch": { - "operationId": "orgs_invites_partial_update", - "summary": "Update a specific organization invite.", - "description": "Update a specific organization invite.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Invite updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_invites_delete", - "summary": "Delete a specific organization invite", - "description": "Delete a specific organization invite", - "responses": { - "204": { - "description": "Deleted the organization invite successfully." - }, - "400": { - "description": "The organization invite cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/extend/": { - "post": { - "operationId": "orgs_invites_extend", - "summary": "Extend an organization invite.", - "description": "Extend an organization invite.", - "responses": { - "200": { - "description": "The invite has been extended", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/resend/": { - "post": { - "operationId": "orgs_invites_resend", - "summary": "Resend an organization invite.", - "description": "Resend an organization invite.", - "responses": { - "200": { - "description": "The invite has been resent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy-violation/": { - "get": { - "operationId": "orgs_license-policy-violation_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" - } - } - }, - "title": "PackageLicensePolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/": { - "get": { - "operationId": "orgs_license-policy_list", - "summary": "Get a list of all package license policies.", - "description": "Get a list of all package license policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_create", - "summary": "Create a package license policy.", - "description": "Create a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_license-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_read", - "summary": "Get a package license policy.", - "description": "Get a package license policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_license-policy_update", - "summary": "Update a package license policy.", - "description": "Update a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_license-policy_partial_update", - "summary": "Partially update a package license policy.", - "description": "Partially update a package license policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_license-policy_delete", - "summary": "Delete a package license policy.", - "description": "Delete a package license policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/disable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/enable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/": { - "get": { - "operationId": "orgs_members_list", - "summary": "Get the details for all organization members.", - "description": "Get the details for all organization members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "is_active", - "in": "query", - "description": "Filter for active/inactive users.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", - "required": false, - "schema": { - "type": "string", - "default": "user_name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization's members", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/": { - "get": { - "operationId": "orgs_members_read", - "summary": "Get the details for a specific organization member.", - "description": "Get the details for a specific organization member.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_members_partial_update", - "summary": "Views for working with organization members.", - "description": "Views for working with organization members.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_members_delete", - "summary": "Removes a member from the organization.", - "description": "Removes a member from the organization.", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/refresh/": { - "post": { - "operationId": "orgs_members_refresh", - "summary": "Refresh a member of the organization's API key.", - "description": "Refresh a member of the organization's API key.", - "responses": { - "204": { - "description": "Org member API key has been refreshed." - }, - "400": { - "description": "The org member's API key cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org member not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/remove/": { - "get": { - "operationId": "orgs_members_remove", - "summary": "Removes a member from the organization (deprecated, use DELETE instead).", - "description": "Removes a member from the organization (deprecated, use DELETE instead).", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-role/": { - "patch": { - "operationId": "orgs_members_update_role", - "summary": "Update a member's role in the organization.", - "description": "Update a member's role in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-visibility/": { - "patch": { - "operationId": "orgs_members_update_visibility", - "summary": "Update a member's visibility in the organization.", - "description": "Update a member's visibility in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/": { - "get": { - "operationId": "orgs_openid-connect_list", - "summary": "Retrieve the list of OpenID Connect provider settings for the org.", - "description": "Retrieve the list of OpenID Connect provider settings for the org.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_openid-connect_create", - "summary": "Create the OpenID Connect provider settings for the org.", - "description": "Create the OpenID Connect provider settings for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "201": { - "description": "Created the OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/{slug_perm}/": { - "get": { - "operationId": "orgs_openid-connect_read", - "summary": "Retrieve a specific OpenID Connect provider setting for the org.", - "description": "Retrieve a specific OpenID Connect provider setting for the org.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_openid-connect_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_openid-connect_partial_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_openid-connect_delete", - "summary": "Delete a specific OpenID Connect provider setting for the org.", - "description": "Delete a specific OpenID Connect provider setting for the org.", - "responses": { - "204": { - "description": "Deleted the specified OpenID Connect provider setting successfully." - }, - "400": { - "description": "The specified OpenID Connect provider setting cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/license/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/vulnerability/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/product-features/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-authentication": { - "get": { - "operationId": "orgs_saml-authentication_read", - "summary": "Retrieve the SAML Authentication settings for this Organization.", - "description": "Retrieve the SAML Authentication settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_saml-authentication_partial_update", - "summary": "Update the SAML Authentication settings for this Organization.", - "description": "Update the SAML Authentication settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/": { - "get": { - "operationId": "orgs_saml-group-sync_list", - "summary": "Get the details of all SAML Group Sync mapping within an organization.", - "description": "Get the details of all SAML Group Sync mapping within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of all SAML Group Sync mappings for this org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_saml-group-sync_create", - "summary": "Create a new SAML Group Sync mapping within an organization.", - "description": "Create a new SAML Group Sync mapping within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The SAML Group Sync mapping was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/disable/": { - "post": { - "operationId": "orgs_saml-group-sync_disable", - "summary": "Disable SAML Group Sync for this organization.", - "description": "Disable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been disabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/enable/": { - "post": { - "operationId": "orgs_saml-group-sync_enable", - "summary": "Enable SAML Group Sync for this organization.", - "description": "Enable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been enabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/status/": { - "get": { - "operationId": "orgs_saml-group-sync_status", - "summary": "Retrieve the SAML Group Sync status for this organization.", - "description": "Retrieve the SAML Group Sync status for this organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Group Sync status for this organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/{slug_perm}/": { - "delete": { - "operationId": "orgs_saml-group-sync_delete", - "summary": "Delete a SAML Group Sync mapping from an organization.", - "description": "Delete a SAML Group Sync mapping from an organization.", - "responses": { - "204": { - "description": "Mapping removed successfully" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim/refresh-token": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/": { - "get": { - "operationId": "orgs_services_list", - "summary": "Get a list of all services within an organization.", - "description": "Get a list of all services within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of services within an Organization.Available options are: name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", - "required": false, - "schema": { - "type": "string", - "default": "created_at" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of services within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Service" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "orgs_services_create", - "summary": "Create a service within an organization.", - "description": "Create a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Created the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/": { - "get": { - "operationId": "orgs_services_read", - "summary": "Retrieve details of a single service within an organization.", - "description": "Retrieve details of a single service within an organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_services_partial_update", - "summary": "Update a service within an organization.", - "description": "Update a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_services_delete", - "summary": "Delete a specific service", - "description": "Delete a specific service", - "responses": { - "204": { - "description": "Deleted the service successfully." - }, - "400": { - "description": "The service cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/refresh/": { - "post": { - "operationId": "orgs_services_refresh", - "summary": "Refresh service API token.", - "description": "Refresh service API token.", - "responses": { - "200": { - "description": "Refreshed the service token successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "The service token cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/settings": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/slug": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/": { - "get": { - "operationId": "orgs_teams_list", - "summary": "Get the details of all teams within an organization.", - "description": "Get the details of all teams within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "for_user", - "in": "query", - "description": "Filter for teams that you are a member of.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of teams within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_teams_create", - "summary": "Create a team for this organization.", - "description": "Create a team for this organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Team created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/": { - "get": { - "operationId": "orgs_teams_read", - "summary": "Get the details of a specific team within an organization.", - "description": "Get the details of a specific team within an organization.", - "responses": { - "200": { - "description": "Retrieved the details of the requested team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_teams_partial_update", - "summary": "Update a specific team in a organization.", - "description": "Update a specific team in a organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "orgs_teams_delete", - "summary": "Delete a specific team in a organization.", - "description": "Delete a specific team in a organization.", - "responses": { - "204": { - "description": "Deleted the team successfully." - }, - "400": { - "description": "The team cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members": { - "get": { - "operationId": "orgs_teams_members_list", - "summary": "List all members for the team.", - "description": "List all members for the team.", - "responses": { - "200": { - "description": "Retrieved users for the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "post": { - "operationId": "orgs_teams_members_create", - "summary": "Add users to a team.", - "description": "Add users to a team.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "201": { - "description": "The users were added to the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "orgs_teams_members_update", - "summary": "Replace all team members.", - "description": "Replace all team members.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "204": { - "description": "The team members were replaced.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members/{member}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/memberships/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/usage-limits/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy-violation/": { - "get": { - "operationId": "orgs_vulnerability-policy-violation_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" - } - } - }, - "title": "PackageVulnerabilityPolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/": { - "get": { - "operationId": "orgs_vulnerability-policy_list", - "summary": "Get a list of all package vulnerability policies.", - "description": "Get a list of all package vulnerability policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_create", - "summary": "Create a package vulnerability policy.", - "description": "Create a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_read", - "summary": "Get a package vulnerability policy.", - "description": "Get a package vulnerability policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_vulnerability-policy_update", - "summary": "Update a package vulnerability policy.", - "description": "Update a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_vulnerability-policy_partial_update", - "summary": "Partially update a package vulnerability policy.", - "description": "Partially update a package vulnerability policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_vulnerability-policy_delete", - "summary": "Delete a package vulnerability policy.", - "description": "Delete a package vulnerability policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/docker/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/maven/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/": { - "get": { - "operationId": "packages_list", - "summary": "Get a list of all packages associated with repository.", - "description": "Get a list of all packages associated with repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/groups/": { - "get": { - "operationId": "packages_groups_list", - "summary": "Return a list of Package Groups in a repository.", - "description": "Return a list of Package Groups in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "group_by", - "in": "query", - "description": "A field to group packages by. Available options: name, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of package groups.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageGroup" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/alpine/": { - "post": { - "operationId": "packages_upload_alpine", - "summary": "Create a new Alpine package", - "description": "Create a new Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cargo/": { - "post": { - "operationId": "packages_upload_cargo", - "summary": "Create a new Cargo package", - "description": "Create a new Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cocoapods/": { - "post": { - "operationId": "packages_upload_cocoapods", - "summary": "Create a new CocoaPods package", - "description": "Create a new CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/composer/": { - "post": { - "operationId": "packages_upload_composer", - "summary": "Create a new Composer package", - "description": "Create a new Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conan/": { - "post": { - "operationId": "packages_upload_conan", - "summary": "Create a new Conan package", - "description": "Create a new Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conda/": { - "post": { - "operationId": "packages_upload_conda", - "summary": "Create a new Conda package", - "description": "Create a new Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cran/": { - "post": { - "operationId": "packages_upload_cran", - "summary": "Create a new CRAN package", - "description": "Create a new CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/dart/": { - "post": { - "operationId": "packages_upload_dart", - "summary": "Create a new Dart package", - "description": "Create a new Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/deb/": { - "post": { - "operationId": "packages_upload_deb", - "summary": "Create a new Debian package", - "description": "Create a new Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/docker/": { - "post": { - "operationId": "packages_upload_docker", - "summary": "Create a new Docker package", - "description": "Create a new Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/go/": { - "post": { - "operationId": "packages_upload_go", - "summary": "Create a new Go package", - "description": "Create a new Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/helm/": { - "post": { - "operationId": "packages_upload_helm", - "summary": "Create a new Helm package", - "description": "Create a new Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/hex/": { - "post": { - "operationId": "packages_upload_hex", - "summary": "Create a new Hex package", - "description": "Create a new Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/luarocks/": { - "post": { - "operationId": "packages_upload_luarocks", - "summary": "Create a new LuaRocks package", - "description": "Create a new LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/maven/": { - "post": { - "operationId": "packages_upload_maven", - "summary": "Create a new Maven package", - "description": "Create a new Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/npm/": { - "post": { - "operationId": "packages_upload_npm", - "summary": "Create a new npm package", - "description": "Create a new npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/nuget/": { - "post": { - "operationId": "packages_upload_nuget", - "summary": "Create a new NuGet package", - "description": "Create a new NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/p2/": { - "post": { - "operationId": "packages_upload_p2", - "summary": "Create a new P2 package", - "description": "Create a new P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/python/": { - "post": { - "operationId": "packages_upload_python", - "summary": "Create a new Python package", - "description": "Create a new Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/raw/": { - "post": { - "operationId": "packages_upload_raw", - "summary": "Create a new Raw package", - "description": "Create a new Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/rpm/": { - "post": { - "operationId": "packages_upload_rpm", - "summary": "Create a new RedHat package", - "description": "Create a new RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/ruby/": { - "post": { - "operationId": "packages_upload_ruby", - "summary": "Create a new Ruby package", - "description": "Create a new Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/swift/": { - "post": { - "operationId": "packages_upload_swift", - "summary": "Create a new Swift package", - "description": "Create a new Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/terraform/": { - "post": { - "operationId": "packages_upload_terraform", - "summary": "Create a new Terraform package", - "description": "Create a new Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/vagrant/": { - "post": { - "operationId": "packages_upload_vagrant", - "summary": "Create a new Vagrant package", - "description": "Create a new Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/alpine/": { - "post": { - "operationId": "packages_validate-upload_alpine", - "summary": "Validate parameters for create Alpine package", - "description": "Validate parameters for create Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cargo/": { - "post": { - "operationId": "packages_validate-upload_cargo", - "summary": "Validate parameters for create Cargo package", - "description": "Validate parameters for create Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cocoapods/": { - "post": { - "operationId": "packages_validate-upload_cocoapods", - "summary": "Validate parameters for create CocoaPods package", - "description": "Validate parameters for create CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/composer/": { - "post": { - "operationId": "packages_validate-upload_composer", - "summary": "Validate parameters for create Composer package", - "description": "Validate parameters for create Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conan/": { - "post": { - "operationId": "packages_validate-upload_conan", - "summary": "Validate parameters for create Conan package", - "description": "Validate parameters for create Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conda/": { - "post": { - "operationId": "packages_validate-upload_conda", - "summary": "Validate parameters for create Conda package", - "description": "Validate parameters for create Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cran/": { - "post": { - "operationId": "packages_validate-upload_cran", - "summary": "Validate parameters for create CRAN package", - "description": "Validate parameters for create CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/dart/": { - "post": { - "operationId": "packages_validate-upload_dart", - "summary": "Validate parameters for create Dart package", - "description": "Validate parameters for create Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/deb/": { - "post": { - "operationId": "packages_validate-upload_deb", - "summary": "Validate parameters for create Debian package", - "description": "Validate parameters for create Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/docker/": { - "post": { - "operationId": "packages_validate-upload_docker", - "summary": "Validate parameters for create Docker package", - "description": "Validate parameters for create Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/go/": { - "post": { - "operationId": "packages_validate-upload_go", - "summary": "Validate parameters for create Go package", - "description": "Validate parameters for create Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/helm/": { - "post": { - "operationId": "packages_validate-upload_helm", - "summary": "Validate parameters for create Helm package", - "description": "Validate parameters for create Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/hex/": { - "post": { - "operationId": "packages_validate-upload_hex", - "summary": "Validate parameters for create Hex package", - "description": "Validate parameters for create Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/luarocks/": { - "post": { - "operationId": "packages_validate-upload_luarocks", - "summary": "Validate parameters for create LuaRocks package", - "description": "Validate parameters for create LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/maven/": { - "post": { - "operationId": "packages_validate-upload_maven", - "summary": "Validate parameters for create Maven package", - "description": "Validate parameters for create Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/npm/": { - "post": { - "operationId": "packages_validate-upload_npm", - "summary": "Validate parameters for create npm package", - "description": "Validate parameters for create npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/nuget/": { - "post": { - "operationId": "packages_validate-upload_nuget", - "summary": "Validate parameters for create NuGet package", - "description": "Validate parameters for create NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/p2/": { - "post": { - "operationId": "packages_validate-upload_p2", - "summary": "Validate parameters for create P2 package", - "description": "Validate parameters for create P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/python/": { - "post": { - "operationId": "packages_validate-upload_python", - "summary": "Validate parameters for create Python package", - "description": "Validate parameters for create Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/raw/": { - "post": { - "operationId": "packages_validate-upload_raw", - "summary": "Validate parameters for create Raw package", - "description": "Validate parameters for create Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/rpm/": { - "post": { - "operationId": "packages_validate-upload_rpm", - "summary": "Validate parameters for create RedHat package", - "description": "Validate parameters for create RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/ruby/": { - "post": { - "operationId": "packages_validate-upload_ruby", - "summary": "Validate parameters for create Ruby package", - "description": "Validate parameters for create Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/swift/": { - "post": { - "operationId": "packages_validate-upload_swift", - "summary": "Validate parameters for create Swift package", - "description": "Validate parameters for create Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/terraform/": { - "post": { - "operationId": "packages_validate-upload_terraform", - "summary": "Validate parameters for create Terraform package", - "description": "Validate parameters for create Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/vagrant/": { - "post": { - "operationId": "packages_validate-upload_vagrant", - "summary": "Validate parameters for create Vagrant package", - "description": "Validate parameters for create Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "packages_read", - "summary": "Get a specific package in a repository.", - "description": "Get a specific package in a repository.", - "responses": { - "200": { - "description": "Retrieved the specified package successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "delete": { - "operationId": "packages_delete", - "summary": "Delete a specific package in a repository.", - "description": "Delete a specific package in a repository.", - "responses": { - "204": { - "description": "Deleted the specified package successfully." - }, - "400": { - "description": "The package cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/copy/": { - "post": { - "operationId": "packages_copy", - "summary": "Copy a package to another repository.", - "description": "Copy a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopyRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Copied specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopy" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/dependencies/": { - "get": { - "operationId": "packages_dependencies", - "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "responses": { - "200": { - "description": "Retrieved stored dependencies for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDependencies" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/move/": { - "post": { - "operationId": "packages_move", - "summary": "Move a package to another repository.", - "description": "Move a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMoveRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Moved specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMove" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/quarantine/": { - "post": { - "operationId": "packages_quarantine", - "summary": "Quarantine or release a package.", - "description": "Quarantine or release a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantineRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Changed the package's quarantine status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantine" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/resync/": { - "post": { - "operationId": "packages_resync", - "summary": "Schedule a package for resynchronisation.", - "description": "Schedule a package for resynchronisation.", - "responses": { - "200": { - "description": "Scheduled the package for resynchronisation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageResync" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/scan/": { - "post": { - "operationId": "packages_scan", - "summary": "Schedule a package for scanning.", - "description": "Schedule a package for scanning.", - "responses": { - "200": { - "description": "Scheduled the package for scanning.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/status/": { - "get": { - "operationId": "packages_status", - "summary": "Get the synchronization status for a package.", - "description": "Get the synchronization status for a package.", - "responses": { - "200": { - "description": "Retrieved status for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/tag/": { - "post": { - "operationId": "packages_tag", - "summary": "Add/Replace/Remove tags for a package.", - "description": "Add/Replace/Remove tags for a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageTagRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Modified tags for the package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/history/{owner}/": { - "get": { - "operationId": "quota_history_read", - "summary": "Quota history for a given namespace.", - "description": "Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/history/{owner}/": { - "get": { - "operationId": "quota_oss_history_read", - "summary": "Open-source Quota history for a given namespace.", - "description": "Open-source Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/{owner}/": { - "get": { - "operationId": "quota_oss_read", - "summary": "Open-source Quota usage for a given namespace.", - "description": "Open-source Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/{owner}/": { - "get": { - "operationId": "quota_read", - "summary": "Quota usage for a given namespace.", - "description": "Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/rates/limits/": { - "get": { - "operationId": "rates_limits_list", - "summary": "Endpoint to check rate limits for current user.", - "description": "Endpoint to check rate limits for current user.", - "responses": { - "200": { - "description": "Rate check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcesRateCheck" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "rates" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/repos/": { - "get": { - "operationId": "repos_user_list", - "summary": "Get a list of all repositories associated with current user.", - "description": "Get a list of all repositories associated with current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/repos/{owner}/": { - "get": { - "operationId": "repos_namespace_list", - "summary": "Get a list of all repositories within a namespace.", - "description": "Get a list of all repositories within a namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_create", - "summary": "Create a new repository in a given namespace.", - "description": "Create a new repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreateRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The repository was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/": { - "get": { - "operationId": "repos_read", - "summary": "Get a specific repository.", - "description": "Get a specific repository.", - "responses": { - "200": { - "description": "Retrieved the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_partial_update", - "summary": "Update details about a repository in a given namespace.", - "description": "Update details about a repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "The repository was updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "repos_delete", - "summary": "Delete a repository in a given namespace.", - "description": "Delete a repository in a given namespace.", - "responses": { - "200": { - "description": "The repository has been scheduled for deletion." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/": { - "get": { - "operationId": "repos_ecdsa_list", - "summary": "Retrieve the active ECDSA key for the Repository.", - "description": "Retrieve the active ECDSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" - }, - "post": { - "operationId": "repos_ecdsa_create", - "summary": "Set the active ECDSA key for the Repository.", - "description": "Set the active ECDSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided ECDSA key is the same as the current ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "201": { - "description": "The provided ECDSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "The provided ECDSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom ECDSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/regenerate/": { - "post": { - "operationId": "repos_ecdsa_regenerate", - "summary": "Regenerate ECDSA Key for the Repository.", - "description": "Regenerate ECDSA Key for the Repository.", - "responses": { - "200": { - "description": "An ECDSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip": { - "get": { - "operationId": "repos_geoip_read", - "summary": "List all repository geoip rules.", - "description": "List all repository geoip rules.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_geoip_update", - "summary": "Replace repository geoip rules.", - "description": "Replace repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_geoip_partial_update", - "summary": "Partially update repository geoip rules.", - "description": "Partially update repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/disable/": { - "post": { - "operationId": "repos_geoip_disable", - "summary": "Disable GeoIP for this repository.", - "description": "Disable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been disabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/enable/": { - "post": { - "operationId": "repos_geoip_enable", - "summary": "Enable GeoIP for this repository.", - "description": "Enable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been enabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/status/": { - "get": { - "operationId": "api_repos_geoip_status", - "summary": "Retrieve the GeoIP status for this repository.", - "description": "Retrieve the GeoIP status for this repository.", - "responses": { - "200": { - "description": "Retrieved the GeoIP status for this repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/test/": { - "post": { - "operationId": "repos_geoip_test", - "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", - "description": "Test a list of IP addresses against the repository's current GeoIP rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" - } - } - } - }, - "responses": { - "201": { - "description": "Successfuly tested addresses against the repository's GeoIP rules", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/": { - "get": { - "operationId": "repos_gpg_list", - "summary": "Retrieve the active GPG key for the Repository.", - "description": "Retrieve the active GPG key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_gpg_create", - "summary": "Set the active GPG key for the Repository.", - "description": "Set the active GPG key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided GPG key is the same as the current GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "201": { - "description": "The provided GPG key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "The provided GPG key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom GPG keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/regenerate/": { - "post": { - "operationId": "repos_gpg_regenerate", - "summary": "Regenerate GPG Key for the Repository.", - "description": "Regenerate GPG Key for the Repository.", - "responses": { - "200": { - "description": "A GPG key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/privileges": { - "get": { - "operationId": "repos_privileges_list", - "summary": "List all explicity created privileges for the repository.", - "description": "List all explicity created privileges for the repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved privileges for the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInput" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_privileges_update", - "summary": "Replace all existing repository privileges with those specified.", - "description": "Replace all existing repository privileges with those specified.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges replaced" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_privileges_partial_update", - "summary": "Modify privileges for the repository.", - "description": "Modify privileges for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges updated" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/": { - "get": { - "operationId": "repos_rsa_list", - "summary": "Retrieve the active RSA key for the Repository.", - "description": "Retrieve the active RSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_rsa_create", - "summary": "Set the active RSA key for the Repository.", - "description": "Set the active RSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided RSA key is the same as the current RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "201": { - "description": "The provided RSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "The provided RSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom RSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/regenerate/": { - "post": { - "operationId": "repos_rsa_regenerate", - "summary": "Regenerate RSA Key for the Repository.", - "description": "Regenerate RSA Key for the Repository.", - "responses": { - "200": { - "description": "An RSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/": { - "get": { - "operationId": "repos_upstream_cargo_list", - "summary": "List Cargo upstream configs for this repository.", - "description": "List Cargo upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cargo_create", - "summary": "Create a Cargo upstream config for this repository.", - "description": "Create a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cargo_read", - "summary": "Retrieve a Cargo upstream config for this repository.", - "description": "Retrieve a Cargo upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cargo_update", - "summary": "Update a Cargo upstream config for this repository.", - "description": "Update a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cargo_partial_update", - "summary": "Partially update a Cargo upstream config for this repository.", - "description": "Partially update a Cargo upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cargo_delete", - "summary": "Delete a Cargo upstream config for this repository.", - "description": "Delete a Cargo upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/": { - "get": { - "operationId": "repos_upstream_composer_list", - "summary": "List Composer upstream configs for this repository.", - "description": "List Composer upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_composer_create", - "summary": "Create a Composer upstream config for this repository.", - "description": "Create a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_composer_read", - "summary": "Retrieve a Composer upstream config for this repository.", - "description": "Retrieve a Composer upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_composer_update", - "summary": "Update a Composer upstream config for this repository.", - "description": "Update a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_composer_partial_update", - "summary": "Partially update a Composer upstream config for this repository.", - "description": "Partially update a Composer upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_composer_delete", - "summary": "Delete a Composer upstream config for this repository.", - "description": "Delete a Composer upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/": { - "get": { - "operationId": "repos_upstream_cran_list", - "summary": "List CRAN upstream configs for this repository.", - "description": "List CRAN upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cran_create", - "summary": "Create a CRAN upstream config for this repository.", - "description": "Create a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cran_read", - "summary": "Retrieve a CRAN upstream config for this repository.", - "description": "Retrieve a CRAN upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cran_update", - "summary": "Update a CRAN upstream config for this repository.", - "description": "Update a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cran_partial_update", - "summary": "Partially update a CRAN upstream config for this repository.", - "description": "Partially update a CRAN upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cran_delete", - "summary": "Delete a CRAN upstream config for this repository.", - "description": "Delete a CRAN upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/": { - "get": { - "operationId": "repos_upstream_dart_list", - "summary": "List Dart upstream configs for this repository.", - "description": "List Dart upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_dart_create", - "summary": "Create a Dart upstream config for this repository.", - "description": "Create a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_dart_read", - "summary": "Retrieve a Dart upstream config for this repository.", - "description": "Retrieve a Dart upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_dart_update", - "summary": "Update a Dart upstream config for this repository.", - "description": "Update a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_dart_partial_update", - "summary": "Partially update a Dart upstream config for this repository.", - "description": "Partially update a Dart upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_dart_delete", - "summary": "Delete a Dart upstream config for this repository.", - "description": "Delete a Dart upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/": { - "get": { - "operationId": "repos_upstream_deb_list", - "summary": "List Debian upstream configs for this repository.", - "description": "List Debian upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_deb_create", - "summary": "Create a Debian upstream config for this repository.", - "description": "Create a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_deb_read", - "summary": "Retrieve a Debian upstream config for this repository.", - "description": "Retrieve a Debian upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_deb_update", - "summary": "Update a Debian upstream config for this repository.", - "description": "Update a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_deb_partial_update", - "summary": "Partially update a Debian upstream config for this repository.", - "description": "Partially update a Debian upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_deb_delete", - "summary": "Delete a Debian upstream config for this repository.", - "description": "Delete a Debian upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/": { - "get": { - "operationId": "repos_upstream_docker_list", - "summary": "List Docker upstream configs for this repository.", - "description": "List Docker upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_docker_create", - "summary": "Create a Docker upstream config for this repository.", - "description": "Create a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_docker_read", - "summary": "Retrieve a Docker upstream config for this repository.", - "description": "Retrieve a Docker upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_docker_update", - "summary": "Update a Docker upstream config for this repository.", - "description": "Update a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_docker_partial_update", - "summary": "Partially update a Docker upstream config for this repository.", - "description": "Partially update a Docker upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_docker_delete", - "summary": "Delete a Docker upstream config for this repository.", - "description": "Delete a Docker upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/": { - "get": { - "operationId": "repos_upstream_go_list", - "summary": "List Go upstream configs for this repository.", - "description": "List Go upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_go_create", - "summary": "Create a Go upstream config for this repository.", - "description": "Create a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_go_read", - "summary": "Retrieve a Go upstream config for this repository.", - "description": "Retrieve a Go upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_go_update", - "summary": "Update a Go upstream config for this repository.", - "description": "Update a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_go_partial_update", - "summary": "Partially update a Go upstream config for this repository.", - "description": "Partially update a Go upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_go_delete", - "summary": "Delete a Go upstream config for this repository.", - "description": "Delete a Go upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/": { - "get": { - "operationId": "repos_upstream_helm_list", - "summary": "List Helm upstream configs for this repository.", - "description": "List Helm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_helm_create", - "summary": "Create a Helm upstream config for this repository.", - "description": "Create a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_helm_read", - "summary": "Retrieve a Helm upstream config for this repository.", - "description": "Retrieve a Helm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_helm_update", - "summary": "Update a Helm upstream config for this repository.", - "description": "Update a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_helm_partial_update", - "summary": "Partially update a Helm upstream config for this repository.", - "description": "Partially update a Helm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_helm_delete", - "summary": "Delete a Helm upstream config for this repository.", - "description": "Delete a Helm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/": { - "get": { - "operationId": "repos_upstream_hex_list", - "summary": "List Hex upstream configs for this repository.", - "description": "List Hex upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_hex_create", - "summary": "Create a Hex upstream config for this repository.", - "description": "Create a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_hex_read", - "summary": "Retrieve a Hex upstream config for this repository.", - "description": "Retrieve a Hex upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_hex_update", - "summary": "Update a Hex upstream config for this repository.", - "description": "Update a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_hex_partial_update", - "summary": "Partially update a Hex upstream config for this repository.", - "description": "Partially update a Hex upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_hex_delete", - "summary": "Delete a Hex upstream config for this repository.", - "description": "Delete a Hex upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/": { - "get": { - "operationId": "repos_upstream_maven_list", - "summary": "List Maven upstream configs for this repository.", - "description": "List Maven upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_maven_create", - "summary": "Create a Maven upstream config for this repository.", - "description": "Create a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_maven_read", - "summary": "Retrieve a Maven upstream config for this repository.", - "description": "Retrieve a Maven upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_maven_update", - "summary": "Update a Maven upstream config for this repository.", - "description": "Update a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_maven_partial_update", - "summary": "Partially update a Maven upstream config for this repository.", - "description": "Partially update a Maven upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_maven_delete", - "summary": "Delete a Maven upstream config for this repository.", - "description": "Delete a Maven upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/": { - "get": { - "operationId": "repos_upstream_npm_list", - "summary": "List npm upstream configs for this repository.", - "description": "List npm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_npm_create", - "summary": "Create a npm upstream config for this repository.", - "description": "Create a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_npm_read", - "summary": "Retrieve a npm upstream config for this repository.", - "description": "Retrieve a npm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_npm_update", - "summary": "Update a npm upstream config for this repository.", - "description": "Update a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_npm_partial_update", - "summary": "Partially update a npm upstream config for this repository.", - "description": "Partially update a npm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_npm_delete", - "summary": "Delete a npm upstream config for this repository.", - "description": "Delete a npm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/": { - "get": { - "operationId": "repos_upstream_nuget_list", - "summary": "List NuGet upstream configs for this repository.", - "description": "List NuGet upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_nuget_create", - "summary": "Create a NuGet upstream config for this repository.", - "description": "Create a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_nuget_read", - "summary": "Retrieve a NuGet upstream config for this repository.", - "description": "Retrieve a NuGet upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_nuget_update", - "summary": "Update a NuGet upstream config for this repository.", - "description": "Update a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_nuget_partial_update", - "summary": "Partially update a NuGet upstream config for this repository.", - "description": "Partially update a NuGet upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_nuget_delete", - "summary": "Delete a NuGet upstream config for this repository.", - "description": "Delete a NuGet upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/": { - "get": { - "operationId": "repos_upstream_python_list", - "summary": "List Python upstream configs for this repository.", - "description": "List Python upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_python_create", - "summary": "Create a Python upstream config for this repository.", - "description": "Create a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_python_read", - "summary": "Retrieve a Python upstream config for this repository.", - "description": "Retrieve a Python upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_python_update", - "summary": "Update a Python upstream config for this repository.", - "description": "Update a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_python_partial_update", - "summary": "Partially update a Python upstream config for this repository.", - "description": "Partially update a Python upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_python_delete", - "summary": "Delete a Python upstream config for this repository.", - "description": "Delete a Python upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/": { - "get": { - "operationId": "repos_upstream_rpm_list", - "summary": "List RedHat upstream configs for this repository.", - "description": "List RedHat upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_rpm_create", - "summary": "Create a RedHat upstream config for this repository.", - "description": "Create a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_rpm_read", - "summary": "Retrieve a RedHat upstream config for this repository.", - "description": "Retrieve a RedHat upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_rpm_update", - "summary": "Update a RedHat upstream config for this repository.", - "description": "Update a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_rpm_partial_update", - "summary": "Partially update a RedHat upstream config for this repository.", - "description": "Partially update a RedHat upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_rpm_delete", - "summary": "Delete a RedHat upstream config for this repository.", - "description": "Delete a RedHat upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/": { - "get": { - "operationId": "repos_upstream_ruby_list", - "summary": "List Ruby upstream configs for this repository.", - "description": "List Ruby upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_ruby_create", - "summary": "Create a Ruby upstream config for this repository.", - "description": "Create a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_ruby_read", - "summary": "Retrieve a Ruby upstream config for this repository.", - "description": "Retrieve a Ruby upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_ruby_update", - "summary": "Update a Ruby upstream config for this repository.", - "description": "Update a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_ruby_partial_update", - "summary": "Partially update a Ruby upstream config for this repository.", - "description": "Partially update a Ruby upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_ruby_delete", - "summary": "Delete a Ruby upstream config for this repository.", - "description": "Delete a Ruby upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/": { - "get": { - "operationId": "repos_upstream_swift_list", - "summary": "List Swift upstream configs for this repository.", - "description": "List Swift upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_swift_create", - "summary": "Create a Swift upstream config for this repository.", - "description": "Create a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_swift_read", - "summary": "Retrieve a Swift upstream config for this repository.", - "description": "Retrieve a Swift upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_swift_update", - "summary": "Update a Swift upstream config for this repository.", - "description": "Update a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_swift_partial_update", - "summary": "Partially update a Swift upstream config for this repository.", - "description": "Partially update a Swift upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_swift_delete", - "summary": "Delete a Swift upstream config for this repository.", - "description": "Delete a Swift upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-ecdsa/": { - "get": { - "operationId": "repos_x509_ecdsa_list", - "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 ECDSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-rsa/": { - "get": { - "operationId": "repos_x509_rsa_list", - "summary": "Retrieve the active X.509 RSA certificate for the Repository.", - "description": "Retrieve the active X.509 RSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 RSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509RsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/create-entitlement/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/{eula}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "eula", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/invalidate-cache/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/retention/": { - "get": { - "operationId": "repo_retention_read", - "summary": "Retrieve the retention rules for the repository.", - "description": "Retrieve the retention rules for the repository.", - "responses": { - "200": { - "description": "Retrieved the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "repo_retention_partial_update", - "summary": "Update the retention rules for the repository.", - "description": "Update the retention rules for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-owner/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-region/": { - "post": { - "operationId": "repos_transfer_region", - "summary": "Transfer a repository to a different region.", - "description": "Transfer a repository to a different region.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferRegionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Repository region transfer initiated." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom storage regions not available on plan; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner, namespace or repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Groups": { - "get": { - "operationId": "scim_v2_Groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Groups_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Groups/{id}": { - "get": { - "operationId": "scim_v2_Groups_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Groups_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Groups_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Groups_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ResourceTypes": { - "get": { - "operationId": "scim_v2_ResourceTypes_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ResourceTypes_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ResourceTypes/{id}": { - "get": { - "operationId": "scim_v2_ResourceTypes_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ResourceTypes_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ResourceTypes_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ResourceTypes_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ServiceProviderConfig": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ServiceProviderConfig_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ServiceProviderConfig/{id}": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ServiceProviderConfig_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ServiceProviderConfig_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ServiceProviderConfig_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Users": { - "get": { - "operationId": "scim_v2_Users_list", - "description": "", - "parameters": [ - { - "name": "count", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "startIndex", - "in": "query", - "description": "The initial index from which to return the results.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Users_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Users/{identifier}": { - "get": { - "operationId": "scim_v2_Users_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Users_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Users_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Users_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" - } - } - ] - }, - "/status/check/basic/": { - "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", - "responses": { - "200": { - "description": "Status check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatusBasic" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "status" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/storage-regions/": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", - "responses": { - "200": { - "description": "Available storage regions retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/storage-regions/{slug}/": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/usage/{owner}/{requested_metric}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "requested_metric", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/additional-onboarding-actions/": { - "parameters": [] - }, - "/user/default-org/": { - "parameters": [] - }, - "/user/emails/": { - "parameters": [] - }, - "/user/emails/{email}/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/emails/{email}/resend-confirmation/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/": { - "parameters": [] - }, - "/user/invites/{invite_id}/accept/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/{invite_id}/reject/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/logins/": { - "parameters": [] - }, - "/user/logout/": { - "parameters": [] - }, - "/user/logout/other-sessions/": { - "parameters": [] - }, - "/user/password/": { - "parameters": [] - }, - "/user/permissions/check/": { - "parameters": [] - }, - "/user/profile/": { - "parameters": [] - }, - "/user/refresh-token/": { - "parameters": [] - }, - "/user/self/": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/user/sessions/": { - "parameters": [] - }, - "/user/slug/": { - "parameters": [] - }, - "/user/soft-delete/": { - "parameters": [] - }, - "/user/token/": { - "post": { - "operationId": "user_token_create", - "summary": "Create or retrieve API token for a user.", - "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "security": [ - { - "basic": [] - } - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions/": { - "parameters": [] - }, - "/user/token/restrictions/{token}/": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/tokens/": { - "get": { - "operationId": "user_tokens_list", - "summary": "Retrieve the API key assigned to the user that is currently authenticated.", - "description": "Retrieve the API key assigned to the user that is currently authenticated.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the user that is currently authenticated.", - "description": "Create an API key for the user that is currently authenticated.", - "responses": { - "201": { - "description": "Created an API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh/": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the user that is currently authenticated.", - "description": "Refresh the specified API key for the user that is currently authenticated.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/totp/backup/disable/": { - "parameters": [] - }, - "/user/totp/backup/enable/": { - "parameters": [] - }, - "/user/totp/confirm/": { - "parameters": [] - }, - "/user/totp/disable/": { - "parameters": [] - }, - "/user/totp/enable/": { - "parameters": [] - }, - "/user/totp/settings/": { - "parameters": [] - }, - "/user/two-factor/": { - "parameters": [] - }, - "/users/profile/{slug}/": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "users" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "CargoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } - }, - "SwiftUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequest" - } - } - } - }, - "NpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequest" - } - } - } - }, - "SwiftPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUploadRequest" - } - } - } - }, - "HexUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequest" - } - } - } - }, - "RubyPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUploadRequest" - } - } - } - }, - "CargoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUploadRequest" - } - } - } - }, - "RubyUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequest" - } - } - } - }, - "RpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequest" - } - } - } - }, - "MavenUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequest" - } - } - } - }, - "OrganizationTeamMembers": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "VagrantPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUploadRequest" - } - } - } - }, - "GoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequest" - } - } - } - }, - "ConanPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUploadRequest" - } - } - } - }, - "RawPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUploadRequest" - } - } - } - }, - "HelmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequest" - } - } - } - }, - "NugetUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequest" - } - } - } - }, - "TerraformPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUploadRequest" - } - } - } - }, - "PackageFileUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUploadRequest" - } - } - } - }, - "PackageDenyPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequest" - } - } - } - }, - "ProviderSettingsRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequest" - } - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" - } - } - } - }, - "AlpinePackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUploadRequest" - } - } - } - }, - "CocoapodsPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" - } - } - } - }, - "ComposerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUploadRequest" - } - } - } - }, - "CondaPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUploadRequest" - } - } - } - }, - "CranPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUploadRequest" - } - } - } - }, - "DartPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUploadRequest" - } - } - } - }, - "DebPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUploadRequest" - } - } - } - }, - "DockerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUploadRequest" - } - } - } - }, - "HelmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUploadRequest" - } - } - } - }, - "HexPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUploadRequest" - } - } - } - }, - "LuarocksPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUploadRequest" - } - } - } - }, - "MavenPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUploadRequest" - } - } - } - }, - "NpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUploadRequest" - } - } - } - }, - "NugetPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUploadRequest" - } - } - } - }, - "P2PackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUploadRequest" - } - } - } - }, - "PythonPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUploadRequest" - } - } - } - }, - "RpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUploadRequest" - } - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" - } - } - } - }, - "ComposerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequest" - } - } - } - }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } - } - } - }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": [ - "detail" - ], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - }, - "fields": { - "title": "Fields", - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - } - }, - "GeoIpLocation": { - "required": [ - "city", - "continent", - "country", - "postal_code" - ], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "PlanPrice": { - "description": "List of prices for the plan", - "required": [ - "amount", - "billing_interval", - "currency" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Plan Amount", - "type": "string", - "format": "decimal" - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing", - "type": "string", - "minLength": 1 - } - } - }, - "Plan": { - "required": [ - "identifier", - "is_enterprise", - "prices" - ], - "type": "object", - "properties": { - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_enterprise": { - "title": "Is enterprise", - "description": "Is this an enterprise plan", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "prices": { - "description": "List of prices for the plan", - "type": "array", - "items": { - "$ref": "#/components/schemas/PlanPrice" - } - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - } - } - }, - "Payment": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "When was the payment created and attempted", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "failure_code": { - "title": "Failure code", - "description": "Failure Code for the payment", - "type": "string", - "minLength": 1 - }, - "failure_message": { - "title": "Failure message", - "description": "Failure message for the payment", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Payment Status", - "type": "string", - "minLength": 1 - } - } - }, - "AccountStatus": { - "required": [ - "payments" - ], - "type": "object", - "properties": { - "billing_period_end_date": { - "title": "Billing period end date", - "description": "When does the current billing period end", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "status": { - "title": "Status", - "description": "Current Status of account", - "type": "string", - "minLength": 1 - } - } - }, - "InvoiceItem": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the line", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Invoice": { - "type": "object", - "properties": { - "amount_due": { - "title": "Amount due", - "description": "Amount due to be paid", - "type": "integer", - "readOnly": true - }, - "amount_paid": { - "title": "Amount paid", - "description": "Amount paid", - "type": "integer", - "readOnly": true - }, - "billing_reason": { - "title": "Billing reason", - "description": "Reason for the invoice to be created", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "billing_reason_text": { - "title": "Billing reason text", - "type": "string", - "readOnly": true - }, - "created": { - "title": "Created", - "description": "When was the invoice created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "currency": { - "title": "Currency", - "description": "The currency of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoice_id": { - "title": "Invoice id", - "description": "Invoice ID", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoiceitems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvoiceItem" - }, - "readOnly": true - }, - "number": { - "title": "Number", - "description": "Invoice number", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Status of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InvoicePDF": { - "type": "object", - "properties": { - "invoice_pdf": { - "title": "Invoice pdf", - "description": "Link to the invoice in PDF", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "CardPaymentMethod": { - "type": "object", - "properties": { - "brand": { - "title": "Brand", - "description": "Card Brand (e.g. Visa)", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "exp_month": { - "title": "Exp month", - "description": "Expiration Month", - "type": "integer", - "readOnly": true - }, - "exp_year": { - "title": "Exp year", - "description": "Expiration Year", - "type": "integer", - "readOnly": true - }, - "last4": { - "title": "Last4", - "description": "Last 4 digits of card", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "PaymentMethod": { - "required": [ - "card" - ], - "type": "object", - "properties": { - "card": { - "$ref": "#/components/schemas/CardPaymentMethod" - }, - "created": { - "title": "Created", - "description": "When was the payment method created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "is_default": { - "title": "Is default", - "description": "Is this the default payment method", - "type": "boolean", - "readOnly": true - }, - "type": { - "title": "Type", - "description": "Payment Method Type", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "BillingPeriod": { - "type": "object", - "properties": { - "is_current": { - "title": "Is current", - "description": "Is this the current Billing Period", - "type": "boolean", - "readOnly": true - }, - "period_end_at": { - "title": "Period End At", - "description": "The datetime usage is recorded to.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "period_start_at": { - "title": "Period Start At", - "description": "The datetime usage is recorded from.", - "type": "string", - "format": "date-time" - }, - "trial": { - "title": "Trial", - "description": "Usage period occurred during a trial.", - "type": "boolean" - } - } - }, - "PortalUrl": { - "required": [ - "url" - ], - "type": "object", - "properties": { - "url": { - "title": "Url", - "description": "Billing Portal URL to Redirect User to", - "type": "string", - "format": "uri", - "minLength": 1 - } - } - }, - "OnDemandUsageProduct": { - "description": "Products in the On-Demand Usage Subscription", - "required": [ - "currency", - "identifier", - "price_per_unit", - "unit" - ], - "type": "object", - "properties": { - "currency": { - "title": "Currency", - "description": "Currency used for invoicing product", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Identifier for this product", - "type": "string", - "minLength": 1 - }, - "price_per_unit": { - "title": "Price per unit", - "description": "Price per unit", - "type": "string", - "format": "decimal" - }, - "unit": { - "title": "Unit", - "description": "Unit for this product", - "type": "string", - "minLength": 1 - } - } - }, - "OnDemandUsageSubcription": { - "description": "Details of On-Demand Usage Subscription", - "required": [ - "billing_interval", - "products" - ], - "type": "object", - "properties": { - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "products": { - "description": "Products in the On-Demand Usage Subscription", - "type": "array", - "items": { - "$ref": "#/components/schemas/OnDemandUsageProduct" - } - } - } - }, - "Subscription": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Subscription Amount", - "type": "string", - "format": "decimal" - }, - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "can_charge": { - "title": "Can charge", - "description": "Does the customer have payment method configured", - "type": "boolean" - }, - "cancel_at_period_end": { - "title": "Cancel at period end", - "description": "Subscription will be cancelled when billing period ends", - "type": "boolean" - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing subscription", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_delinquent": { - "title": "Is delinquent", - "description": "Does this subscription have outstanding invoices", - "type": "boolean" - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "on_demand_usage": { - "$ref": "#/components/schemas/OnDemandUsageSubcription" - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Current Status of subscription", - "type": "string", - "minLength": 1 - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - }, - "trial_end_date": { - "title": "Trial end date", - "description": "Trial End Date", - "type": "string", - "format": "date-time" - } - } - }, - "TrialDays": { - "required": [ - "identifier", - "is_trialing", - "remaining_trial_days", - "trial_days" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "remaining_trial_days": { - "title": "Remaining trial days", - "description": "Remaining Unused Trial Days", - "type": "integer" - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - } - } - }, - "OrganizationCustomDomainNestedRepo": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "backend_kind_str": { - "title": "Backend kind str", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "domain_type_str": { - "title": "Domain type str", - "type": "string", - "readOnly": true - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - } - } - }, - "PublicBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "PublicBroadcastsRepository": { - "required": [ - "gpg_keys", - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string", - "maxLength": 1000 - }, - "gpg_keys": { - "type": "array", - "items": { - "type": "integer" - }, - "uniqueItems": true - }, - "is_open_source": { - "title": "Is open source", - "type": "string", - "readOnly": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "open_source_license_name": { - "title": "Open source license name", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_license_url": { - "title": "Open source license url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Total Packages", - "description": "The total number of packages in this repository.", - "type": "integer" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 50 - } - } - }, - "DistributionVersion": { - "description": "A list of the versions for this distribution", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The textual name for this version.", - "type": "string", - "maxLength": 64 - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this version", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "DistributionFull": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "versions": { - "description": "A list of the versions for this distribution", - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "readOnly": true - } - } - }, - "Eula": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "nullable": true - }, - "number": { - "title": "Number", - "description": "A sequential identifier that increments by one for each new commit in a repository.", - "type": "integer", - "nullable": true - } - }, - "nullable": true - }, - "RepositoryToken": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTokenRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSyncRequest": { - "required": [ - "source" - ], - "type": "object", - "properties": { - "source": { - "title": "Source", - "description": "The source repository slug (in the same owner namespace).", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSync": { - "type": "object", - "properties": { - "tokens": { - "description": "The entitlements that have been synchronised.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - }, - "readOnly": true - } - } - }, - "RepositoryTokenRequestPatch": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenAction": { - "type": "object", - "properties": {} - }, - "RepositoryTokenRefreshRequest": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenRefresh": { - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageFileUploadRequest": { - "required": [ - "filename" - ], - "type": "object", - "properties": { - "filename": { - "title": "Filename", - "description": "Filename for the package file upload.", - "type": "string", - "minLength": 1 - }, - "md5_checksum": { - "title": "Md5 checksum", - "description": "MD5 checksum for a POST-based package file upload.", - "type": "string", - "maxLength": 32, - "minLength": 32 - }, - "method": { - "title": "Method", - "description": "The method to use for package file upload.", - "type": "string", - "enum": [ - "put_parts", - "put", - "post", - "presigned", - "unsigned_put" - ], - "default": "post" - }, - "sha256_checksum": { - "title": "Sha256 checksum", - "description": "SHA256 checksum for a PUT-based package file upload.", - "type": "string", - "maxLength": 64, - "minLength": 64 - } - } - }, - "PackageFileUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use when creating packages", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_fields": { - "title": "Upload fields", - "description": "The dictionary of fields that must be sent with POST uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_headers": { - "title": "Upload headers", - "description": "The dictionary of headers that must be sent with uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step POST or PUT upload", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step POST or PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "PackageFilePartsUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use uploading parts.", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step PUT upload.", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "Distribution": { - "description": "The distributions supported by this package format", - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - } - }, - "nullable": true - }, - "FormatSupportUpstream": { - "description": "The upstream support for the package format", - "required": [ - "auth_modes", - "caching", - "indexing", - "proxying" - ], - "type": "object", - "properties": { - "auth_modes": { - "description": "The authentication modes supported by the upstream format", - "type": "array", - "items": { - "type": "string", - "enum": [ - "Username and Password", - "Token", - "Certificate and Key" - ], - "default": "Username and Password" - } - }, - "caching": { - "title": "Caching", - "description": "If true the upstream format supports caching", - "type": "boolean" - }, - "indexing": { - "title": "Indexing", - "description": "If true the upstream format supports indexing", - "type": "boolean" - }, - "indexing_behavior": { - "title": "Indexing behavior", - "description": "The behavior of the upstream when indexing", - "type": "string", - "enum": [ - "Unsupported", - "Ahead-of-time (static) indexing", - "Just-in-time (dynamic) indexing" - ], - "default": "Unsupported" - }, - "proxying": { - "title": "Proxying", - "description": "If true the upstream format supports proxying", - "type": "boolean" - }, - "signature_verification": { - "title": "Signature verification", - "description": "The signature verification supported by the upstream format", - "type": "string", - "enum": [ - "Unsupported", - "Repository Metadata", - "Packages", - "Repository Metadata and Packages" - ], - "default": "Unsupported" - } - } - }, - "FormatSupport": { - "description": "A set of what the package format supports", - "required": [ - "dependencies", - "distributions", - "file_lists", - "metadata", - "upstreams", - "versioning" - ], - "type": "object", - "properties": { - "dependencies": { - "title": "Dependencies", - "description": "If true the package format supports dependencies", - "type": "boolean" - }, - "distributions": { - "title": "Distributions", - "description": "If true the package format supports distributions", - "type": "boolean" - }, - "file_lists": { - "title": "File lists", - "description": "If true the package format supports file lists", - "type": "boolean" - }, - "metadata": { - "title": "Metadata", - "description": "If true the package format supports metadata", - "type": "boolean" - }, - "upstreams": { - "$ref": "#/components/schemas/FormatSupportUpstream" - }, - "versioning": { - "title": "Versioning", - "description": "If true the package format supports versioning", - "type": "boolean" - } - } - }, - "Format": { - "required": [ - "description", - "extensions", - "name", - "premium", - "slug", - "supports" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the package format", - "type": "string", - "minLength": 1 - }, - "distributions": { - "description": "The distributions supported by this package format", - "type": "array", - "items": { - "$ref": "#/components/schemas/Distribution" - }, - "nullable": true - }, - "extensions": { - "description": "A non-exhaustive list of extensions supported", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "name": { - "title": "Name", - "description": "Name for the package format", - "type": "string", - "minLength": 1 - }, - "premium": { - "title": "Premium", - "description": "If true the package format is a premium-only feature", - "type": "boolean" - }, - "premium_plan_id": { - "title": "Premium plan id", - "description": "The minimum plan id required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "premium_plan_name": { - "title": "Premium plan name", - "description": "The minimum plan name required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug": { - "title": "Slug", - "description": "Slug for the package format", - "type": "string", - "minLength": 1 - }, - "supports": { - "$ref": "#/components/schemas/FormatSupport" - } - } - }, - "PrivilegeEscalation": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for verification.", - "type": "string", - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "description": "TOTP code for verification.", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "description": "The type of verification used.", - "type": "string", - "enum": [ - "totp", - "password" - ] - } - } - }, - "UserRequestPasswordResetRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserRequestPasswordReset": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserResetPasswordRequest": { - "required": [ - "key", - "password" - ], - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Password reset token.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Enter a new password.", - "type": "string", - "minLength": 1 - } - } - }, - "UserResetPassword": { - "type": "object", - "properties": {} - }, - "DeviceVerificationRequest": { - "required": [ - "device_id" - ], - "type": "object", - "properties": { - "device_id": { - "title": "Device id", - "description": "The device ID to verify.", - "type": "string", - "minLength": 1 - } - } - }, - "DeviceVerification": { - "type": "object", - "properties": {} - }, - "License": { - "type": "object", - "properties": { - "full_name": { - "title": "Full name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the license.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "spdx_identifier": { - "title": "Spdx identifier", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "CommonBandwidthMetricsValue": { - "description": "Average bandwidth usage in the specified period, e.g. a day", - "required": [ - "display", - "value" - ], - "type": "object", - "properties": { - "display": { - "title": "Display", - "description": "Bandwidth usage value", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "units": { - "title": "Units", - "description": "Unit of measurement e.g. bytes", - "type": "string", - "default": "bytes", - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "Human readable version of display value", - "type": "integer" - } - } - }, - "CommonBandwidthMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - } - } - }, - "CommonDownloadsMetricsValue": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "value": { - "title": "Value", - "type": "integer" - } - } - }, - "CommonDownloadsMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - } - } - }, - "CommonMetrics": { - "required": [ - "bandwidth", - "downloads" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "Number of packages with at least 1 download", - "type": "integer", - "default": 0 - }, - "bandwidth": { - "$ref": "#/components/schemas/CommonBandwidthMetrics" - }, - "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": [ - "tokens" - ], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": [ - "packages" - ], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "OidcRequest": { - "required": [ - "oidc_token", - "service_slug" - ], - "type": "object", - "properties": { - "oidc_token": { - "title": "Oidc token", - "description": "Serialized OIDC token.", - "type": "string", - "minLength": 1 - }, - "service_slug": { - "title": "Service slug", - "description": "Slug for the service account.", - "type": "string", - "minLength": 1 - } - } - }, - "Oidc": { - "type": "object", - "properties": {} - }, - "Organization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationUserTokenPolicy": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - } - } - }, - "OrganizationUserTokenPolicyRequest": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationUserTokenPolicyRequestPatch": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequest": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequestPatch": { - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "dns_alias_value": { - "title": "Dns alias value", - "description": "The CNAME value to use to publish this domain publicly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_name": { - "title": "Dns cert name", - "description": "The CNAME name to create to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_value": { - "title": "Dns cert value", - "description": "The CNAME value to use to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationDefaultObjectPrivileges": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "OrganizationDefaultObjectPrivilegesRequest": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "PackageDenyPolicy": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Block downloads" - ], - "readOnly": true, - "default": "Block downloads" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "In Progress" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PackageDenyPolicyRequest": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "PackageDenyPolicyRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationFeatureFlags": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The human/computer readable name.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationGlobalPrivileges": { - "required": [ - "label", - "privilege", - "selected" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "type": "string", - "minLength": 1 - }, - "privilege": { - "title": "Privilege", - "type": "string", - "minLength": 1 - }, - "selected": { - "title": "Selected", - "type": "boolean" - } - } - }, - "OrganizationTeamInvite": { - "required": [ - "team" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user in the team.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationInvite": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationInviteRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationInviteUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteUpdate": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteExtend": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm of the invite to be extended.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageVulnerability": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "NestedLicensePolicy": { - "required": [ - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageLicensePolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "OrganizationPackageLicensePolicy": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageLicensePolicyRequest": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackageLicensePolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageLicensePolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageLicensePolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationMembership": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "is_active": { - "title": "Is active", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipRequestPatch": { - "type": "object", - "properties": {} - }, - "OrganizationMembershipRoleUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - } - } - }, - "OrganizationMembershipRoleUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdateRequestPatch": { - "type": "object", - "properties": { - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "ProviderSettings": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackagePolicyViolationsLicense": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NestedVulnerabilityScanResults": { - "required": [ - "identifier", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackagePolicyViolationsVulnerability": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationProductFeatures": { - "type": "object", - "properties": { - "plan": { - "title": "Plan", - "description": "Plan Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationSAMLAuth": { - "required": [ - "saml_auth_enabled", - "saml_auth_enforced" - ], - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationSAMLAuthRequestPatch": { - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGroupSync": { - "required": [ - "idp_key", - "idp_value", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncRequest": { - "required": [ - "idp_key", - "idp_value", - "organization", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "organization": { - "title": "Organization", - "type": "string" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncStatus": { - "type": "object", - "properties": { - "saml_group_sync_status": { - "title": "Saml group sync status", - "type": "boolean", - "readOnly": true - } - } - }, - "OrganizationSCIM": { - "required": [ - "scim_enabled" - ], - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - }, - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationSCIMRequestPatch": { - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - } - } - }, - "OrganizationSCIMToken": { - "type": "object", - "properties": { - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "ServiceTeams": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The team role associated with the service", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - }, - "slug": { - "title": "Slug", - "description": "The teams associated with the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "Service": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "key": { - "title": "Key", - "description": "The API key of the service", - "type": "string", - "readOnly": true - }, - "key_expires_at": { - "title": "Key expires at", - "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug": { - "title": "Slug", - "description": "The slug of the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "OrganizationGeneralSettings": { - "required": [ - "email", - "name" - ], - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGeneralSettingsRequestPatch": { - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationRenameSlugRequest": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationRenameSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "OrganizationTeam": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamMembership": { - "description": "The team members", - "required": [ - "role", - "user" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamMembers": { - "required": [ - "members" - ], - "type": "object", - "properties": { - "members": { - "description": "The team members", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMembership" - } - } - } - }, - "OrganizationEditTeamMemberRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationEditTeamMember": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationTeamMember": { - "required": [ - "role" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationUsage": { - "type": "object", - "properties": { - "bandwidth_overage_limit": { - "title": "Package Delivery On-Demand Limit (GBs)", - "description": "The on-demand limit for package delivery usage (in GBs).", - "type": "integer", - "nullable": true - }, - "storage_overage_limit": { - "title": "Artifact Data On-Demand Limit (GBs)", - "description": "The on-demand limit for artifact data usage (in GBs).", - "type": "integer", - "nullable": true - } - } - }, - "OrganizationUsageUpdateRequestPatch": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "OrganizationUsageUpdate": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationPackageVulnerabilityPolicy": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageVulnerabilityPolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "DockerLayerReference": { - "type": "object", - "properties": { - "command": { - "title": "Command", - "description": "The V1 command for managing the layer.", - "type": "string", - "readOnly": true - }, - "digest": { - "title": "Digest", - "description": "The digest of the layer.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_empty": { - "title": "Is empty", - "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", - "type": "boolean", - "readOnly": true - }, - "layer_type": { - "title": "Layer type", - "description": "The type of layer this is relative to image.", - "type": "string", - "enum": [ - "Base Layer", - "Intermediate Layer", - "Final Layer" - ], - "readOnly": true, - "default": "Base Layer" - }, - "mount_type": { - "title": "Mount type", - "description": "The Mount Type for the layer.", - "type": "string", - "enum": [ - "Local", - "Remote" - ], - "readOnly": true, - "default": "Local" - }, - "processed": { - "title": "Processed", - "description": "Has the layer been processed.", - "type": "boolean", - "readOnly": true - }, - "size": { - "title": "Size", - "description": "The size of the layer (in bytes).", - "type": "integer", - "readOnly": true - } - } - }, - "DockerCosign": { - "description": "The list of docker cosign attestations", - "required": [ - "created_at" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "When this cosign artifact was created", - "type": "string", - "format": "date-time" - }, - "digest": { - "title": "Digest", - "description": "The cosign artifact digest", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "The package identifier of this signature.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - } - } - }, - "DockerManifest": { - "description": "The list of manifests associated with this Docker package", - "type": "object", - "properties": { - "digest": { - "title": "Digest", - "description": "The digest for the manifest.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "is_primary": { - "title": "Is primary", - "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", - "type": "boolean", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest Type", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "manifest_type_display": { - "title": "Manifest type display", - "type": "string", - "readOnly": true - } - } - }, - "DockerPackageAdditionalDetails": { - "type": "object", - "properties": { - "attestations": { - "$ref": "#/components/schemas/DockerCosign" - }, - "config_digest": { - "title": "Config digest", - "description": "The digest of the Docker image config", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - }, - "manifests": { - "$ref": "#/components/schemas/DockerManifest" - }, - "package_type": { - "title": "Package type", - "description": "The type of the docker package i.e. a manifest or manifest list.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "sboms": { - "$ref": "#/components/schemas/DockerCosign" - }, - "signatures": { - "$ref": "#/components/schemas/DockerCosign" - } - } - }, - "MavenPackageAdditionalDetails": { - "type": "object", - "properties": { - "extended_metadata": { - "title": "Extended metadata", - "type": "string", - "readOnly": true - } - } - }, - "Architecture": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "PackageFile": { - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true, - "nullable": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_primary": { - "title": "Is primary", - "type": "boolean", - "readOnly": true - }, - "is_synchronised": { - "title": "Is synchronised", - "type": "boolean", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the file.", - "type": "integer", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "tag": { - "title": "Tag", - "description": "Freeform descriptor that describes what the file is.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "Tags": { - "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", - "type": "object", - "properties": {} - }, - "Package": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageGroup": { - "required": [ - "count", - "last_push", - "num_downloads", - "size" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "type": "integer" - }, - "count": { - "title": "Count", - "type": "integer", - "nullable": true - }, - "last_push": { - "title": "Last push", - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "integer", - "nullable": true - }, - "size": { - "title": "Size", - "type": "integer", - "nullable": true - } - } - }, - "AlpinePackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "AlpinePackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CargoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CargoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CocoapodsPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CocoapodsPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ComposerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ComposerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ConanPackageUploadRequest": { - "required": [ - "info_file", - "manifest_file", - "metadata_file", - "package_file" - ], - "type": "object", - "properties": { - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "info_file": { - "title": "Info file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "manifest_file": { - "title": "Manifest file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "metadata_file": { - "title": "Metadata file", - "description": "The conan file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ConanPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CondaPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CondaPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CranPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "architecture": { - "title": "Architecture", - "description": "Binary package uploads for macOS should specify the architecture they were built for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CranPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DartPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DartPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DebPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "changes_file": { - "title": "Changes file", - "description": "The changes archive containing the changes made to the source and debian packaging files", - "type": "string", - "minLength": 1, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", - "type": "string", - "pattern": "^[-_.\\w]+$", - "default": "main", - "maxLength": 64, - "minLength": 1 - }, - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sources_file": { - "title": "Sources file", - "description": "The sources archive containing the source code for the binary", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DebPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DockerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DockerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "GoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "GoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HelmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provenance_file": { - "title": "Provenance file", - "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HelmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HexPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HexPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "LuarocksPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "LuarocksPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "MavenPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "extra_files": { - "description": "Extra files to include in the package. This can be a single file or multiple files.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "ivy_file": { - "title": "Ivy file", - "description": "The ivy file is an XML file describing the dependencies of the project.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "javadoc_file": { - "title": "Javadoc file", - "description": "Adds bundled Java documentation to the Maven package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "pom_file": { - "title": "Pom file", - "description": "The POM file is an XML file containing the Maven coordinates.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "sources_file": { - "title": "Sources file", - "description": "Adds bundled Java source code to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "tests_file": { - "title": "Tests file", - "description": "Adds bundled Java tests to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "MavenPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NpmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "npm_dist_tag": { - "title": "Npm dist tag", - "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", - "type": "string", - "default": "latest", - "maxLength": 255, - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NugetPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "symbols_file": { - "title": "Symbols file", - "description": "Uploads a symbols file as a separate package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NugetPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "P2PackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "P2PackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PythonPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "PythonPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RawPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "content_type": { - "title": "Content/Media Type", - "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "RawPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RpmPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RubyPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RubyPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "SwiftPackageUploadRequest": { - "required": [ - "name", - "package_file", - "scope", - "version" - ], - "type": "object", - "properties": { - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "SwiftPackageUpload": { - "required": [ - "name", - "scope", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "TerraformPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "TerraformPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VagrantPackageUploadRequest": { - "required": [ - "name", - "package_file", - "provider", - "version" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "VagrantPackageUpload": { - "required": [ - "name", - "provider", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageCopyRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - } - } - }, - "PackageCopy": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be copied to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageDependency": { - "type": "object", - "properties": { - "dep_type": { - "title": "Dep type", - "type": "string", - "enum": [ - "Depends", - "Pre-Depends", - "Recommends", - "Suggests", - "Enhances", - "Replaces", - "Breaks", - "Built-Using", - "Build-Depends", - "Build-Depends-Indep", - "Build-Conflicts", - "Build-Conflicts-Indep", - "Conflicts", - "Provides", - "Obsoletes", - "Requires", - "Runtime", - "Development", - "Compile", - "Provided", - "Test", - "System", - "Import", - "Excluded", - "Build-Requires", - "Python-Requires" - ], - "readOnly": true, - "default": "Depends" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "maxLength": 255, - "minLength": 1 - }, - "operator": { - "title": "Operator", - "type": "string", - "enum": [ - "=", - "!=", - "<", - "<<", - "<=", - ">", - ">>", - ">=", - "~=", - "~>", - "matches" - ], - "readOnly": true, - "default": "=", - "nullable": true - }, - "version": { - "title": "Version", - "type": "string", - "readOnly": true, - "maxLength": 128, - "minLength": 1, - "nullable": true - } - } - }, - "PackageDependencies": { - "required": [ - "dependencies" - ], - "type": "object", - "properties": { - "dependencies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDependency" - } - } - } - }, - "PackageMoveRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - } - } - }, - "PackageMove": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be moved to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageQuarantineRequest": { - "type": "object", - "properties": { - "release": { - "title": "Release", - "description": "If true, the package is released from quarantine.", - "type": "boolean" - }, - "restore": { - "title": "Restore", - "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", - "type": "boolean" - } - } - }, - "PackageQuarantine": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageResync": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageStatus": { - "type": "object", - "properties": { - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - } - } - }, - "PackageTagRequest": { - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Add", - "Clear", - "Replace", - "Remove" - ], - "default": "Add", - "nullable": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "tags": { - "description": "A list of tags to apply the action to. Not required for clears.", - "type": "array", - "items": { - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "default": [], - "nullable": true - } - } - }, - "PackageTag": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "Usage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageUsage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "HistoryFieldset": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/Usage" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsage" - }, - "uploaded": { - "$ref": "#/components/schemas/Usage" - } - } - }, - "UsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageUsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "HistoryFieldsetRaw": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/UsageRaw" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsageRaw" - }, - "uploaded": { - "$ref": "#/components/schemas/UsageRaw" - } - } - }, - "History": { - "required": [ - "display", - "end", - "plan", - "raw", - "start" - ], - "type": "object", - "properties": { - "days": { - "title": "Days", - "type": "integer", - "default": 0 - }, - "display": { - "$ref": "#/components/schemas/HistoryFieldset" - }, - "end": { - "title": "End", - "type": "string", - "format": "date-time" - }, - "plan": { - "title": "Plan", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "raw": { - "$ref": "#/components/schemas/HistoryFieldsetRaw" - }, - "start": { - "title": "Start", - "type": "string", - "format": "date-time" - } - } - }, - "QuotaHistory": { - "required": [ - "history" - ], - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/components/schemas/History" - } - } - } - }, - "AllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageAllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "UsageLimits": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimit" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimit" - } - } - }, - "AllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageAllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "UsageLimitsRaw": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimitRaw" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimitRaw" - } - } - }, - "UsageFieldset": { - "required": [ - "display", - "raw" - ], - "type": "object", - "properties": { - "display": { - "$ref": "#/components/schemas/UsageLimits" - }, - "raw": { - "$ref": "#/components/schemas/UsageLimitsRaw" - } - } - }, - "Quota": { - "required": [ - "usage" - ], - "type": "object", - "properties": { - "usage": { - "$ref": "#/components/schemas/UsageFieldset" - } - } - }, - "RateCheck": { - "type": "object", - "properties": { - "interval": { - "title": "Interval", - "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", - "type": "number", - "readOnly": true - }, - "limit": { - "title": "Limit", - "description": "The maximum number of requests that you are permitted to send per hour", - "type": "integer", - "readOnly": true - }, - "remaining": { - "title": "Remaining", - "description": "The number of requests that are remaining in the current rate limit window", - "type": "integer", - "readOnly": true - }, - "reset": { - "title": "Reset", - "description": "The UTC epoch timestamp at which the current rate limit window will reset", - "type": "integer", - "readOnly": true - }, - "reset_iso_8601": { - "title": "Reset iso 8601", - "description": "The ISO 8601 datetime at which the current rate limit window will reset", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "throttled": { - "title": "Throttled", - "description": "If true, throttling is currently being enforced.", - "type": "boolean", - "readOnly": true - } - } - }, - "ResourcesRateCheck": { - "type": "object", - "properties": { - "resources": { - "title": "Resources", - "description": "Rate limit values per resource", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RateCheck" - }, - "readOnly": true - } - } - }, - "RepositoryEcdsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryGpgKey": { - "required": [ - "comment" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "comment": { - "title": "Comment", - "type": "string", - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by GPG for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Repository": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "readOnly": true, - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreate": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryRequestPatch": { - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryEcdsaKeyCreate": { - "required": [ - "ecdsa_private_key" - ], - "type": "object", - "properties": { - "ecdsa_passphrase": { - "title": "Ecdsa passphrase", - "description": "The ECDSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "ecdsa_private_key": { - "title": "Ecdsa private key", - "description": "The ECDSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpCidr": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed CIDRs for this repository", - "type": "array", - "items": { - "description": "The allowed CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied CIDRs for this repository", - "type": "array", - "items": { - "description": "The denied CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpCountryCode": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed country codes for this repository", - "type": "array", - "items": { - "description": "The allowed country codes for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied country codes for this repository", - "type": "array", - "items": { - "description": "The denied country codes for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpRules": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequest": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "type": "object", - "properties": {} - }, - "RespositoryGeoIpEnableDisable": { - "type": "object", - "properties": {} - }, - "RepositoryGeoIpStatus": { - "type": "object", - "properties": { - "geoip_enabled": { - "title": "Geo/IP Restriction Enabled?", - "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", - "type": "boolean", - "readOnly": true - } - } - }, - "RepositoryGeoIpTestAddress": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP addresses to test against this repository", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "RepositoryGeoIpTestAddressResponseDict": { - "required": [ - "allowed", - "country_code", - "ip_address", - "reason" - ], - "type": "object", - "properties": { - "allowed": { - "title": "Allowed", - "description": "The result of the IP test", - "type": "boolean" - }, - "country_code": { - "title": "Country code", - "description": "The country code of the tested IP address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "ip_address": { - "title": "Ip address", - "description": "The IP address that was tested", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "The reason for the result", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpTestAddressResponse": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP address test results ordered by allowed", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" - } - } - } - }, - "RepositoryGpgKeyCreate": { - "required": [ - "gpg_private_key" - ], - "type": "object", - "properties": { - "gpg_passphrase": { - "title": "Gpg passphrase", - "description": "The GPG passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "gpg_private_key": { - "title": "Gpg private key", - "description": "The GPG private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeDict": { - "required": [ - "privilege" - ], - "type": "object", - "properties": { - "privilege": { - "title": "Privilege", - "description": "The level of privilege that the user or team should be granted to the specified repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ] - }, - "service": { - "title": "Service", - "description": "The service identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "user": { - "title": "User", - "description": "The user identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeInput": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequest": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequestPatch": { - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryRsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by RSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by RSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryRsaKeyCreate": { - "required": [ - "rsa_private_key" - ], - "type": "object", - "properties": { - "rsa_passphrase": { - "title": "Rsa passphrase", - "description": "The RSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "rsa_private_key": { - "title": "Rsa private key", - "description": "The RSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "CargoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstream": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequest": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstream": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequest": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509EcdsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryX509RsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "EulaCreate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "EulaCreateRequest": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdateRequestPatch": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "RepositoryTransferOwnerRequest": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTransferOwner": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "0.0.0", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": [ - "label", - "slug" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "MetricsRequest": { - "type": "object", - "properties": { - "backend_type": { - "title": "Backend type", - "type": "string", - "enum": [ - "DEB", - "RPM", - "RUBY", - "PYTHON", - "MAVEN", - "BOWER", - "DOCKER", - "RAW", - "CHOCOLATEY", - "NPM", - "NUGET", - "VAGRANT", - "COMPOSER", - "ALPINE", - "HELM", - "CONAN", - "CARGO", - "LUAROCKS", - "CRAN", - "GO", - "DART", - "COCOAPODS", - "TERRAFORM", - "P2", - "CONDA", - "HEX", - "SWIFT", - "DEFAULT" - ] - }, - "end_time": { - "title": "End time", - "type": "string", - "format": "date" - }, - "interval": { - "title": "Interval", - "type": "string", - "enum": [ - "day", - "week", - "month" - ], - "default": "day" - }, - "repository_slugs": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "repository_type": { - "title": "Repository type", - "type": "string", - "enum": [ - "PUBLIC", - "PRIVATE", - "OPEN_SOURCE" - ] - }, - "start_time": { - "title": "Start time", - "type": "string", - "format": "date" - }, - "user_type": { - "title": "User type", - "type": "string", - "enum": [ - "USER", - "SERVICE" - ] - } - } - }, - "AdditionalOnboardingActions": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "type": "string", - "readOnly": true - }, - "kind": { - "title": "Kind", - "type": "string", - "readOnly": true - }, - "label": { - "title": "Label", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "verb": { - "title": "Verb", - "type": "string", - "readOnly": true - } - } - }, - "AdditionalOnboardingActionsRequestPatch": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - } - } - }, - "UserDefaultOrg": { - "required": [ - "org_slug" - ], - "type": "object", - "properties": { - "org_name": { - "title": "Org name", - "description": "The descriptive name for the user's default organization.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "org_slug_perm": { - "title": "Org slug perm", - "description": "The slug_perm of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserDefaultOrgRequestPatch": { - "type": "object", - "properties": { - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "EmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddressRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "UpdatePrimaryEmail": { - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean", - "readOnly": true - } - } - }, - "EmailAddressResendConfirmation": { - "type": "object", - "properties": {} - }, - "UserOrganizationInvite": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "UserOrganizationInviteRequest": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "Location": { - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "readOnly": true - }, - "country": { - "title": "Country", - "type": "string", - "readOnly": true - } - } - }, - "UserLoginHistory": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "method": { - "title": "Method", - "type": "string", - "readOnly": true - }, - "method_context": { - "title": "Method context", - "type": "string", - "readOnly": true, - "nullable": true - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserLogoutOtherSessions": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserPasswordRequest": { - "required": [ - "confirm_new_password", - "current_password", - "new_password" - ], - "type": "object", - "properties": { - "confirm_new_password": { - "title": "Confirm new password", - "description": "Confirming the new password for the current user.", - "type": "string", - "minLength": 1 - }, - "current_password": { - "title": "Current password", - "description": "The current user's password.", - "type": "string", - "minLength": 1 - }, - "new_password": { - "title": "New password", - "description": "The new password for the current user.", - "type": "string", - "minLength": 1 - } - } - }, - "UserPassword": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Permission": { - "description": "A list of permissions to check if permissible.", - "required": [ - "name" - ], - "type": "object", - "properties": { - "args": { - "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "context": { - "title": "Context", - "description": "Any additional context for why a permission check failed.", - "type": "string", - "readOnly": true, - "maxLength": 512, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The qualified name of the permission; e.g. package.upload_packages", - "type": "string", - "maxLength": 256, - "minLength": 1 - }, - "permissible": { - "title": "Permissible", - "description": "If permissible is true, then the user has the specified permission.", - "type": "boolean", - "readOnly": true, - "default": false - } - } - }, - "Permissions": { - "required": [ - "permissions" - ], - "type": "object", - "properties": { - "permissions": { - "description": "A list of permissions to check if permissible.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } - } - } - }, - "User": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "onboarding_actions": { - "title": "Onboarding actions", - "type": "string", - "readOnly": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" - } - } - }, - "UserRequestPatch": { - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" - } - } - }, - "UserRefreshWebTokenRequest": { - "required": [ - "refresh_token" - ], - "type": "object", - "properties": { - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserRefreshWebToken": { - "required": [ - "refresh_token" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 - } - } - }, - "UserBrief": { - "type": "object", - "properties": { - "authenticated": { - "title": "Authenticated", - "description": "If true then you're logged in as a user.", - "type": "boolean", - "readOnly": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSession": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSlugRequestPatch": { - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "UserSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "SoftDeleteUser": { - "type": "object", - "properties": {} - }, - "UserAuthTokenRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "Email address to authenticate with", - "type": "string", - "format": "email", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password to authenticate with", - "type": "string", - "minLength": 1 - }, - "totp_token": { - "title": "Two-factor code", - "description": "Two-factor authentication code", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthToken": { - "type": "object", - "properties": { - "token": { - "title": "Token", - "description": "API token for the authenticated user", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "two_factor_required": { - "title": "Two factor required", - "description": "Flag indicating whether a 2FA code is required to complete authentication", - "type": "boolean", - "readOnly": true - }, - "two_factor_token": { - "title": "Two factor token", - "description": "Token to use when providing 2FA code", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserApiCidr": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "An auto-generated id that uniquely identifies the object.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1, - "nullable": true - } - } - }, - "UserApiCidrRequest": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserApiCidrRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthenticationToken": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "The time at which the API key was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm for token.", - "type": "string", - "readOnly": true - } - } - }, - "TOTPRequest": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - }, - "token": { - "title": "Token", - "description": "Token for TOTP Device confirmation", - "type": "string", - "minLength": 1 - } - } - }, - "TOTP": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "qr_code_encoded_image": { - "title": "Qr code encoded image", - "description": "Base64 Encoded QR Image", - "type": "string", - "readOnly": true - }, - "secret_key": { - "title": "Secret key", - "description": "TOTP Secret Key", - "type": "string", - "readOnly": true - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - } - } - }, - "TOTPSettings": { - "required": [ - "enforce_saml_2fa" - ], - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - }, - "is_2fa_backup_codes_enabled": { - "title": "Is 2fa backup codes enabled", - "description": "Is 2FA Backup Codes enabled for the authenticated user", - "type": "boolean", - "readOnly": true - }, - "is_2fa_enabled": { - "title": "Is 2fa enabled", - "description": "Is 2FA enabled for the authenticated user", - "type": "boolean", - "readOnly": true - } - } - }, - "TOTPSettingsRequestPatch": { - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - } - } - }, - "UserProfile": { - "required": [ - "first_name", - "last_name" - ], - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time" - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VulnerabilityScanResultsList": { - "required": [ - "identifier", - "package", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - } - } - }, - "VulnerabilityScanVersion": { - "required": [ - "major", - "minor", - "patch" - ], - "type": "object", - "properties": { - "major": { - "title": "Major", - "type": "integer" - }, - "minor": { - "title": "Minor", - "type": "integer" - }, - "operator": { - "title": "Operator", - "type": "string", - "default": "", - "maxLength": 32, - "minLength": 1 - }, - "patch": { - "title": "Patch", - "type": "integer" - }, - "raw_version": { - "title": "Raw version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - }, - "version": { - "title": "Version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 - } - } - }, - "Vulnerability": { - "required": [ - "affected_version", - "description", - "fixed_version", - "package_name", - "references", - "severity_source", - "title", - "vulnerability_id" - ], - "type": "object", - "properties": { - "affected_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 1028, - "minLength": 1 - }, - "fixed_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "package_name": { - "title": "Package name", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "references": { - "type": "array", - "items": { - "type": "string", - "maxLength": 2048, - "minLength": 1 - } - }, - "severity": { - "title": "Severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "severity_source": { - "title": "Severity source", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "title": { - "title": "Title", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "vulnerability_id": { - "title": "Vulnerability id", - "type": "string", - "maxLength": 13, - "minLength": 1 - } - } - }, - "VulnerabilityScan": { - "required": [ - "results", - "target", - "type" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Vulnerability" - } - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "type": "string", - "minLength": 1 - } - } - }, - "VulnerabilityScanResults": { - "required": [ - "identifier", - "package", - "scan_id", - "scans" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "scans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScan" - } - } - } - }, - "WebhookTemplate": { - "required": [ - "event" - ], - "type": "object", - "properties": { - "event": { - "title": "Event", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "template": { - "title": "Template", - "type": "string", - "maxLength": 4096, - "nullable": true - } - }, - "nullable": true - }, - "RepositoryWebhook": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "disable_reason_str": { - "title": "Disable reason str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "is_last_response_bad": { - "title": "Is last response bad", - "type": "boolean", - "readOnly": true - }, - "last_response_status": { - "title": "Last response status", - "type": "integer", - "readOnly": true - }, - "last_response_status_str": { - "title": "Last response status str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "num_sent": { - "title": "Num sent", - "type": "integer", - "readOnly": true - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_format_str": { - "title": "Request body format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_body_template_format_str": { - "title": "Request body template format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequest": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - }, - "RepositoryWebhookRequestPatch": { - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" - } - } - } - } - } -} diff --git a/src/app/(api)/Sidebar.tsx b/src/app/(api)/Sidebar.tsx index 29444242..4e1c621e 100644 --- a/src/app/(api)/Sidebar.tsx +++ b/src/app/(api)/Sidebar.tsx @@ -5,37 +5,16 @@ import { parseSchema, toMenuItems, toOperations } from '@/lib/swagger/parse'; export const Sidebar = async () => { const menuData = getMenuItem('api'); - // Load and process both schemas in parallel for better performance - const [schemaV3, schemaV2] = await Promise.all([ - parseSchema('v3'), - parseSchema('v2'), - ]); + const schema = await parseSchema(); + const operations = toOperations(schema); + const menuItems = toMenuItems(operations); - // Process V3 operations and menu items - const operationsV3 = toOperations(schemaV3, 'v3'); - const menuItemsV3 = toMenuItems(operationsV3); - - // Process V2 operations and menu items - const operationsV2 = toOperations(schemaV2, 'v2'); - const menuItemsV2 = toMenuItems(operationsV2); - - // Build the final menu structure const allItems = []; - if (menuData?.children) { - allItems.push(...menuData.children); - } - - // Add versioned API menus - allItems.push( - { - title: 'API v3', - children: menuItemsV3, - }, - { - title: 'API v2', - children: menuItemsV2, - }, - ); + if (menuData.children) allItems.push(...menuData.children); + allItems.push({ + title: 'API', + children: menuItems, + }); return ; }; diff --git a/src/app/(api)/api/[...slug]/page.module.css b/src/app/(api)/api/[...slug]/page.module.css new file mode 100644 index 00000000..98808eba --- /dev/null +++ b/src/app/(api)/api/[...slug]/page.module.css @@ -0,0 +1,15 @@ +.root { + padding-block: var(--space-xl); +} + +.gridRoot { + --column-inline-padding: var(--space-m); + --column-block-padding: var(--space-s); + + display: grid; + grid-template-columns: minmax(100px, min-content) minmax(150px, auto) 1fr; +} + +.fullWidth { + grid-column: 1 / -1; +} diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx new file mode 100644 index 00000000..d641888e --- /dev/null +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -0,0 +1,120 @@ +import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph } from '@/components'; +import { loadMdxInfo } from '@/lib/markdown/util'; +import { parseSchema, toOperations } from '@/lib/swagger/parse'; +import { toRouteSegments, toSlug } from '@/lib/util'; +import { notFound } from 'next/navigation'; +import type { Metadata } from 'next'; +import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; +import WithQuicknav from '@/components/WithQuickNav'; + +import styles from './page.module.css'; + +export const dynamicParams = false; + +export async function generateMetadata({ params }: PageProps): Promise { + const { slug } = await params; + const qualifiedSlug = toSlug(slug); + + // First check if this is an MDX file + const content = await loadMdxInfo('api'); + const mdxInfo = content.filter((info) => info.slug !== '').find((info) => info.slug === qualifiedSlug); + + if (mdxInfo) { + return withMdxMetadata(mdxInfo.file, { + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API', + }); + } + + // For Swagger operations, use the operation details + const schema = await parseSchema(); + const operations = toOperations(schema); + const operation = operations.find((op) => op.slug === qualifiedSlug); + + if (operation) { + return { + title: { + template: `%s | Cloudsmith API`, + default: `${operation.menuSegments.join(' - ')}`, + }, + description: operation.description, + }; + } + + return withDefaultMetadata({ + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API Reference', + }); +} + +export const generateStaticParams = async () => { + // Generate mdx slugs + const content = await loadMdxInfo('api'); + const mdxSlugs = content + .filter((info) => info.slug !== '') // Exclude the root path + .map((info) => ({ slug: info.segments })); + + // Generate swagger slugs + const schema = await parseSchema(); + const operations = toOperations(schema); + const operationSlugs = operations.map((op) => ({ slug: toRouteSegments(op.slug) })); + + return mdxSlugs.concat(operationSlugs); +}; + +const Page = async ({ params }: PageProps) => { + const { slug } = await params; + const qualifiedSlug = toSlug(slug); + + // First check if this is an MDX file + const content = await loadMdxInfo('api'); + const mdxInfo = content.find((info) => info.slug === qualifiedSlug); + + if (mdxInfo) { + const mdxModule = await import(`@/content/${mdxInfo.file}`); + const { default: Post } = mdxModule; + const lastUpdated = getLastUpdated(mdxModule); + + return ( + + + {lastUpdated ? : null} + + ); + } + + // Otherwise render as an operation + const schema = await parseSchema(); + const operations = toOperations(schema); + const operation = operations.find((op) => op.slug === qualifiedSlug); + + if (operation) { + return ( +

    + {operation.title} + {operation.description ? {operation.description} : null} + +
    + + Request + + + + + + Response + + +
    +
    + ); + } + + return notFound(); +}; + +interface PageProps { + params: Promise<{ slug: string[] }>; +} + +export default Page; diff --git a/src/app/(api)/api/page.tsx b/src/app/(api)/api/page.tsx new file mode 100644 index 00000000..6b73b3fb --- /dev/null +++ b/src/app/(api)/api/page.tsx @@ -0,0 +1,53 @@ +import { loadMdxInfo } from '@/lib/markdown/util'; +import { notFound } from 'next/navigation'; +import type { Metadata } from 'next'; +import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; +import { TimeAgo } from '@/components'; +import WithQuicknav from '@/components/WithQuickNav'; + +export const generateStaticParams = async () => { + return [{}]; // Generate just the root /api route +}; + +export async function generateMetadata(): Promise { + const content = await loadMdxInfo('api'); + const mdxInfo = content.find((info) => info.slug === ''); + + if (mdxInfo) { + return withMdxMetadata(mdxInfo.file, { + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API Reference', + }); + } + + return withDefaultMetadata({ + defaultTitle: 'API Documentation', + templatePrefix: 'Cloudsmith API Reference', + }); +} + +/** + * This page is needed in order to serve api/index.mdx with the API sidebar. + * catch-all routes don't serve index files. + */ +const Page = async () => { + const content = await loadMdxInfo('api'); + const mdxInfo = content.find((info) => info.slug === ''); + + if (mdxInfo) { + const mdxModule = await import(`@/content/${mdxInfo.file}`); + const { default: Post } = mdxModule; + const lastUpdated = getLastUpdated(mdxModule); + + return ( + + + {lastUpdated ? : null} + + ); + } + + return notFound(); +}; + +export default Page; diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index 27fd7ffd..d2e39ae0 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -5,22 +5,15 @@ import { isHttpMethod, createSlug, parseMenuSegments, apiOperationPath, createTi import { MenuItem } from '../menu/types'; /** - * Parses a specific version of the swagger schema with the Swagger Parser library to resolve refs. - * @param version - The API version to parse ('v2' or 'v3'). + * Parses the swagger schema with the Swagger Parser library to resolve refs */ -export const parseSchema = async (version: 'v2' | 'v3'): Promise => { - // Defensive check to ensure 'version' is provided. - if (!version) { - throw new Error("The 'parseSchema' function was called without a 'version' parameter. Please specify 'v2' or 'v3'."); - } - - // Assumes you have 'api-schema-v2.json' and 'api-schema-v3.json' in `src/content/schemas/` - const schemaPath = `src/content/schemas/api-schema-${version}.json`; - - const schema = (await SwaggerParser.dereference(schemaPath)) as OpenAPIV3.Document; +export const parseSchema = async (): Promise => { + const schema = (await SwaggerParser.dereference( + `src/content/schemas/api-schema-v3.json`, + )) as OpenAPIV3.Document; if (!schema) { - throw new Error(`Failed to parse API schema for ${version}`); + throw new Error('Failed to parse API schema'); } return schema; @@ -29,10 +22,8 @@ export const parseSchema = async (version: 'v2' | 'v3'): Promise { +export const toOperations = (schema: OpenAPIV3.Document): ApiOperation[] => { const operations: ApiOperation[] = []; for (const path in schema.paths) { @@ -49,7 +40,6 @@ export const toOperations = (schema: OpenAPIV3.Document, version: 'v2' | 'v3'): menuSegments, slug, title: createTitle(menuSegments), - version, // Tag the operation with its version }); } } @@ -60,7 +50,7 @@ export const toOperations = (schema: OpenAPIV3.Document, version: 'v2' | 'v3'): /** * Transforms a flat array of our custom ApiOperation type into our MenuItem type. - * Used for generating the menus. It now uses the version from each operation to create the correct path. + * Used for generating the menus. */ export const toMenuItems = (operations: ApiOperation[]): MenuItem[] => { const items: MenuItem[] = []; @@ -78,12 +68,11 @@ export const toMenuItems = (operations: ApiOperation[]): MenuItem[] => { if (!existing) { existing = { title }; if (isLast) { - existing.path = apiOperationPath(operation.slug, operation.version); // Pass version to generate path + existing.path = apiOperationPath(operation.slug); existing.method = operation.method; } else { if (!existing.path) { - // Also set path for parent menu items to make them clickable - existing.path = apiOperationPath(operation.slug, operation.version); // Pass version + existing.path = apiOperationPath(operation.slug); } existing.children = []; } diff --git a/src/lib/swagger/types.ts b/src/lib/swagger/types.ts index c4cfd383..515ca783 100644 --- a/src/lib/swagger/types.ts +++ b/src/lib/swagger/types.ts @@ -13,7 +13,6 @@ export interface ApiOperation { menuSegments: string[]; slug: string; title: string; - version: 'v2' | 'v3'; // Each operation is now tagged with a version. // From OpenAPIV3.OperationObject tags?: string[]; diff --git a/src/lib/swagger/util.ts b/src/lib/swagger/util.ts index 0e78e88d..2e7db9b9 100644 --- a/src/lib/swagger/util.ts +++ b/src/lib/swagger/util.ts @@ -44,9 +44,8 @@ export const createTitle = (menuSegments: string[]): string => { }; /** - * Turns an operation slug into a fully qualified local path to use in links. - * Now includes the version. + * Turns an operation slug into a fully qualified local path to use in links */ -export const apiOperationPath = (slug: string, version: 'v2' | 'v3'): string => { - return `/api/${version}/${slug}`; +export const apiOperationPath = (slug: string): string => { + return `/api/${slug}`; }; From 10d0672be74ca9ab4a332d7090704af742a3fa6e Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 1 Jul 2025 22:29:46 +0200 Subject: [PATCH 011/127] Revert support for 2 api spec files --- src/app/(api)/api/[[...slug]]/page.module.css | 15 --- src/app/(api)/api/[[...slug]]/page.tsx | 126 ------------------ 2 files changed, 141 deletions(-) delete mode 100644 src/app/(api)/api/[[...slug]]/page.module.css delete mode 100644 src/app/(api)/api/[[...slug]]/page.tsx diff --git a/src/app/(api)/api/[[...slug]]/page.module.css b/src/app/(api)/api/[[...slug]]/page.module.css deleted file mode 100644 index 98808eba..00000000 --- a/src/app/(api)/api/[[...slug]]/page.module.css +++ /dev/null @@ -1,15 +0,0 @@ -.root { - padding-block: var(--space-xl); -} - -.gridRoot { - --column-inline-padding: var(--space-m); - --column-block-padding: var(--space-s); - - display: grid; - grid-template-columns: minmax(100px, min-content) minmax(150px, auto) 1fr; -} - -.fullWidth { - grid-column: 1 / -1; -} diff --git a/src/app/(api)/api/[[...slug]]/page.tsx b/src/app/(api)/api/[[...slug]]/page.tsx deleted file mode 100644 index d3e6e827..00000000 --- a/src/app/(api)/api/[[...slug]]/page.tsx +++ /dev/null @@ -1,126 +0,0 @@ -import { notFound } from 'next/navigation'; -import type { Metadata } from 'next'; -import { toOperations, parseSchema } from '@/lib/swagger/parse'; -import { ApiOperation } from '@/lib/swagger/types'; -import WithQuickNav from '@/components/WithQuickNav'; -import { ApiRequest } from '@/components/ApiRequest'; -import { ApiResponses } from '@/components/ApiResponses'; -import { Heading, Paragraph, TimeAgo } from '@/components'; -import { loadMdxInfo } from '@/lib/markdown/util'; -import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; -import page from './page.module.css'; - -async function getOperation(slug: string[]): Promise { - if (!slug || slug.length < 2) return undefined; - - const version = slug[0] as 'v2' | 'v3'; - const operationSlug = slug.slice(1).join('/'); - - if (version !== 'v2' && version !== 'v3') { - return undefined; - } - - const schema = await parseSchema(version); - const operations = toOperations(schema, version); - return operations.find((op) => op.slug === operationSlug); -} - -export async function generateStaticParams() { - const [schemaV3, schemaV2] = await Promise.all([ - parseSchema('v3'), - parseSchema('v2'), - ]); - - const operationsV3 = toOperations(schemaV3, 'v3'); - const operationsV2 = toOperations(schemaV2, 'v2'); - const allOperations = [...operationsV3, ...operationsV2]; - - const operationSlugs = allOperations.map((op) => ({ - slug: [op.version, ...op.slug.split('/')], - })); - - // IMPORTANT: Add an empty slug to ensure the root /api page is generated. - // This was the cause of the disappearing menu items. - return [...operationSlugs, { slug: [] }]; -} - -export async function generateMetadata({ params }: { params: { slug?: string[] } }): Promise { - if (!params.slug || params.slug.length === 0) { - const content = await loadMdxInfo('api'); - const mdxInfo = content.find((info) => info.slug === ''); - if (mdxInfo) { - return withMdxMetadata(mdxInfo.file, { - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API Reference', - }); - } - return withDefaultMetadata({ - defaultTitle: 'API Documentation', - templatePrefix: 'Cloudsmith API Reference', - }); - } - - const operation = await getOperation(params.slug); - if(operation) { - return { - title: `${operation.title} | Cloudsmith API Reference`, - description: operation.summary, - } - } - - return { - title: 'API Documentation', - }; -} - - -export default async function Page({ params }: { params: { slug?: string[] } }) { - if (!params.slug || params.slug.length === 0) { - const content = await loadMdxInfo('api'); - const mdxInfo = content.find((info) => info.slug === ''); - - if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); - - return ( - -
    - - {lastUpdated ? : null} -
    -
    - ); - } - } - - const operation = await getOperation(params.slug as string[]); - - if (!operation) { - notFound(); - } - - return ( - -
    - {operation.title} - {operation.summary && {operation.summary}} - -
    - Request - -
    -
    - Response - -
    -
    -
    - ); -} From 4c0b0831dea6c19aed53892b3ccc62b9f046442e Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 1 Jul 2025 22:51:17 +0200 Subject: [PATCH 012/127] fix missing component import --- src/content/guides/dependency_firewall.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/content/guides/dependency_firewall.mdx b/src/content/guides/dependency_firewall.mdx index 2e8b5042..9f900058 100644 --- a/src/content/guides/dependency_firewall.mdx +++ b/src/content/guides/dependency_firewall.mdx @@ -1,3 +1,5 @@ +import { BlockImage, Video, Note } from '@/components' + # DOCS: Guide: Building a dependency firewall From fb6bda2e6e1f8cb44c216ad434a53ed3cb21a276 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 2 Jul 2025 09:25:02 +0200 Subject: [PATCH 013/127] fix missing component import --- src/content/guides/dependency_firewall.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/content/guides/dependency_firewall.mdx b/src/content/guides/dependency_firewall.mdx index 9f900058..bad77c78 100644 --- a/src/content/guides/dependency_firewall.mdx +++ b/src/content/guides/dependency_firewall.mdx @@ -138,7 +138,7 @@ For our NodeJS modules, we can use `npm` and just point it to: `https://npm.clou npm install --registry https://npm.cloudsmith.io/demo-docs/no-upstream-npm --loglevel verbose ``` -```logs +```bash npm verbose pkgid axios@^1.4.0 npm error code E404 npm error 404 Not Found - GET https://npm.cloudsmith.io/demo-docs/no-upstream-npm/axios - Not found. @@ -153,7 +153,7 @@ pip install --index-url https://dl.cloudsmith.io/public/demo-docs/no-upstream-np We get a similar error: -```logs +```bash Could not fetch URL https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/: 404 Client Error: Not Found for url: https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/ - skipping Skipping link: not a file: https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/ Given no hashes to check 0 links for project 'flask': discarding no candidates From 882425bd44811797c4b3e3f5420e1aa5d81dc849 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 2 Jul 2025 10:11:52 +0200 Subject: [PATCH 014/127] add openapi v3 compatible api schemas --- ...{api-schema-v3.json => api-schema-v1.json} | 12714 +--- src/content/schemas/api-schema-v2.json | 61246 +--------------- 2 files changed, 4303 insertions(+), 69657 deletions(-) rename src/content/schemas/{api-schema-v3.json => api-schema-v1.json} (86%) diff --git a/src/content/schemas/api-schema-v3.json b/src/content/schemas/api-schema-v1.json similarity index 86% rename from src/content/schemas/api-schema-v3.json rename to src/content/schemas/api-schema-v1.json index 8087d0c5..6499a9e0 100644 --- a/src/content/schemas/api-schema-v3.json +++ b/src/content/schemas/api-schema-v1.json @@ -1,7 +1,7 @@ { "openapi": "3.0.0", "info": { - "title": "dev", + "title": "Cloudsmith API (v1)", "description": "The API to the Cloudsmith Service", "termsOfService": "https://help.cloudsmith.io", "contact": { @@ -105,12 +105,7 @@ }, "tags": [ "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -204,12 +199,7 @@ }, "tags": [ "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -381,12 +371,6 @@ }, "tags": [ "badges" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" ] }, "parameters": [ @@ -440,197 +424,6 @@ } ] }, - "/billing/plans/": { - "parameters": [] - }, - "/billing/{owner}/account-status/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/{invoice_id}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "invoice_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/payment-methods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/periods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/portal/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/subscription/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/trial/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_kind", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/{identifier}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/distros/": { "get": { "operationId": "distros_list", @@ -673,12 +466,7 @@ }, "tags": [ "distros" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false + ] }, "parameters": [] }, @@ -721,12 +509,7 @@ }, "tags": [ "distros" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -850,14 +633,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "post": { "operationId": "entitlements_create", @@ -928,14 +704,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -1026,14 +795,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -1125,14 +887,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "entitlements_partial_update", @@ -1203,14 +958,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "delete": { "operationId": "entitlements_delete", @@ -1243,14 +991,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -1311,14 +1052,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -1379,14 +1113,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -1475,14 +1202,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -1555,14 +1275,7 @@ }, "tags": [ "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -1643,11 +1356,7 @@ }, "tags": [ "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -1713,11 +1422,7 @@ }, "tags": [ "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -1783,11 +1488,7 @@ }, "tags": [ "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + ] }, "parameters": [ { @@ -1868,11 +1569,7 @@ }, "tags": [ "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + ] }, "parameters": [ { @@ -1970,11 +1667,7 @@ }, "tags": [ "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" + ] }, "parameters": [ { @@ -2045,12 +1738,7 @@ }, "tags": [ "formats" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false + ] }, "parameters": [] }, @@ -2093,12 +1781,7 @@ }, "tags": [ "formats" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -2111,51 +1794,6 @@ } ] }, - "/internal/orgs/slugify/": { - "parameters": [] - }, - "/internal/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/user/confirm/": { - "parameters": [] - }, - "/internal/user/escalate/": { - "parameters": [] - }, - "/internal/user/login/": { - "parameters": [] - }, - "/internal/user/password/request-reset/": { - "parameters": [] - }, - "/internal/user/password/reset/": { - "parameters": [] - }, - "/internal/user/signup/": { - "parameters": [] - }, - "/internal/user/two-factor/": { - "parameters": [] - }, - "/internal/user/verify-device/": { - "parameters": [] - }, - "/internal/user/zendesk/jwt/": { - "parameters": [] - }, - "/licenses/": { - "parameters": [] - }, "/metrics/entitlements/{owner}/": { "get": { "operationId": "metrics_entitlements_account_list", @@ -2242,11 +1880,7 @@ }, "tags": [ "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", - "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" + ] }, "parameters": [ { @@ -2345,11 +1979,7 @@ }, "tags": [ "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -2456,11 +2086,7 @@ }, "tags": [ "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -2543,11 +2169,7 @@ }, "tags": [ "namespaces" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + ] }, "parameters": [] }, @@ -2590,11 +2212,7 @@ }, "tags": [ "namespaces" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" + ] }, "parameters": [ { @@ -2607,18 +2225,6 @@ } ] }, - "/openid/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/": { "get": { "operationId": "orgs_list", @@ -2681,11 +2287,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + ] }, "parameters": [] }, @@ -2728,11 +2330,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + ] }, "delete": { "operationId": "orgs_delete", @@ -2765,11 +2363,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" + ] }, "parameters": [ { @@ -2782,114 +2376,6 @@ } ] }, - "/orgs/{org}/2fa/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/enforce/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/relax/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/authentication-policy": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/company-logo/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/custom-domains/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/default-object-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/delete-org/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/deny-policy/": { "get": { "operationId": "orgs_deny-policy_list", @@ -2952,13 +2438,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_deny-policy_create", @@ -3001,13 +2481,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -3059,13 +2533,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "put": { "operationId": "orgs_deny-policy_update", @@ -3108,13 +2576,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "patch": { "operationId": "orgs_deny-policy_partial_update", @@ -3163,13 +2625,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "delete": { "operationId": "orgs_deny-policy_delete", @@ -3202,13 +2658,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -3229,42 +2679,6 @@ } ] }, - "/orgs/{org}/feature-flags/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/check/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/global-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/invites/": { "get": { "operationId": "orgs_invites_list", @@ -3337,12 +2751,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "orgs_invites_create", @@ -3391,12 +2800,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -3467,12 +2871,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "orgs_invites_delete", @@ -3505,12 +2904,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -3580,12 +2974,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -3655,12 +3044,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -3762,12 +3146,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -3842,13 +3221,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_license-policy_create", @@ -3891,13 +3264,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -3972,12 +3339,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_license-policy_evaluation_create", @@ -4026,12 +3388,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -4091,12 +3448,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -4164,13 +3516,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "put": { "operationId": "orgs_license-policy_update", @@ -4213,13 +3559,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "patch": { "operationId": "orgs_license-policy_partial_update", @@ -4268,13 +3608,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "delete": { "operationId": "orgs_license-policy_delete", @@ -4307,13 +3641,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -4334,42 +3662,6 @@ } ] }, - "/orgs/{org}/managed-users/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/disable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/enable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/members/": { "get": { "operationId": "orgs_members_list", @@ -4462,12 +3754,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -4519,12 +3806,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "orgs_members_partial_update", @@ -4573,12 +3855,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "orgs_members_delete", @@ -4611,12 +3888,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -4679,12 +3951,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -4737,12 +4004,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -4811,12 +4073,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -4885,12 +4142,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -5003,13 +4255,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_openid-connect_create", @@ -5062,13 +4308,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5120,13 +4360,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "put": { "operationId": "orgs_openid-connect_update", @@ -5179,13 +4413,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "patch": { "operationId": "orgs_openid-connect_partial_update", @@ -5244,13 +4472,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "delete": { "operationId": "orgs_openid-connect_delete", @@ -5283,13 +4505,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5310,42 +4526,6 @@ } ] }, - "/orgs/{org}/policy-violations/license/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/vulnerability/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/product-features/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/saml-authentication": { "get": { "operationId": "orgs_saml-authentication_read", @@ -5405,13 +4585,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true + ] }, "patch": { "operationId": "orgs_saml-authentication_partial_update", @@ -5480,13 +4654,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true + ] }, "parameters": [ { @@ -5571,13 +4739,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_saml-group-sync_create", @@ -5636,13 +4798,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5697,13 +4853,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5758,13 +4908,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5826,13 +4970,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5877,13 +5015,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -5904,42 +5036,6 @@ } ] }, - "/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim/refresh-token": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/services/": { "get": { "operationId": "orgs_services_list", @@ -6032,12 +5128,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "post": { "operationId": "orgs_services_create", @@ -6096,12 +5187,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -6153,12 +5239,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "orgs_services_partial_update", @@ -6217,12 +5298,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "orgs_services_delete", @@ -6255,12 +5331,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -6330,12 +5401,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -6356,30 +5422,6 @@ } ] }, - "/orgs/{org}/settings": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/slug": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/teams/": { "get": { "operationId": "orgs_teams_list", @@ -6482,12 +5524,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "orgs_teams_create", @@ -6536,12 +5573,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -6603,12 +5635,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "orgs_teams_partial_update", @@ -6667,12 +5694,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": true + ] }, "delete": { "operationId": "orgs_teams_delete", @@ -6715,12 +5737,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -6790,13 +5807,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true + ] }, "post": { "operationId": "orgs_teams_members_create", @@ -6849,13 +5860,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "put": { "operationId": "orgs_teams_members_update", @@ -6908,13 +5913,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true + ] }, "parameters": [ { @@ -6935,66 +5934,6 @@ } ] }, - "/orgs/{org}/teams/{team}/members/{member}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/memberships/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/usage-limits/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/orgs/{org}/vulnerability-policy-violation/": { "get": { "operationId": "orgs_vulnerability-policy-violation_list", @@ -7076,12 +6015,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -7156,13 +6090,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_vulnerability-policy_create", @@ -7205,13 +6133,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -7286,12 +6208,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "post": { "operationId": "orgs_vulnerability-policy_evaluation_create", @@ -7340,12 +6257,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -7405,12 +6317,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -7478,13 +6385,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "put": { "operationId": "orgs_vulnerability-policy_update", @@ -7527,13 +6428,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true + ] }, "patch": { "operationId": "orgs_vulnerability-policy_partial_update", @@ -7582,13 +6477,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "delete": { "operationId": "orgs_vulnerability-policy_delete", @@ -7621,13 +6510,7 @@ }, "tags": [ "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -7648,74 +6531,6 @@ } ] }, - "/packages/docker/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/maven/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/packages/{owner}/{repo}/": { "get": { "operationId": "packages_list", @@ -7798,12 +6613,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -7934,11 +6744,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -8011,12 +6817,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8089,12 +6890,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8167,12 +6963,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8245,12 +7036,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8323,12 +7109,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8401,12 +7182,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8479,12 +7255,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8557,12 +7328,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8635,12 +7401,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8713,12 +7474,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8791,12 +7547,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8869,12 +7620,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -8947,12 +7693,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9025,12 +7766,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9103,12 +7839,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9181,12 +7912,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9259,12 +7985,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9337,12 +8058,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9415,12 +8131,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9493,12 +8204,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9571,12 +8277,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9649,12 +8350,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9727,12 +8423,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9805,12 +8496,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9883,12 +8569,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -9954,13 +8635,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10026,13 +8701,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10098,13 +8767,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10170,13 +8833,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10242,13 +8899,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10314,13 +8965,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10386,13 +9031,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10458,13 +9097,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10530,13 +9163,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10602,13 +9229,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10674,13 +9295,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10746,13 +9361,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10818,13 +9427,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10890,13 +9493,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -10962,13 +9559,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11034,13 +9625,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11106,13 +9691,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11178,13 +9757,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11250,13 +9823,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11322,13 +9889,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11394,13 +9955,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11466,13 +10021,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11538,13 +10087,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11610,13 +10153,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11682,13 +10219,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true + ] }, "parameters": [ { @@ -11748,12 +10279,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "delete": { "operationId": "packages_delete", @@ -11786,12 +10312,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -11868,12 +10389,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -11941,12 +10457,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12023,12 +10534,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12105,12 +10611,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12178,12 +10679,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12251,12 +10747,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12324,12 +10815,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12406,12 +10892,7 @@ }, "tags": [ "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" + ] }, "parameters": [ { @@ -12479,11 +10960,7 @@ }, "tags": [ "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -12535,11 +11012,7 @@ }, "tags": [ "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -12591,11 +11064,7 @@ }, "tags": [ "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -12647,11 +11116,7 @@ }, "tags": [ "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -12703,12 +11168,6 @@ }, "tags": [ "rates" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" ] }, "parameters": [] @@ -12775,11 +11234,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false + ] }, "parameters": [] }, @@ -12855,12 +11310,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_create", @@ -12919,12 +11369,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -12986,12 +11431,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_partial_update", @@ -13050,12 +11490,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "delete": { "operationId": "repos_delete", @@ -13098,12 +11533,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -13163,11 +11593,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" + ] }, "post": { "operationId": "repos_ecdsa_create", @@ -13246,11 +11672,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + ] }, "parameters": [ { @@ -13310,11 +11732,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" + ] }, "parameters": [ { @@ -13394,13 +11812,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "put": { "operationId": "repos_geoip_update", @@ -13469,13 +11881,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "patch": { "operationId": "repos_geoip_partial_update", @@ -13544,13 +11950,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "parameters": [ { @@ -13626,12 +12026,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -13707,12 +12102,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -13792,12 +12182,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -13886,12 +12271,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -13951,12 +12331,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_gpg_create", @@ -14035,12 +12410,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -14100,12 +12470,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -14195,13 +12560,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true + ] }, "put": { "operationId": "repos_privileges_update", @@ -14253,13 +12612,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "patch": { "operationId": "repos_privileges_partial_update", @@ -14311,13 +12664,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true + ] }, "parameters": [ { @@ -14377,12 +12724,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_rsa_create", @@ -14461,12 +12803,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -14526,12 +12863,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -14614,12 +12946,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_cargo_create", @@ -14662,12 +12989,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -14727,12 +13049,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_cargo_update", @@ -14775,12 +13092,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_cargo_partial_update", @@ -14829,12 +13141,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_cargo_delete", @@ -14867,12 +13174,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -14901,34 +13203,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/composer/": { "get": { "operationId": "repos_upstream_composer_list", @@ -14991,12 +13265,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_composer_create", @@ -15039,12 +13308,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -15104,12 +13368,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_composer_update", @@ -15152,12 +13411,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_composer_partial_update", @@ -15206,12 +13460,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_composer_delete", @@ -15244,12 +13493,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -15278,34 +13522,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/cran/": { "get": { "operationId": "repos_upstream_cran_list", @@ -15368,12 +13584,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_cran_create", @@ -15416,12 +13627,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -15481,12 +13687,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_cran_update", @@ -15529,12 +13730,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_cran_partial_update", @@ -15583,12 +13779,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_cran_delete", @@ -15621,12 +13812,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -15655,34 +13841,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/dart/": { "get": { "operationId": "repos_upstream_dart_list", @@ -15745,12 +13903,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_dart_create", @@ -15793,12 +13946,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -15858,12 +14006,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_dart_update", @@ -15906,12 +14049,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_dart_partial_update", @@ -15960,12 +14098,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_dart_delete", @@ -15998,12 +14131,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -16032,34 +14160,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/deb/": { "get": { "operationId": "repos_upstream_deb_list", @@ -16122,12 +14222,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_deb_create", @@ -16170,12 +14265,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -16235,12 +14325,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_deb_update", @@ -16283,12 +14368,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_deb_partial_update", @@ -16337,12 +14417,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_deb_delete", @@ -16375,12 +14450,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -16409,34 +14479,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/docker/": { "get": { "operationId": "repos_upstream_docker_list", @@ -16499,12 +14541,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_docker_create", @@ -16547,12 +14584,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -16612,12 +14644,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_docker_update", @@ -16660,12 +14687,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_docker_partial_update", @@ -16714,12 +14736,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_docker_delete", @@ -16752,12 +14769,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -16786,34 +14798,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/go/": { "get": { "operationId": "repos_upstream_go_list", @@ -16876,12 +14860,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_go_create", @@ -16924,12 +14903,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -16989,12 +14963,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_go_update", @@ -17037,12 +15006,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_go_partial_update", @@ -17091,12 +15055,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_go_delete", @@ -17129,12 +15088,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -17163,34 +15117,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/helm/": { "get": { "operationId": "repos_upstream_helm_list", @@ -17253,12 +15179,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_helm_create", @@ -17301,12 +15222,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -17366,12 +15282,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_helm_update", @@ -17414,12 +15325,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_helm_partial_update", @@ -17468,12 +15374,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_helm_delete", @@ -17506,12 +15407,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -17540,34 +15436,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/hex/": { "get": { "operationId": "repos_upstream_hex_list", @@ -17630,12 +15498,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_hex_create", @@ -17678,12 +15541,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -17743,12 +15601,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_hex_update", @@ -17791,12 +15644,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_hex_partial_update", @@ -17845,12 +15693,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_hex_delete", @@ -17883,12 +15726,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -17917,34 +15755,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/maven/": { "get": { "operationId": "repos_upstream_maven_list", @@ -18007,12 +15817,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_maven_create", @@ -18055,12 +15860,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -18120,12 +15920,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_maven_update", @@ -18168,12 +15963,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_maven_partial_update", @@ -18222,12 +16012,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_maven_delete", @@ -18260,12 +16045,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -18294,34 +16074,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/npm/": { "get": { "operationId": "repos_upstream_npm_list", @@ -18384,12 +16136,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_npm_create", @@ -18432,12 +16179,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -18497,12 +16239,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_npm_update", @@ -18545,12 +16282,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_npm_partial_update", @@ -18599,12 +16331,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_npm_delete", @@ -18637,12 +16364,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -18671,34 +16393,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/nuget/": { "get": { "operationId": "repos_upstream_nuget_list", @@ -18761,12 +16455,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_nuget_create", @@ -18809,12 +16498,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -18874,12 +16558,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_nuget_update", @@ -18922,12 +16601,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_nuget_partial_update", @@ -18976,12 +16650,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_nuget_delete", @@ -19014,12 +16683,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -19048,34 +16712,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/python/": { "get": { "operationId": "repos_upstream_python_list", @@ -19138,12 +16774,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_python_create", @@ -19186,12 +16817,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -19251,12 +16877,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_python_update", @@ -19299,12 +16920,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_python_partial_update", @@ -19353,12 +16969,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_python_delete", @@ -19391,12 +17002,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -19425,34 +17031,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/rpm/": { "get": { "operationId": "repos_upstream_rpm_list", @@ -19515,12 +17093,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_rpm_create", @@ -19563,12 +17136,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -19628,12 +17196,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_rpm_update", @@ -19676,12 +17239,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_rpm_partial_update", @@ -19730,12 +17288,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_rpm_delete", @@ -19768,12 +17321,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -19802,34 +17350,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/ruby/": { "get": { "operationId": "repos_upstream_ruby_list", @@ -19892,12 +17412,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_ruby_create", @@ -19940,12 +17455,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -20005,12 +17515,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_ruby_update", @@ -20053,12 +17558,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_ruby_partial_update", @@ -20107,12 +17607,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_ruby_delete", @@ -20145,12 +17640,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -20179,34 +17669,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/upstream/swift/": { "get": { "operationId": "repos_upstream_swift_list", @@ -20269,12 +17731,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "post": { "operationId": "repos_upstream_swift_create", @@ -20317,12 +17774,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true + ] }, "parameters": [ { @@ -20382,12 +17834,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "put": { "operationId": "repos_upstream_swift_update", @@ -20430,12 +17877,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "patch": { "operationId": "repos_upstream_swift_partial_update", @@ -20484,12 +17926,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "delete": { "operationId": "repos_upstream_swift_delete", @@ -20522,12 +17959,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -20556,34 +17988,6 @@ } ] }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{identifier}/x509-ecdsa/": { "get": { "operationId": "repos_x509_ecdsa_list", @@ -20623,12 +18027,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -20688,12 +18087,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -20714,94 +18108,6 @@ } ] }, - "/repos/{owner}/{repo}/create-entitlement/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/{eula}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "eula", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/invalidate-cache/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{repo}/retention/": { "get": { "operationId": "repo_retention_read", @@ -20851,11 +18157,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "patch": { "operationId": "repo_retention_partial_update", @@ -20914,11 +18216,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false + ] }, "parameters": [ { @@ -20939,26 +18237,6 @@ } ] }, - "/repos/{owner}/{repo}/transfer-owner/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, "/repos/{owner}/{repo}/transfer-region/": { "post": { "operationId": "repos_transfer_region", @@ -21020,12 +18298,7 @@ }, "tags": [ "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false + ] }, "parameters": [ { @@ -21046,38 +18319,26 @@ } ] }, - "/scim/v2/Groups": { + "/status/check/basic/": { "get": { - "operationId": "scim_v2_Groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", "responses": { "200": { - "description": "OK" + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21087,7 +18348,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21096,25 +18357,35 @@ } }, "tags": [ - "scim" + "status" ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "security": [] }, - "post": { - "operationId": "scim_v2_Groups_create", - "description": "", + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", "responses": { - "201": { - "description": "Created" + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21124,7 +18395,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21133,28 +18404,31 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "storage-regions" + ] }, "parameters": [] }, - "/scim/v2/Groups/{id}": { + "/storage-regions/{slug}/": { "get": { - "operationId": "scim_v2_Groups_read", - "description": "", + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21164,7 +18438,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21173,25 +18447,40 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "storage-regions" + ] }, - "put": { - "operationId": "scim_v2_Groups_update", - "description": "", + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", "responses": { "200": { - "description": "OK" + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21201,7 +18490,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21210,62 +18499,50 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "user" + ] }, - "patch": { - "operationId": "scim_v2_Groups_partial_update", - "description": "", + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", + "201": { + "description": "Retrieved/created user API token/key.", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/UserAuthToken" } } } }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "400": { + "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Groups_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" }, - "400": { - "description": "Request could not be processed (see detail).", + "403": { + "description": "Locked out.", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21273,9 +18550,9 @@ } }, "422": { - "description": "Missing or invalid parameters (see detail).", + "description": "Failed to authenticate.", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21284,29 +18561,21 @@ } }, "tags": [ - "scim" + "user" ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" + "security": [ + { + "basic": [] } - } - ] + ] + }, + "parameters": [] }, - "/scim/v2/ResourceTypes": { + "/user/tokens/": { "get": { - "operationId": "scim_v2_ResourceTypes_list", - "description": "", + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", "parameters": [ { "name": "page", @@ -21329,12 +18598,30 @@ ], "responses": { "200": { - "description": "OK" + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": [ + "results" + ], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21344,7 +18631,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21353,25 +18640,28 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "user" + ] }, "post": { - "operationId": "scim_v2_ResourceTypes_create", - "description": "", + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", "responses": { "201": { - "description": "Created" + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } }, "400": { - "description": "Request could not be processed (see detail).", + "description": "User has already created an API key.", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21381,7 +18671,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21390,65 +18680,41 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "user" + ] }, "parameters": [] }, - "/scim/v2/ResourceTypes/{id}": { - "get": { - "operationId": "scim_v2_ResourceTypes_read", - "description": "", + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", "responses": { "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", + "description": "Successfully refreshed the API key.", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/UserAuthenticationToken" } } } }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "400": { + "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ResourceTypes_update", - "description": "", - "responses": { - "200": { - "description": "OK" }, - "400": { - "description": "Request could not be processed (see detail).", + "404": { + "description": "The specified API key cannot be found.", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21458,7 +18724,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21467,62 +18733,40 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "user" + ] }, - "patch": { - "operationId": "scim_v2_ResourceTypes_partial_update", - "description": "", + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", "responses": { "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "description": "Retrieved details for the specified user (or current user, if none was specified)", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/UserProfile" } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ResourceTypes_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21532,7 +18776,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21541,17 +18785,12 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "users" + ] }, "parameters": [ { - "name": "id", + "name": "slug", "in": "path", "required": true, "schema": { @@ -21560,10 +18799,11 @@ } ] }, - "/scim/v2/ServiceProviderConfig": { + "/vulnerabilities/{owner}/": { "get": { - "operationId": "scim_v2_ServiceProviderConfig_list", - "description": "", + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", "parameters": [ { "name": "page", @@ -21586,49 +18826,22 @@ ], "responses": { "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "description": "OK", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ServiceProviderConfig_create", - "description": "", - "responses": { - "201": { - "description": "Created" }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21638,7 +18851,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21647,28 +18860,63 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "vulnerabilities" + ] }, - "parameters": [] + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "/scim/v2/ServiceProviderConfig/{id}": { + "/vulnerabilities/{owner}/{repo}/": { "get": { - "operationId": "scim_v2_ServiceProviderConfig_read", - "description": "", + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21678,7 +18926,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21687,62 +18935,71 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "vulnerabilities" + ] }, - "put": { - "operationId": "scim_v2_ServiceProviderConfig_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" } } - }, - "tags": [ - "scim" ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ServiceProviderConfig_partial_update", - "description": "", "responses": { "200": { - "description": "OK" + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21752,7 +19009,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21761,25 +19018,56 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "vulnerabilities" + ] }, - "delete": { - "operationId": "scim_v2_ServiceProviderConfig_delete", - "description": "", + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", "responses": { - "204": { - "description": "No Content" + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21789,7 +19077,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21798,17 +19086,36 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "vulnerabilities" + ] }, "parameters": [ { - "name": "id", + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", "in": "path", "required": true, "schema": { @@ -21817,24 +19124,25 @@ } ] }, - "/scim/v2/Users": { + "/webhooks/{owner}/{repo}/": { "get": { - "operationId": "scim_v2_Users_list", - "description": "", + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", "parameters": [ { - "name": "count", + "name": "page", "in": "query", - "description": "Number of results to return per page.", + "description": "A page number within the paginated result set.", "required": false, "schema": { "type": "integer" } }, { - "name": "startIndex", + "name": "page_size", "in": "query", - "description": "The initial index from which to return the results.", + "description": "Number of results to return per page.", "required": false, "schema": { "type": "integer" @@ -21843,89 +19151,32 @@ ], "responses": { "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "description": "Retrieved the list of webhooks", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Users_create", - "description": "", - "responses": { - "201": { - "description": "Created" }, "400": { "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Users/{identifier}": { - "get": { - "operationId": "scim_v2_Users_read", - "description": "", - "responses": { - "200": { - "description": "OK" }, - "400": { - "description": "Request could not be processed (see detail).", + "404": { + "description": "Owner namespace or repository not found", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21935,7 +19186,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -21944,99 +19195,47 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "webhooks" + ] }, - "put": { - "operationId": "scim_v2_Users_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" } } } }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Users_partial_update", - "description": "", "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", + "201": { + "description": "Created the specified webhook", "content": { - "application/scim+json": { + "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/RepositoryWebhook" } } } }, - "422": { - "description": "Missing or invalid parameters (see detail).", + "400": { + "description": "Request could not be processed (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } } } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Users_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" }, - "400": { - "description": "Request could not be processed (see detail).", + "404": { + "description": "Owner namespace or repository not found", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -22046,7 +19245,7 @@ "422": { "description": "Missing or invalid parameters (see detail).", "content": { - "application/scim+json": { + "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" } @@ -22055,38 +19254,40 @@ } }, "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false + "webhooks" + ] }, "parameters": [ { - "name": "identifier", + "name": "owner", "in": "path", "required": true, "schema": { - "type": "string", - "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" } } ] }, - "/status/check/basic/": { + "/webhooks/{owner}/{repo}/{identifier}/": { "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", "responses": { "200": { - "description": "Status check was successful", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StatusBasic" + "$ref": "#/components/schemas/RepositoryWebhook" } } } @@ -22113,33 +19314,29 @@ } }, "tags": [ - "status" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" + "webhooks" ] }, - "parameters": [] - }, - "/storage-regions/": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, "responses": { "200": { - "description": "Available storage regions retrieved", + "description": "Updated the specified webhook", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } + "$ref": "#/components/schemas/RepositoryWebhook" } } } @@ -22154,6 +19351,16 @@ } } }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, "422": { "description": "Missing or invalid parameters (see detail).", "content": { @@ -22166,35 +19373,19 @@ } }, "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + "webhooks" + ] }, - "parameters": [] - }, - "/storage-regions/{slug}/": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } + "204": { + "description": "Deleted the specified webhook successfully." }, "400": { - "description": "Request could not be processed (see detail).", + "description": "The webhook cannot be deleted.", "content": { "application/json": { "schema": { @@ -22215,27 +19406,9 @@ } }, "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true + "webhooks" + ] }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/usage/{owner}/{requested_metric}/": { "parameters": [ { "name": "owner", @@ -22246,28 +19419,15 @@ } }, { - "name": "requested_metric", + "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } - } - ] - }, - "/user/additional-onboarding-actions/": { - "parameters": [] - }, - "/user/default-org/": { - "parameters": [] - }, - "/user/emails/": { - "parameters": [] - }, - "/user/emails/{email}/": { - "parameters": [ + }, { - "name": "email", + "name": "identifier", "in": "path", "required": true, "schema": { @@ -22275,1211 +19435,50 @@ } } ] - }, - "/user/emails/{email}/resend-confirmation/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io" + } + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } } } - ] - }, - "/user/invites/": { - "parameters": [] - }, - "/user/invites/{invite_id}/accept/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } } } - ] - }, - "/user/invites/{invite_id}/reject/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } } } - ] - }, - "/user/logins/": { - "parameters": [] - }, - "/user/logout/": { - "parameters": [] - }, - "/user/logout/other-sessions/": { - "parameters": [] - }, - "/user/password/": { - "parameters": [] - }, - "/user/permissions/check/": { - "parameters": [] - }, - "/user/profile/": { - "parameters": [] - }, - "/user/refresh-token/": { - "parameters": [] - }, - "/user/self/": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" } } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/user/sessions/": { - "parameters": [] - }, - "/user/slug/": { - "parameters": [] - }, - "/user/soft-delete/": { - "parameters": [] - }, - "/user/token/": { - "post": { - "operationId": "user_token_create", - "summary": "Create or retrieve API token for a user.", - "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "security": [ - { - "basic": [] - } - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions/": { - "parameters": [] - }, - "/user/token/restrictions/{token}/": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/tokens/": { - "get": { - "operationId": "user_tokens_list", - "summary": "Retrieve the API key assigned to the user that is currently authenticated.", - "description": "Retrieve the API key assigned to the user that is currently authenticated.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the user that is currently authenticated.", - "description": "Create an API key for the user that is currently authenticated.", - "responses": { - "201": { - "description": "Created an API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh/": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the user that is currently authenticated.", - "description": "Refresh the specified API key for the user that is currently authenticated.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/totp/backup/disable/": { - "parameters": [] - }, - "/user/totp/backup/enable/": { - "parameters": [] - }, - "/user/totp/confirm/": { - "parameters": [] - }, - "/user/totp/disable/": { - "parameters": [] - }, - "/user/totp/enable/": { - "parameters": [] - }, - "/user/totp/settings/": { - "parameters": [] - }, - "/user/two-factor/": { - "parameters": [] - }, - "/users/profile/{slug}/": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "users" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "CargoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } + } }, "SwiftUpstreamRequest": { "content": { @@ -23841,1303 +19840,328 @@ } } }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } - } - } - }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": [ - "detail" - ], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - }, - "fields": { - "title": "Fields", - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - } - }, - "GeoIpLocation": { - "required": [ - "city", - "continent", - "country", - "postal_code" - ], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "PlanPrice": { - "description": "List of prices for the plan", - "required": [ - "amount", - "billing_interval", - "currency" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Plan Amount", - "type": "string", - "format": "decimal" - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing", - "type": "string", - "minLength": 1 - } - } - }, - "Plan": { - "required": [ - "identifier", - "is_enterprise", - "prices" - ], - "type": "object", - "properties": { - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_enterprise": { - "title": "Is enterprise", - "description": "Is this an enterprise plan", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "prices": { - "description": "List of prices for the plan", - "type": "array", - "items": { - "$ref": "#/components/schemas/PlanPrice" - } - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - } - } - }, - "Payment": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "When was the payment created and attempted", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "failure_code": { - "title": "Failure code", - "description": "Failure Code for the payment", - "type": "string", - "minLength": 1 - }, - "failure_message": { - "title": "Failure message", - "description": "Failure message for the payment", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Payment Status", - "type": "string", - "minLength": 1 - } - } - }, - "AccountStatus": { - "required": [ - "payments" - ], - "type": "object", - "properties": { - "billing_period_end_date": { - "title": "Billing period end date", - "description": "When does the current billing period end", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "status": { - "title": "Status", - "description": "Current Status of account", - "type": "string", - "minLength": 1 - } - } - }, - "InvoiceItem": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the line", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Invoice": { - "type": "object", - "properties": { - "amount_due": { - "title": "Amount due", - "description": "Amount due to be paid", - "type": "integer", - "readOnly": true - }, - "amount_paid": { - "title": "Amount paid", - "description": "Amount paid", - "type": "integer", - "readOnly": true - }, - "billing_reason": { - "title": "Billing reason", - "description": "Reason for the invoice to be created", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "billing_reason_text": { - "title": "Billing reason text", - "type": "string", - "readOnly": true - }, - "created": { - "title": "Created", - "description": "When was the invoice created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "currency": { - "title": "Currency", - "description": "The currency of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoice_id": { - "title": "Invoice id", - "description": "Invoice ID", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoiceitems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvoiceItem" - }, - "readOnly": true - }, - "number": { - "title": "Number", - "description": "Invoice number", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Status of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InvoicePDF": { - "type": "object", - "properties": { - "invoice_pdf": { - "title": "Invoice pdf", - "description": "Link to the invoice in PDF", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "CardPaymentMethod": { - "type": "object", - "properties": { - "brand": { - "title": "Brand", - "description": "Card Brand (e.g. Visa)", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "exp_month": { - "title": "Exp month", - "description": "Expiration Month", - "type": "integer", - "readOnly": true - }, - "exp_year": { - "title": "Exp year", - "description": "Expiration Year", - "type": "integer", - "readOnly": true - }, - "last4": { - "title": "Last4", - "description": "Last 4 digits of card", - "type": "string", - "readOnly": true, - "minLength": 1 + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } } } }, - "PaymentMethod": { - "required": [ - "card" - ], - "type": "object", - "properties": { - "card": { - "$ref": "#/components/schemas/CardPaymentMethod" - }, - "created": { - "title": "Created", - "description": "When was the payment method created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "is_default": { - "title": "Is default", - "description": "Is this the default payment method", - "type": "boolean", - "readOnly": true - }, - "type": { - "title": "Type", - "description": "Payment Method Type", - "type": "string", - "readOnly": true, - "minLength": 1 + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } } } }, - "BillingPeriod": { - "type": "object", - "properties": { - "is_current": { - "title": "Is current", - "description": "Is this the current Billing Period", - "type": "boolean", - "readOnly": true - }, - "period_end_at": { - "title": "Period End At", - "description": "The datetime usage is recorded to.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "period_start_at": { - "title": "Period Start At", - "description": "The datetime usage is recorded from.", - "type": "string", - "format": "date-time" - }, - "trial": { - "title": "Trial", - "description": "Usage period occurred during a trial.", - "type": "boolean" + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } } } + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" }, - "PortalUrl": { + "basic": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "ErrorDetail": { "required": [ - "url" + "detail" ], "type": "object", "properties": { - "url": { - "title": "Url", - "description": "Billing Portal URL to Redirect User to", + "detail": { + "title": "Detail", + "description": "An extended message for the response.", "type": "string", - "format": "uri", "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } } } }, - "OnDemandUsageProduct": { - "description": "Products in the On-Demand Usage Subscription", + "GeoIpLocation": { "required": [ - "currency", - "identifier", - "price_per_unit", - "unit" + "city", + "continent", + "country", + "postal_code" ], "type": "object", "properties": { - "currency": { - "title": "Currency", - "description": "Currency used for invoicing product", + "city": { + "title": "City", "type": "string", - "minLength": 1 + "minLength": 1, + "nullable": true }, - "identifier": { - "title": "Identifier", - "description": "Identifier for this product", + "continent": { + "title": "Continent", "type": "string", - "minLength": 1 + "minLength": 1, + "nullable": true }, - "price_per_unit": { - "title": "Price per unit", - "description": "Price per unit", + "country": { + "title": "Country", "type": "string", - "format": "decimal" + "minLength": 1, + "nullable": true }, - "unit": { - "title": "Unit", - "description": "Unit for this product", + "country_code": { + "title": "Country code", "type": "string", - "minLength": 1 - } - } - }, - "OnDemandUsageSubcription": { - "description": "Details of On-Demand Usage Subscription", - "required": [ - "billing_interval", - "products" - ], - "type": "object", - "properties": { - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", + "readOnly": true + }, + "latitude": { + "title": "Latitude", "type": "string", - "minLength": 1 + "format": "decimal", + "nullable": true }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", + "longitude": { + "title": "Longitude", "type": "string", - "format": "date-time" + "format": "decimal", + "nullable": true }, - "products": { - "description": "Products in the On-Demand Usage Subscription", - "type": "array", - "items": { - "$ref": "#/components/schemas/OnDemandUsageProduct" - } + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true } } }, - "Subscription": { + "NamespaceAuditLog": { "required": [ - "identifier" + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" ], "type": "object", "properties": { - "amount": { - "title": "Amount", - "description": "Subscription Amount", + "actor": { + "title": "Actor", "type": "string", - "format": "decimal" - }, - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" + "minLength": 1, + "nullable": true }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", + "actor_ip_address": { + "title": "Actor ip address", "type": "string", - "minLength": 1 + "minLength": 1, + "nullable": true }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", + "actor_kind": { + "title": "Actor kind", "type": "string", - "minLength": 1 + "readOnly": true }, - "can_charge": { - "title": "Can charge", - "description": "Does the customer have payment method configured", - "type": "boolean" + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" }, - "cancel_at_period_end": { - "title": "Cancel at period end", - "description": "Subscription will be cancelled when billing period ends", - "type": "boolean" + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing subscription", + "actor_url": { + "title": "Actor url", "type": "string", - "minLength": 1 + "format": "uri", + "readOnly": true, + "nullable": true }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", + "context": { + "title": "Context", "type": "string", "minLength": 1 }, - "is_delinquent": { - "title": "Is delinquent", - "description": "Does this subscription have outstanding invoices", - "type": "boolean" - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", + "event": { + "title": "Event", "type": "string", "minLength": 1 }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", + "event_at": { + "title": "Event at", "type": "string", "format": "date-time" }, - "on_demand_usage": { - "$ref": "#/components/schemas/OnDemandUsageSubcription" - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", + "object": { + "title": "Object", "type": "string", "minLength": 1 }, - "status": { - "title": "Status", - "description": "Current Status of subscription", + "object_kind": { + "title": "Object kind", "type": "string", "minLength": 1 }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", + "object_slug_perm": { + "title": "Object slug perm", "type": "string", "minLength": 1 }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - }, - "trial_end_date": { - "title": "Trial end date", - "description": "Trial End Date", - "type": "string", - "format": "date-time" - } - } - }, - "TrialDays": { - "required": [ - "identifier", - "is_trialing", - "remaining_trial_days", - "trial_days" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", + "target": { + "title": "Target", "type": "string", "minLength": 1 }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "remaining_trial_days": { - "title": "Remaining trial days", - "description": "Remaining Unused Trial Days", - "type": "integer" - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - } - } - }, - "OrganizationCustomDomainNestedRepo": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", + "target_kind": { + "title": "Target kind", "type": "string", - "readOnly": true, "minLength": 1 }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", + "target_slug_perm": { + "title": "Target slug perm", "type": "string", "format": "slug", "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", "readOnly": true } } }, - "PublicBroadcastsOrganizationCustomDomains": { + "RepositoryAuditLog": { "required": [ - "repository" + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" ], "type": "object", "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "backend_kind_str": { - "title": "Backend kind str", + "actor": { + "title": "Actor", "type": "string", - "readOnly": true + "minLength": 1, + "nullable": true }, - "created_at": { - "title": "Created at", + "actor_ip_address": { + "title": "Actor ip address", "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, + "minLength": 1, "nullable": true }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "domain_type_str": { - "title": "Domain type str", + "actor_kind": { + "title": "Actor kind", "type": "string", "readOnly": true }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" }, - "host": { - "title": "Host", + "actor_slug_perm": { + "title": "Actor slug perm", "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true + "minLength": 1, + "nullable": true }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", + "actor_url": { + "title": "Actor url", "type": "string", "format": "uri", "readOnly": true, "nullable": true }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", + "context": { + "title": "Context", "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, "minLength": 1 }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", + "event": { + "title": "Event", "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, "minLength": 1 }, - "slug": { - "title": "Slug", + "event_at": { + "title": "Event at", "type": "string", - "readOnly": true - } - } - }, - "PublicBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", + "format": "date-time" + }, + "object": { + "title": "Object", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, "minLength": 1 }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", + "object_kind": { + "title": "Object kind", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, "minLength": 1 }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", + "object_slug_perm": { + "title": "Object slug perm", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, "minLength": 1 }, - "company_logo_url": { - "title": "Company logo url", + "uuid": { + "title": "Uuid", "type": "string", + "format": "uuid", "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" } } }, - "PublicBroadcastsRepository": { - "required": [ - "gpg_keys", - "name" - ], + "PackageVersionBadge": { "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string", - "maxLength": 1000 - }, - "gpg_keys": { - "type": "array", - "items": { - "type": "integer" - }, - "uniqueItems": true - }, - "is_open_source": { - "title": "Is open source", - "type": "string", - "readOnly": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "open_source_license_name": { - "title": "Open source license name", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_license_url": { - "title": "Open source license url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Total Packages", - "description": "The total number of packages in this repository.", - "type": "integer" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 50 - } - } + "properties": {} }, "DistributionVersion": { "description": "A list of the versions for this distribution", @@ -25227,6 +20251,8 @@ "title": "Number", "description": "A sequential identifier that increments by one for each new commit in a repository.", "type": "integer", + "maximum": 2147483647, + "minimum": 0, "nullable": true } }, @@ -25334,6 +20360,8 @@ "title": "Limit bandwidth", "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_bandwidth_unit": { @@ -25371,12 +20399,16 @@ "title": "Limit num clients", "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_num_downloads": { "title": "Limit num downloads", "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_package_query": { @@ -25522,6 +20554,8 @@ "title": "Limit bandwidth", "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_bandwidth_unit": { @@ -25559,12 +20593,16 @@ "title": "Limit num clients", "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_num_downloads": { "title": "Limit num downloads", "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_package_query": { @@ -25666,6 +20704,8 @@ "title": "Limit bandwidth", "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_bandwidth_unit": { @@ -25703,12 +20743,16 @@ "title": "Limit num clients", "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_num_downloads": { "title": "Limit num downloads", "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_package_query": { @@ -25787,6 +20831,8 @@ "title": "Limit bandwidth", "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_bandwidth_unit": { @@ -25824,12 +20870,16 @@ "title": "Limit num clients", "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_num_downloads": { "title": "Limit num downloads", "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_package_query": { @@ -25981,6 +21031,8 @@ "title": "Limit bandwidth", "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_bandwidth_unit": { @@ -26018,12 +21070,16 @@ "title": "Limit num clients", "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_num_downloads": { "title": "Limit num downloads", "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, "nullable": true }, "limit_package_query": { @@ -26472,143 +21528,6 @@ } } }, - "PrivilegeEscalation": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for verification.", - "type": "string", - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "description": "TOTP code for verification.", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "description": "The type of verification used.", - "type": "string", - "enum": [ - "totp", - "password" - ] - } - } - }, - "UserRequestPasswordResetRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserRequestPasswordReset": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserResetPasswordRequest": { - "required": [ - "key", - "password" - ], - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Password reset token.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Enter a new password.", - "type": "string", - "minLength": 1 - } - } - }, - "UserResetPassword": { - "type": "object", - "properties": {} - }, - "DeviceVerificationRequest": { - "required": [ - "device_id" - ], - "type": "object", - "properties": { - "device_id": { - "title": "Device id", - "description": "The device ID to verify.", - "type": "string", - "minLength": 1 - } - } - }, - "DeviceVerification": { - "type": "object", - "properties": {} - }, - "License": { - "type": "object", - "properties": { - "full_name": { - "title": "Full name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the license.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "spdx_identifier": { - "title": "Spdx identifier", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, "CommonBandwidthMetricsValue": { "description": "Average bandwidth usage in the specified period, e.g. a day", "required": [ @@ -26713,634 +21632,86 @@ "$ref": "#/components/schemas/CommonBandwidthMetrics" }, "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": [ - "tokens" - ], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": [ - "packages" - ], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "OidcRequest": { - "required": [ - "oidc_token", - "service_slug" - ], - "type": "object", - "properties": { - "oidc_token": { - "title": "Oidc token", - "description": "Serialized OIDC token.", - "type": "string", - "minLength": 1 - }, - "service_slug": { - "title": "Service slug", - "description": "Slug for the service account.", - "type": "string", - "minLength": 1 - } - } - }, - "Oidc": { - "type": "object", - "properties": {} - }, - "Organization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationUserTokenPolicy": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - } - } - }, - "OrganizationUserTokenPolicyRequest": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationUserTokenPolicyRequestPatch": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" + "$ref": "#/components/schemas/CommonDownloadsMetrics" }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", "type": "integer", - "minimum": 24, - "nullable": true + "default": 0 }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 } } }, - "OrganizationBroadcastsConfig": { + "EntitlementUsageMetrics": { "required": [ - "color_accent", - "color_background", - "color_text" + "tokens" ], "type": "object", "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" } } }, - "OrganizationBroadcastsConfigRequest": { + "PackageUsageMetrics": { "required": [ - "color_accent", - "color_background", - "color_text" + "packages" ], "type": "object", "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" + "packages": { + "$ref": "#/components/schemas/CommonMetrics" } } }, - "OrganizationBroadcastsConfigRequestPatch": { + "Namespace": { "type": "object", "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", + "name": { + "title": "Name", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 + "readOnly": true }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", + "slug": { + "title": "Slug", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", + "slug_perm": { + "title": "Slug perm", "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, "minLength": 1 }, - "company_logo": { - "title": "Company logo", + "type_name": { + "title": "Type name", "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" + "readOnly": true } } }, - "OrganizationCustomDomains": { + "Organization": { "required": [ - "repository" + "name" ], "type": "object", "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], + "country": { + "title": "Country", + "type": "string", "readOnly": true, + "maxLength": 32, + "minLength": 1, "nullable": true }, "created_at": { @@ -27349,145 +21720,34 @@ "format": "date-time", "readOnly": true }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "dns_alias_value": { - "title": "Dns alias value", - "description": "The CNAME value to use to publish this domain publicly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_name": { - "title": "Dns cert name", - "description": "The CNAME name to create to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_value": { - "title": "Dns cert value", - "description": "The CNAME value to use to allow us to generate a TLS cert.", + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", "type": "string", "readOnly": true, "nullable": true }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", + "name": { + "title": "Name", "type": "string", - "readOnly": true, "minLength": 1 }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", + "slug": { + "title": "Slug", "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", "readOnly": true }, "slug_perm": { "title": "Slug perm", "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", "readOnly": true }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationDefaultObjectPrivileges": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "OrganizationDefaultObjectPrivilegesRequest": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" + "readOnly": true, + "nullable": true } } }, @@ -27623,42 +21883,6 @@ } } }, - "OrganizationFeatureFlags": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The human/computer readable name.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationGlobalPrivileges": { - "required": [ - "label", - "privilege", - "selected" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "type": "string", - "minLength": 1 - }, - "privilege": { - "title": "Privilege", - "type": "string", - "minLength": 1 - }, - "selected": { - "title": "Selected", - "type": "boolean" - } - } - }, "OrganizationTeamInvite": { "required": [ "team" @@ -28567,318 +22791,116 @@ "title": "Provider url", "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackagePolicyViolationsLicense": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, + "format": "uri", "minLength": 1 }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true }, - "package_query_string": { - "title": "Package query string", + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", "readOnly": true, - "minLength": 1, - "nullable": true + "minLength": 1 }, "slug_perm": { "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", "type": "string", "format": "slug", "pattern": "^[-a-zA-Z0-9_]+$", "readOnly": true, "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true } } }, - "NestedVulnerabilityScanResults": { + "ProviderSettingsRequest": { "required": [ - "identifier", - "scan_id" + "claims", + "enabled", + "name", + "provider_url", + "service_accounts" ], "type": "object", "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" }, - "identifier": { - "title": "Identifier", + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", "type": "string", "minLength": 1 }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", "type": "string", "format": "uri", - "readOnly": true - } - } - }, - "PackagePolicyViolationsVulnerability": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + "minLength": 1 }, - "reasons": { + "service_accounts": { + "description": "The service accounts associated with these provider settings", "type": "array", "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true } } }, - "OrganizationProductFeatures": { + "ProviderSettingsRequestPatch": { "type": "object", "properties": { - "plan": { - "title": "Plan", - "description": "Plan Name", + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", "type": "string", + "format": "uri", "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true } } }, @@ -29037,44 +23059,6 @@ } } }, - "OrganizationSCIM": { - "required": [ - "scim_enabled" - ], - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - }, - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationSCIMRequestPatch": { - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - } - } - }, - "OrganizationSCIMToken": { - "type": "object", - "properties": { - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, "ServiceTeams": { "required": [ "slug" @@ -29253,709 +23237,6 @@ } } }, - "OrganizationGeneralSettings": { - "required": [ - "email", - "name" - ], - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGeneralSettingsRequestPatch": { - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationRenameSlugRequest": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationRenameSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, "OrganizationTeam": { "required": [ "name" @@ -30104,130 +23385,132 @@ } } }, - "OrganizationEditTeamMemberRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationEditTeamMember": { + "NestedVulnerabilityPolicy": { "type": "object", "properties": { - "role": { - "title": "Role", + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationTeamMember": { - "required": [ - "role" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", "type": "string", "readOnly": true, - "minLength": 1 + "minLength": 1, + "nullable": true }, - "role": { - "title": "Role", + "min_severity": { + "title": "Min severity", "type": "string", "enum": [ - "Manager", - "Member" - ] + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Critical" }, - "user": { - "title": "User", + "name": { + "title": "Name", "type": "string", "readOnly": true, "minLength": 1 }, - "user_id": { - "title": "User id", + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", "type": "string", "readOnly": true, - "minLength": 1 + "minLength": 1, + "nullable": true }, - "user_name": { - "title": "User name", + "slug_perm": { + "title": "Slug perm", "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", "readOnly": true, "minLength": 1 - } - } - }, - "OrganizationUsage": { - "type": "object", - "properties": { - "bandwidth_overage_limit": { - "title": "Package Delivery On-Demand Limit (GBs)", - "description": "The on-demand limit for package delivery usage (in GBs).", - "type": "integer", - "nullable": true }, - "storage_overage_limit": { - "title": "Artifact Data On-Demand Limit (GBs)", - "description": "The on-demand limit for artifact data usage (in GBs).", - "type": "integer", - "nullable": true + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true } } }, - "OrganizationUsageUpdateRequestPatch": { + "NestedVulnerabilityScanResults": { + "required": [ + "identifier", + "scan_id" + ], "type": "object", "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "OrganizationUsageUpdate": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": [ + "Unknown", + "Low", + "Medium", + "High", + "Critical" + ], + "default": "Unknown" }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", + "num_vulnerabilities": { + "title": "Num vulnerabilities", "type": "integer", - "minimum": 0, - "nullable": true + "default": 0 }, - "storage_overage_limit": { - "title": "Storage overage limit", + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", "type": "integer", - "minimum": 0, "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true } } }, @@ -30477,231 +23760,6 @@ } } }, - "DockerLayerReference": { - "type": "object", - "properties": { - "command": { - "title": "Command", - "description": "The V1 command for managing the layer.", - "type": "string", - "readOnly": true - }, - "digest": { - "title": "Digest", - "description": "The digest of the layer.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_empty": { - "title": "Is empty", - "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", - "type": "boolean", - "readOnly": true - }, - "layer_type": { - "title": "Layer type", - "description": "The type of layer this is relative to image.", - "type": "string", - "enum": [ - "Base Layer", - "Intermediate Layer", - "Final Layer" - ], - "readOnly": true, - "default": "Base Layer" - }, - "mount_type": { - "title": "Mount type", - "description": "The Mount Type for the layer.", - "type": "string", - "enum": [ - "Local", - "Remote" - ], - "readOnly": true, - "default": "Local" - }, - "processed": { - "title": "Processed", - "description": "Has the layer been processed.", - "type": "boolean", - "readOnly": true - }, - "size": { - "title": "Size", - "description": "The size of the layer (in bytes).", - "type": "integer", - "readOnly": true - } - } - }, - "DockerCosign": { - "description": "The list of docker cosign attestations", - "required": [ - "created_at" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "When this cosign artifact was created", - "type": "string", - "format": "date-time" - }, - "digest": { - "title": "Digest", - "description": "The cosign artifact digest", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "The package identifier of this signature.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - } - } - }, - "DockerManifest": { - "description": "The list of manifests associated with this Docker package", - "type": "object", - "properties": { - "digest": { - "title": "Digest", - "description": "The digest for the manifest.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "is_primary": { - "title": "Is primary", - "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", - "type": "boolean", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest Type", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "manifest_type_display": { - "title": "Manifest type display", - "type": "string", - "readOnly": true - } - } - }, - "DockerPackageAdditionalDetails": { - "type": "object", - "properties": { - "attestations": { - "$ref": "#/components/schemas/DockerCosign" - }, - "config_digest": { - "title": "Config digest", - "description": "The digest of the Docker image config", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - }, - "manifests": { - "$ref": "#/components/schemas/DockerManifest" - }, - "package_type": { - "title": "Package type", - "description": "The type of the docker package i.e. a manifest or manifest list.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "sboms": { - "$ref": "#/components/schemas/DockerCosign" - }, - "signatures": { - "$ref": "#/components/schemas/DockerCosign" - } - } - }, - "MavenPackageAdditionalDetails": { - "type": "object", - "properties": { - "extended_metadata": { - "title": "Extended metadata", - "type": "string", - "readOnly": true - } - } - }, "Architecture": { "required": [ "name" @@ -51210,359 +44268,6 @@ } }, "CargoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstream": { "required": [ "name", "upstream_url" @@ -51677,6 +44382,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -51708,7 +44414,7 @@ } } }, - "ComposerUpstreamRequest": { + "CargoUpstreamRequest": { "required": [ "name", "upstream_url" @@ -51798,6 +44504,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -51815,7 +44522,7 @@ } } }, - "ComposerUpstreamRequestPatch": { + "CargoUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -51901,6 +44608,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -51918,7 +44626,7 @@ } } }, - "CranUpstream": { + "ComposerUpstream": { "required": [ "name", "upstream_url" @@ -52033,6 +44741,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -52064,7 +44773,7 @@ } } }, - "CranUpstreamRequest": { + "ComposerUpstreamRequest": { "required": [ "name", "upstream_url" @@ -52154,6 +44863,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -52171,7 +44881,7 @@ } } }, - "CranUpstreamRequestPatch": { + "ComposerUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -52257,6 +44967,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -52274,7 +44985,7 @@ } } }, - "DartUpstream": { + "CranUpstream": { "required": [ "name", "upstream_url" @@ -52389,6 +45100,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -52420,7 +45132,7 @@ } } }, - "DartUpstreamRequest": { + "CranUpstreamRequest": { "required": [ "name", "upstream_url" @@ -52510,6 +45222,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -52527,7 +45240,7 @@ } } }, - "DartUpstreamRequestPatch": { + "CranUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -52613,6 +45326,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -52630,9 +45344,8 @@ } } }, - "DebUpstream": { + "DartUpstream": { "required": [ - "distro_versions", "name", "upstream_url" ], @@ -52662,13 +45375,6 @@ "maxLength": 64, "nullable": true }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, "created_at": { "title": "Created at", "description": "The datetime the upstream source was created.", @@ -52688,15 +45394,6 @@ "readOnly": true, "default": "N/A" }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -52729,36 +45426,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -52792,6 +45459,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -52808,14 +45476,6 @@ "format": "date-time", "readOnly": true }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -52824,19 +45484,6 @@ "maxLength": 200, "minLength": 1 }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -52844,9 +45491,8 @@ } } }, - "DebUpstreamRequest": { + "DartUpstreamRequest": { "required": [ - "distro_versions", "name", "upstream_url" ], @@ -52876,22 +45522,6 @@ "maxLength": 64, "nullable": true }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -52924,36 +45554,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -52981,16 +45581,9 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -53006,7 +45599,7 @@ } } }, - "DebUpstreamRequestPatch": { + "DartUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -53033,22 +45626,6 @@ "maxLength": 64, "nullable": true }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -53081,36 +45658,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -53138,16 +45685,9 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -53163,8 +45703,9 @@ } } }, - "DockerUpstream": { + "DebUpstream": { "required": [ + "distro_versions", "name", "upstream_url" ], @@ -53176,8 +45717,7 @@ "type": "string", "enum": [ "None", - "Username and Password", - "Certificate and Key" + "Username and Password" ], "default": "None" }, @@ -53195,6 +45735,13 @@ "maxLength": 64, "nullable": true }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, "created_at": { "title": "Created at", "description": "The datetime the upstream source was created.", @@ -53214,6 +45761,15 @@ "readOnly": true, "default": "N/A" }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -53246,6 +45802,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -53279,6 +45865,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -53295,6 +45882,14 @@ "format": "date-time", "readOnly": true }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -53303,6 +45898,19 @@ "maxLength": 200, "minLength": 1 }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -53310,33 +45918,21 @@ } } }, - "DockerUpstreamRequest": { + "DebUpstreamRequest": { "required": [ + "distro_versions", "name", "upstream_url" ], "type": "object", "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, "auth_mode": { "title": "Auth mode", "description": "The authentication mode to use when accessing this upstream. ", "type": "string", "enum": [ "None", - "Username and Password", - "Certificate and Key" + "Username and Password" ], "default": "None" }, @@ -53354,6 +45950,22 @@ "maxLength": 64, "nullable": true }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -53386,6 +45998,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -53413,8 +46055,17 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -53430,29 +46081,16 @@ } } }, - "DockerUpstreamRequestPatch": { + "DebUpstreamRequestPatch": { "type": "object", "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, "auth_mode": { "title": "Auth mode", "description": "The authentication mode to use when accessing this upstream. ", "type": "string", "enum": [ "None", - "Username and Password", - "Certificate and Key" + "Username and Password" ], "default": "None" }, @@ -53470,6 +46108,22 @@ "maxLength": 64, "nullable": true }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -53502,6 +46156,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -53529,8 +46213,17 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", @@ -53546,7 +46239,7 @@ } } }, - "GoUpstream": { + "DockerUpstream": { "required": [ "name", "upstream_url" @@ -53559,7 +46252,8 @@ "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Certificate and Key" ], "default": "None" }, @@ -53638,7 +46332,8 @@ "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", "enum": [ - "Proxy Only" + "Proxy Only", + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -53660,6 +46355,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -53691,20 +46387,33 @@ } } }, - "GoUpstreamRequest": { + "DockerUpstreamRequest": { "required": [ "name", "upstream_url" ], "type": "object", "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, "auth_mode": { "title": "Auth mode", "description": "The authentication mode to use when accessing this upstream. ", "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Certificate and Key" ], "default": "None" }, @@ -53764,7 +46473,8 @@ "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", "enum": [ - "Proxy Only" + "Proxy Only", + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -53780,6 +46490,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -53797,16 +46508,29 @@ } } }, - "GoUpstreamRequestPatch": { + "DockerUpstreamRequestPatch": { "type": "object", "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, "auth_mode": { "title": "Auth mode", "description": "The authentication mode to use when accessing this upstream. ", "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Certificate and Key" ], "default": "None" }, @@ -53866,7 +46590,8 @@ "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", "enum": [ - "Proxy Only" + "Proxy Only", + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -53882,6 +46607,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -53899,7 +46625,7 @@ } } }, - "HelmUpstream": { + "GoUpstream": { "required": [ "name", "upstream_url" @@ -54014,6 +46740,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -54045,7 +46772,7 @@ } } }, - "HelmUpstreamRequest": { + "GoUpstreamRequest": { "required": [ "name", "upstream_url" @@ -54135,6 +46862,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -54152,7 +46880,7 @@ } } }, - "HelmUpstreamRequestPatch": { + "GoUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -54238,6 +46966,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -54255,7 +46984,7 @@ } } }, - "HexUpstream": { + "HelmUpstream": { "required": [ "name", "upstream_url" @@ -54370,6 +47099,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -54401,7 +47131,7 @@ } } }, - "HexUpstreamRequest": { + "HelmUpstreamRequest": { "required": [ "name", "upstream_url" @@ -54491,6 +47221,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -54508,7 +47239,7 @@ } } }, - "HexUpstreamRequestPatch": { + "HelmUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -54594,6 +47325,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -54611,7 +47343,7 @@ } } }, - "MavenUpstream": { + "HexUpstream": { "required": [ "name", "upstream_url" @@ -54693,31 +47425,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -54729,8 +47436,7 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy", - "Cache Only" + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -54752,6 +47458,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -54776,19 +47483,6 @@ "maxLength": 200, "minLength": 1 }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -54796,7 +47490,7 @@ } } }, - "MavenUpstreamRequest": { + "HexUpstreamRequest": { "required": [ "name", "upstream_url" @@ -54859,31 +47553,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -54895,8 +47564,7 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy", - "Cache Only" + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -54912,6 +47580,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -54929,7 +47598,7 @@ } } }, - "MavenUpstreamRequestPatch": { + "HexUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -54988,31 +47657,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -55024,8 +47668,7 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy", - "Cache Only" + "Cache and Proxy" ], "default": "Proxy Only" }, @@ -55041,6 +47684,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -55058,7 +47702,7 @@ } } }, - "NpmUpstream": { + "MavenUpstream": { "required": [ "name", "upstream_url" @@ -55071,8 +47715,7 @@ "type": "string", "enum": [ "None", - "Username and Password", - "Token" + "Username and Password" ], "default": "None" }, @@ -55141,6 +47784,31 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -55152,7 +47820,8 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy" + "Cache and Proxy", + "Cache Only" ], "default": "Proxy Only" }, @@ -55174,6 +47843,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -55198,6 +47868,19 @@ "maxLength": 200, "minLength": 1 }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -55205,7 +47888,7 @@ } } }, - "NpmUpstreamRequest": { + "MavenUpstreamRequest": { "required": [ "name", "upstream_url" @@ -55218,8 +47901,7 @@ "type": "string", "enum": [ "None", - "Username and Password", - "Token" + "Username and Password" ], "default": "None" }, @@ -55269,6 +47951,31 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -55280,7 +47987,8 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy" + "Cache and Proxy", + "Cache Only" ], "default": "Proxy Only" }, @@ -55296,6 +48004,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -55313,7 +48022,7 @@ } } }, - "NpmUpstreamRequestPatch": { + "MavenUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -55322,8 +48031,7 @@ "type": "string", "enum": [ "None", - "Username and Password", - "Token" + "Username and Password" ], "default": "None" }, @@ -55373,6 +48081,31 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -55384,7 +48117,8 @@ "type": "string", "enum": [ "Proxy Only", - "Cache and Proxy" + "Cache and Proxy", + "Cache Only" ], "default": "Proxy Only" }, @@ -55400,6 +48134,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -55417,7 +48152,7 @@ } } }, - "NugetUpstream": { + "NpmUpstream": { "required": [ "name", "upstream_url" @@ -55430,7 +48165,8 @@ "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Token" ], "default": "None" }, @@ -55532,6 +48268,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -55563,7 +48300,7 @@ } } }, - "NugetUpstreamRequest": { + "NpmUpstreamRequest": { "required": [ "name", "upstream_url" @@ -55576,7 +48313,8 @@ "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Token" ], "default": "None" }, @@ -55653,6 +48391,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -55670,7 +48409,7 @@ } } }, - "NugetUpstreamRequestPatch": { + "NpmUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -55679,7 +48418,8 @@ "type": "string", "enum": [ "None", - "Username and Password" + "Username and Password", + "Token" ], "default": "None" }, @@ -55756,6 +48496,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -55773,7 +48514,7 @@ } } }, - "PythonUpstream": { + "NugetUpstream": { "required": [ "name", "upstream_url" @@ -55888,6 +48629,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -55919,7 +48661,7 @@ } } }, - "PythonUpstreamRequest": { + "NugetUpstreamRequest": { "required": [ "name", "upstream_url" @@ -56009,6 +48751,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56026,7 +48769,7 @@ } } }, - "PythonUpstreamRequestPatch": { + "NugetUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -56112,6 +48855,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56129,9 +48873,8 @@ } } }, - "RpmUpstream": { + "PythonUpstream": { "required": [ - "distro_version", "name", "upstream_url" ], @@ -56180,11 +48923,6 @@ "readOnly": true, "default": "N/A" }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56217,36 +48955,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56280,6 +48988,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -56304,19 +49013,6 @@ "maxLength": 200, "minLength": 1 }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -56324,9 +49020,8 @@ } } }, - "RpmUpstreamRequest": { + "PythonUpstreamRequest": { "required": [ - "distro_version", "name", "upstream_url" ], @@ -56356,11 +49051,6 @@ "maxLength": 64, "nullable": true }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56393,36 +49083,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56450,6 +49110,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56467,7 +49128,7 @@ } } }, - "RpmUpstreamRequestPatch": { + "PythonUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -56494,11 +49155,6 @@ "maxLength": 64, "nullable": true }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56531,36 +49187,6 @@ "maxLength": 128, "nullable": true }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56588,6 +49214,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56605,8 +49232,9 @@ } } }, - "RubyUpstream": { + "RpmUpstream": { "required": [ + "distro_version", "name", "upstream_url" ], @@ -56655,6 +49283,11 @@ "readOnly": true, "default": "N/A" }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56687,6 +49320,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56720,6 +49383,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -56744,6 +49408,19 @@ "maxLength": 200, "minLength": 1 }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": [ + "Unknown", + "Invalid", + "Valid", + "Invalid (No Key)" + ], + "readOnly": true, + "default": "Unknown" + }, "verify_ssl": { "title": "Verify SSL Certificates", "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", @@ -56751,8 +49428,9 @@ } } }, - "RubyUpstreamRequest": { + "RpmUpstreamRequest": { "required": [ + "distro_version", "name", "upstream_url" ], @@ -56782,6 +49460,11 @@ "maxLength": 64, "nullable": true }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56814,6 +49497,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56841,6 +49554,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56858,7 +49572,7 @@ } } }, - "RubyUpstreamRequestPatch": { + "RpmUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -56885,6 +49599,11 @@ "maxLength": 64, "nullable": true }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, "extra_header_1": { "title": "Header #1", "description": "The key for extra header #1 to send to upstream.", @@ -56917,6 +49636,36 @@ "maxLength": 128, "nullable": true }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": [ + "Allow All", + "Warn on Invalid", + "Reject Invalid" + ], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, "is_active": { "title": "Is active", "description": "Whether or not this upstream is active and ready for requests.", @@ -56944,6 +49693,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -56961,7 +49711,7 @@ } } }, - "SwiftUpstream": { + "RubyUpstream": { "required": [ "name", "upstream_url" @@ -57076,6 +49826,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "slug_perm": { @@ -57107,7 +49858,7 @@ } } }, - "SwiftUpstreamRequest": { + "RubyUpstreamRequest": { "required": [ "name", "upstream_url" @@ -57197,6 +49948,7 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { @@ -57214,7 +49966,7 @@ } } }, - "SwiftUpstreamRequestPatch": { + "RubyUpstreamRequestPatch": { "type": "object", "properties": { "auth_mode": { @@ -57300,1372 +50052,684 @@ "title": "Priority", "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", "type": "integer", + "maximum": 32767, "minimum": 1 }, "upstream_url": { "title": "Upstream URL", "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509EcdsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryX509RsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "EulaCreate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "EulaCreateRequest": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdateRequestPatch": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "RepositoryTransferOwnerRequest": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTransferOwner": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "0.0.0", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": [ - "label", - "slug" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "MetricsRequest": { - "type": "object", - "properties": { - "backend_type": { - "title": "Backend type", - "type": "string", - "enum": [ - "DEB", - "RPM", - "RUBY", - "PYTHON", - "MAVEN", - "BOWER", - "DOCKER", - "RAW", - "CHOCOLATEY", - "NPM", - "NUGET", - "VAGRANT", - "COMPOSER", - "ALPINE", - "HELM", - "CONAN", - "CARGO", - "LUAROCKS", - "CRAN", - "GO", - "DART", - "COCOAPODS", - "TERRAFORM", - "P2", - "CONDA", - "HEX", - "SWIFT", - "DEFAULT" - ] - }, - "end_time": { - "title": "End time", - "type": "string", - "format": "date" - }, - "interval": { - "title": "Interval", - "type": "string", - "enum": [ - "day", - "week", - "month" - ], - "default": "day" - }, - "repository_slugs": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "repository_type": { - "title": "Repository type", - "type": "string", - "enum": [ - "PUBLIC", - "PRIVATE", - "OPEN_SOURCE" - ] - }, - "start_time": { - "title": "Start time", - "type": "string", - "format": "date" + "format": "uri", + "maxLength": 200, + "minLength": 1 }, - "user_type": { - "title": "User type", - "type": "string", - "enum": [ - "USER", - "SERVICE" - ] + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" } } }, - "AdditionalOnboardingActions": { + "SwiftUpstream": { + "required": [ + "name", + "upstream_url" + ], "type": "object", "properties": { - "action_type": { - "title": "Action type", + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", "type": "string", "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] + "None", + "Username and Password" + ], + "default": "None" }, - "completed": { - "title": "Completed", - "type": "boolean" + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true }, "created_at": { "title": "Created at", + "description": "The datetime the upstream source was created.", "type": "string", "format": "date-time", "readOnly": true }, - "key": { - "title": "Key", + "disable_reason": { + "title": "Disable reason", "type": "string", - "readOnly": true + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" }, - "kind": { - "title": "Kind", + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", "type": "string", - "readOnly": true + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true }, - "label": { - "title": "Label", + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", "type": "string", - "readOnly": true + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true }, - "updated_at": { - "title": "Updated at", + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true }, - "verb": { - "title": "Verb", - "type": "string", - "readOnly": true - } - } - }, - "AdditionalOnboardingActionsRequestPatch": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true }, - "completed": { - "title": "Completed", + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", "type": "boolean" - } - } - }, - "UserDefaultOrg": { - "required": [ - "org_slug" - ], - "type": "object", - "properties": { - "org_name": { - "title": "Org name", - "description": "The descriptive name for the user's default organization.", + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", - "readOnly": true, - "minLength": 1 + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" }, - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, "minLength": 1 }, - "org_slug_perm": { - "title": "Org slug perm", - "description": "The slug_perm of the user's default organization.", + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", "type": "string", "format": "slug", "pattern": "^[-a-zA-Z0-9_]+$", "readOnly": true, "minLength": 1 - } - } - }, - "UserDefaultOrgRequestPatch": { - "type": "object", - "properties": { - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "EmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 }, - "identifier": { - "title": "Identifier", + "updated_at": { + "title": "Updated at", "type": "string", + "format": "date-time", "readOnly": true }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddressRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", "type": "string", - "format": "email", + "format": "uri", + "maxLength": 200, "minLength": 1 }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", "type": "boolean" } } }, - "CreateEmailAddress": { + "SwiftUpstreamRequest": { "required": [ - "email" + "name", + "upstream_url" ], "type": "object", "properties": { - "email": { - "title": "Email", + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", "type": "string", - "format": "email", - "minLength": 1 + "enum": [ + "None", + "Username and Password" + ], + "default": "None" }, - "identifier": { - "title": "Identifier", + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" + "maxLength": 4096, + "nullable": true }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "UpdatePrimaryEmail": { - "type": "object", - "properties": { - "email": { - "title": "Email address", + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1 + "maxLength": 64, + "nullable": true }, - "identifier": { - "title": "Identifier", + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true }, - "verified": { - "title": "Verified", - "type": "boolean", - "readOnly": true - } - } - }, - "EmailAddressResendConfirmation": { - "type": "object", - "properties": {} - }, - "UserOrganizationInvite": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", "type": "string", - "format": "date-time" + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true }, - "inviter": { - "title": "Inviter", + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "readOnly": true, - "minLength": 1 + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true }, - "inviter_url": { - "title": "Inviter url", + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "format": "uri", - "readOnly": true, + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, "nullable": true }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" + "Proxy Only", + "Cache and Proxy" ], - "default": "Member" + "default": "Proxy Only" }, - "slug_perm": { - "title": "Slug perm", + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, "minLength": 1 }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "UserOrganizationInviteRequest": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 }, - "slug_perm": { - "title": "Slug perm", + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, + "format": "uri", + "maxLength": 200, "minLength": 1 }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "Location": { - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "readOnly": true - }, - "country": { - "title": "Country", - "type": "string", - "readOnly": true + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" } } }, - "UserLoginHistory": { + "SwiftUpstreamRequestPatch": { "type": "object", "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", "type": "string", - "readOnly": true + "enum": [ + "None", + "Username and Password" + ], + "default": "None" }, - "ip_address": { - "title": "IP Address", + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", "type": "string", - "readOnly": true, - "minLength": 1 - }, - "location": { - "$ref": "#/components/schemas/Location" + "maxLength": 4096, + "nullable": true }, - "method": { - "title": "Method", + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", "type": "string", - "readOnly": true + "maxLength": 64, + "nullable": true }, - "method_context": { - "title": "Method context", + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", "type": "string", - "readOnly": true, + "pattern": "^[-\\w]+$", + "maxLength": 64, "nullable": true }, - "operating_system": { - "title": "Operating system", + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", "type": "string", - "readOnly": true + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true }, - "user_agent": { - "title": "User agent", + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "readOnly": true, + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, "nullable": true - } - } - }, - "UserLogoutOtherSessions": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserPasswordRequest": { - "required": [ - "confirm_new_password", - "current_password", - "new_password" - ], - "type": "object", - "properties": { - "confirm_new_password": { - "title": "Confirm new password", - "description": "Confirming the new password for the current user.", + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", "type": "string", - "minLength": 1 + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true }, - "current_password": { - "title": "Current password", - "description": "The current user's password.", - "type": "string", - "minLength": 1 + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" }, - "new_password": { - "title": "New password", - "description": "The new password for the current user.", - "type": "string", - "minLength": 1 - } - } - }, - "UserPassword": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", "type": "string", - "readOnly": true, - "minLength": 1 + "enum": [ + "Proxy Only", + "Cache and Proxy" + ], + "default": "Proxy Only" }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", "type": "string", - "readOnly": true, + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, "minLength": 1 - } - } - }, - "Permission": { - "description": "A list of permissions to check if permissible.", - "required": [ - "name" - ], - "type": "object", - "properties": { - "args": { - "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true }, - "context": { - "title": "Context", - "description": "Any additional context for why a permission check failed.", - "type": "string", - "readOnly": true, - "maxLength": 512, - "minLength": 1, - "nullable": true + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 }, - "name": { - "title": "Name", - "description": "The qualified name of the permission; e.g. package.upload_packages", + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", "type": "string", - "maxLength": 256, + "format": "uri", + "maxLength": 200, "minLength": 1 }, - "permissible": { - "title": "Permissible", - "description": "If permissible is true, then the user has the specified permission.", - "type": "boolean", - "readOnly": true, - "default": false - } - } - }, - "Permissions": { - "required": [ - "permissions" - ], - "type": "object", - "properties": { - "permissions": { - "description": "A list of permissions to check if permissible.", - "type": "array", - "items": { - "$ref": "#/components/schemas/Permission" - } + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" } } }, - "User": { + "RepositoryX509EcdsaCertificate": { "type": "object", "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true }, - "country": { - "title": "Country", + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", "type": "string", + "readOnly": true, "nullable": true }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", "type": "string", - "format": "email", "readOnly": true, - "minLength": 1, "nullable": true }, - "first_name": { - "title": "First name", + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true + "readOnly": true }, - "job_title": { - "title": "Job title", + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", "type": "string", - "maxLength": 64, - "nullable": true + "readOnly": true }, - "last_name": { - "title": "Last name", + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", "type": "string", - "maxLength": 120, - "minLength": 1, + "readOnly": true, "nullable": true }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", "type": "string", - "maxLength": 60, - "nullable": true + "readOnly": true }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", + "created_at": { + "title": "Created at", "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true }, - "onboarding_actions": { - "title": "Onboarding actions", + "issuing_status": { + "title": "Issuing status", "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", "readOnly": true }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", "type": "string", - "format": "uri", "readOnly": true, "nullable": true }, - "self_url": { - "title": "Self url", + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", "type": "string", - "readOnly": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", + "readOnly": true, "nullable": true }, - "slug": { - "title": "Slug", + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", "type": "string", "readOnly": true }, - "slug_perm": { - "title": "Slug perm", + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", "type": "string", "readOnly": true }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, "nullable": true }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "created_at": { + "title": "Created at", "type": "string", - "maxLength": 1024, - "nullable": true + "format": "date-time", + "readOnly": true }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", "type": "boolean", - "nullable": true + "readOnly": true }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "issuing_status": { + "title": "Issuing status", "type": "string", "enum": [ - "Public", - "Private" + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" ], - "default": "Private" + "default": "Certificate is pending to be issued" } } }, - "UserRequestPatch": { + "RepositoryRetentionRules": { "type": "object", "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 }, - "country": { - "title": "Country", - "type": "string", - "nullable": true + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", "type": "string", - "maxLength": 60, "nullable": true }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", "nullable": true }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" + "default": "default" } } }, - "UserRefreshWebTokenRequest": { - "required": [ - "refresh_token" - ], + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { "type": "object", "properties": { - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", "type": "string", + "readOnly": true, + "default": "1.729.1", "minLength": 1 } } }, - "UserRefreshWebToken": { + "StorageRegion": { "required": [ - "refresh_token" + "label", + "slug" ], "type": "object", "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", + "label": { + "title": "Label", + "description": "Name of the storage region", "type": "string", - "readOnly": true, "minLength": 1 }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", + "slug": { + "title": "Slug", + "description": "Slug for the storage region", "type": "string", "minLength": 1 } @@ -58724,90 +50788,6 @@ } } }, - "UserSession": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "operating_system": { - "title": "Operating system", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserSlugRequestPatch": { - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "UserSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "SoftDeleteUser": { - "type": "object", - "properties": {} - }, "UserAuthTokenRequest": { "type": "object", "properties": { @@ -58857,55 +50837,6 @@ } } }, - "UserApiCidr": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "An auto-generated id that uniquely identifies the object.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1, - "nullable": true - } - } - }, - "UserApiCidrRequest": { - "required": [ - "cidr" - ], - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, - "UserApiCidrRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 - } - } - }, "UserAuthenticationToken": { "type": "object", "properties": { @@ -58930,107 +50861,6 @@ } } }, - "TOTPRequest": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - }, - "token": { - "title": "Token", - "description": "Token for TOTP Device confirmation", - "type": "string", - "minLength": 1 - } - } - }, - "TOTP": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" - }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] - }, - "qr_code_encoded_image": { - "title": "Qr code encoded image", - "description": "Base64 Encoded QR Image", - "type": "string", - "readOnly": true - }, - "secret_key": { - "title": "Secret key", - "description": "TOTP Secret Key", - "type": "string", - "readOnly": true - }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - } - } - }, - "TOTPSettings": { - "required": [ - "enforce_saml_2fa" - ], - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - }, - "is_2fa_backup_codes_enabled": { - "title": "Is 2fa backup codes enabled", - "description": "Is 2FA Backup Codes enabled for the authenticated user", - "type": "boolean", - "readOnly": true - }, - "is_2fa_enabled": { - "title": "Is 2fa enabled", - "description": "Is 2FA enabled for the authenticated user", - "type": "boolean", - "readOnly": true - } - } - }, - "TOTPSettingsRequestPatch": { - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" - } - } - }, "UserProfile": { "required": [ "first_name", @@ -59808,4 +51638,4 @@ } } } -} +} \ No newline at end of file diff --git a/src/content/schemas/api-schema-v2.json b/src/content/schemas/api-schema-v2.json index 8087d0c5..723b0a69 100644 --- a/src/content/schemas/api-schema-v2.json +++ b/src/content/schemas/api-schema-v2.json @@ -1,59811 +1,2627 @@ { - "openapi": "3.0.0", + "openapi": "3.0.3", "info": { - "title": "dev", + "title": "Cloudsmith API", + "version": "1.729.1 (v2)", "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io", + "termsOfService": "https://help.cloudsmith.io/docs/legal-policies-overview", "contact": { + "email": "support@cloudsmith.io", "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io", - "email": "support@cloudsmith.io" + "url": "https://help.cloudsmith.io/" }, "license": { "name": "MIT", "url": "https://opensource.org/licenses/MIT" - }, - "version": "v1" - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] } - ], + }, "paths": { - "/audit-log/{owner}/": { + "/workspaces/{workspace}/policies/": { "get": { - "operationId": "audit_log_namespace_list", - "summary": "Lists audit log entries for a specific namespace.", - "description": "Lists audit log entries for a specific namespace.", + "operationId": "workspaces_policies_list", + "description": "List policies.", "parameters": [ { "name": "page", + "required": false, "in": "query", "description": "A page number within the paginated result set.", - "required": false, "schema": { "type": "integer" } }, { "name": "page_size", + "required": false, "in": "query", "description": "Number of results to return per page.", - "required": false, "schema": { "type": "integer" } }, { - "name": "query", "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, + "name": "query", "schema": { "type": "string" + }, + "description": "A search string to limit results by name. Legal fields are: `name`. Boolean operators may be used to construct intricate queries. Omitting boolean operators is interpreted as an implicit `AND`.", + "examples": { + "PoliciesNamedFooOrBar": { + "value": "name: foo OR name: bar", + "summary": "Policies named foo or bar" + } } + }, + { + "in": "query", + "name": "sort", + "schema": { + "type": "string", + "default": "-created_at" + }, + "description": "A comma-separated string of fields to sort by. Legal fields are: `created_at`, `name`, `version`, `updated_at`. Descending order can be expressed by prepending `-` to a field name.", + "examples": { + "`version`Descending,`updatedAt`Ascending": { + "value": "-version,updated_at", + "summary": "`version` descending, `updated_at` ascending" + } + } + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "security": [ + { + "apikey": [] + }, + { + "basic": [] } ], "responses": { "200": { - "description": "Retrieved the list of audit log entries", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NamespaceAuditLog" - } + "$ref": "#/components/schemas/PaginatedPolicyList" } } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } + }, + "description": "" + } + } + }, + "post": { + "operationId": "workspaces_policies_create", + "description": "Create a policy.", + "parameters": [ + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } } }, - "402": { - "description": "Audit logs are not active; upgrade your account!", + "required": true + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/Policy" } } - } + }, + "description": "" }, "422": { - "description": "Missing or invalid parameters (see detail).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" + }, + "examples": { + "MaxPoliciesReached": { + "value": { + "detail": "Invalid input.", + "code": "invalid", + "fields": { + "non_field_errors": [ + { + "string": "Maximum number of policies reached.", + "code": "max_policies_reached" + } + ] + } + }, + "summary": "Max Policies Reached", + "description": "Occurs when the number of repositories associated with a workspace is already at the maximum." + } } } - } - } - }, - "tags": [ - "audit-log" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_audit_log(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" + }, + "description": "" } } - ] + } }, - "/audit-log/{owner}/{repo}/": { + "/workspaces/{workspace}/policies/{policy}/": { "get": { - "operationId": "audit_log_repo_list", - "summary": "Lists audit log entries for a specific repository.", - "description": "Lists audit log entries for a specific repository.", + "operationId": "workspaces_policies_retrieve", + "description": "Retrieve a policy.", "parameters": [ { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, + "in": "path", + "name": "policy", "schema": { - "type": "integer" - } + "type": "string" + }, + "required": true }, { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, + "in": "path", + "name": "workspace", "schema": { - "type": "integer" - } + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "security": [ + { + "apikey": [] }, { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } + "basic": [] } ], "responses": { "200": { - "description": "Retrieved the list of audit log entries", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryAuditLog" - } + "$ref": "#/components/schemas/Policy" } } - } + }, + "description": "" + } + } + }, + "put": { + "operationId": "workspaces_policies_update", + "description": "Update a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" + }, + "required": true }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } } }, - "402": { - "description": "Audit logs are not active; upgrade your account!", + "required": true + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/Policy" } } + }, + "description": "" + } + } + }, + "patch": { + "operationId": "workspaces_policies_partial_update", + "description": "Partially update a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchedPolicy" + } } + } + }, + "security": [ + { + "apikey": [] }, - "422": { - "description": "Missing or invalid parameters (see detail).", + { + "basic": [] + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/Policy" } } - } + }, + "description": "" } - }, + } + }, + "delete": { + "operationId": "workspaces_policies_destroy", + "description": "Delete a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], "tags": [ - "audit-log" + "workspaces" ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_audit_log(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" + "security": [ + { + "apikey": [] + }, + { + "basic": [] } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" + ], + "responses": { + "204": { + "description": "No response body" } } - ] + } }, - "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "/workspaces/{workspace}/policies/{policy}/actions/": { "get": { - "operationId": "badges_version_list", - "summary": "Get latest package version for a package or package group.", - "description": "Get latest package version for a package or package group.", + "operationId": "workspaces_policies_actions_list", + "description": "List all actions for the policy.", "parameters": [ { - "name": "badge_token", - "in": "query", - "description": "Badge token to authenticate for private packages", + "name": "page", "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "cacheSeconds", "in": "query", - "description": "Override the shields.io badge cacheSeconds value.", - "required": false, + "description": "A page number within the paginated result set.", "schema": { - "type": "string", - "default": "300" + "type": "integer" } }, { - "name": "color", - "in": "query", - "description": "Override the shields.io badge color value.", + "name": "page_size", "required": false, - "schema": { - "type": "string", - "default": "12577E" - } - }, - { - "name": "label", "in": "query", - "description": "Override the shields.io badge label value.", - "required": false, + "description": "Number of results to return per page.", "schema": { - "type": "string", - "default": "cloudsmith" + "type": "integer" } }, { - "name": "labelColor", - "in": "query", - "description": "Override the shields.io badge labelColor value.", - "required": false, + "in": "path", + "name": "policy", "schema": { "type": "string", - "default": "021F2F" - } + "pattern": "^[-_\\w]+$" + }, + "required": true }, { - "name": "logoColor", - "in": "query", - "description": "Override the shields.io badge logoColor value.", - "required": false, + "in": "path", + "name": "workspace", "schema": { "type": "string", - "default": "45B6EE" - } - }, - { - "name": "logoWidth", - "in": "query", - "description": "Override the shields.io badge logoWidth value.", - "required": false, - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "render", - "in": "query", - "description": "If true, badge will be rendered", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "shields", - "in": "query", - "description": "If true, a shields response will be generated", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "security": [ { - "name": "show_latest", - "in": "query", - "description": "If true, for latest version badges a '(latest)' suffix is added", - "required": false, - "schema": { - "type": "boolean", - "default": false - } + "apikey": [] }, { - "name": "style", - "in": "query", - "description": "Override the shields.io badge style value.", - "required": false, - "schema": { - "type": "string", - "default": "flat-square" - } + "basic": [] } ], "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PackageVersionBadge" + "$ref": "#/components/schemas/PaginatedPolicyActionList" } } + }, + "description": "" + } + } + }, + "post": { + "operationId": "workspaces_policies_actions_create", + "description": "Create an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" + } } + } + }, + "security": [ + { + "apikey": [] }, - "400": { - "description": "Request could not be processed (see detail).", + { + "basic": [] + } + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/PolicyAction" } } - } + }, + "description": "" }, "422": { - "description": "Missing or invalid parameters (see detail).", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorDetail" + }, + "examples": { + "MaxActionsReached": { + "value": { + "detail": "Invalid input.", + "code": "invalid", + "fields": { + "non_field_errors": [ + { + "string": "Maximum number of actions reached.", + "code": "max_actions_reached" + } + ] + } + }, + "summary": "Max Actions Reached", + "description": "Occurs when the number of actions associated with a policy is already at the maximum." + } } } - } - } - }, - "tags": [ - "badges" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_identifiers", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/plans/": { - "parameters": [] - }, - "/billing/{owner}/account-status/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/invoices/{invoice_id}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "invoice_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/payment-methods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/periods/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/portal/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/subscription/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/billing/{owner}/trial/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/domains/{org}/{repo}/backend_kind/{backend_kind}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "backend_kind", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/broadcasts/{org}/repos/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" + }, + "description": "" } } - ] + } }, - "/broadcasts/{org}/repos/{identifier}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" + "/workspaces/{workspace}/policies/{policy}/actions/{action}/": { + "get": { + "operationId": "workspaces_policies_actions_retrieve", + "description": "Retrieve an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." + }, + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" + ], + "tags": [ + "workspaces" + ], + "security": [ + { + "apikey": [] + }, + { + "basic": [] } - } - ] - }, - "/distros/": { - "get": { - "operationId": "distros_list", - "summary": "Get a list of all supported distributions.", - "description": "Get a list of all supported distributions.", + ], "responses": { "200": { - "description": "Available package formats retrieved", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionFull" - } + "$ref": "#/components/schemas/PolicyAction" } } - } + }, + "description": "" + } + } + }, + "put": { + "operationId": "workspaces_policies_actions_update", + "description": "Update an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." + }, + "required": true }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" } } } }, - "tags": [ - "distros" + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/distros/{slug}/": { - "get": { - "operationId": "distros_read", - "summary": "View for viewing/listing distributions.", - "description": "View for viewing/listing distributions.", "responses": { "200": { - "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DistributionFull" + "$ref": "#/components/schemas/PolicyAction" } } - } + }, + "description": "" + } + } + }, + "patch": { + "operationId": "workspaces_policies_actions_partial_update", + "description": "Partially update an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." + }, + "required": true }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchedPolicyAction" } } + } + }, + "security": [ + { + "apikey": [] }, - "422": { - "description": "Missing or invalid parameters (see detail).", + { + "basic": [] + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" + "$ref": "#/components/schemas/PolicyAction" } } - } + }, + "description": "" } - }, + } + }, + "delete": { + "operationId": "workspaces_policies_actions_destroy", + "description": "Delete an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." + }, + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], "tags": [ - "distros" + "workspaces" ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "204": { + "description": "No response body" } } - ] + } }, - "/entitlements/{owner}/{repo}/": { + "/workspaces/{workspace}/policies/{policy}/simulate/": { "get": { - "operationId": "entitlements_list", - "summary": "Get a list of all entitlements in a repository.", - "description": "Get a list of all entitlements in a repository.", + "operationId": "workspaces_policies_simulate_list", + "description": "Simulates the execution of a Policy to verify its behavior without taking any actions.\n\nThis endpoint evaluates all packages in the workspace, generating a \"decision log\" for each evaluation.\nEach log contains:\n- Package metadata provided to the policy engine at runtime.\n- Output from the user-defined Rego policy.\n\nNo actions associated with the policy are executed. Instead, the endpoint reports what would happen to each package if the policy were active.", "parameters": [ + { + "in": "query", + "name": "package_query_string", + "schema": { + "type": "string" + }, + "description": "A [package search](https://help.cloudsmith.io/docs/search-packages) query by which to filter the packages being evaluated." + }, { "name": "page", + "required": false, "in": "query", "description": "A page number within the paginated result set.", - "required": false, "schema": { "type": "integer" } }, { "name": "page_size", + "required": false, "in": "query", "description": "Number of results to return per page.", - "required": false, "schema": { "type": "integer" } }, { - "name": "show_tokens", + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": [ + "workspaces" + ], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" + } + } + }, + "description": "" + } + } + } + }, + "/workspaces/{workspace}/policies/decision_logs/": { + "get": { + "operationId": "workspaces_policies_decision_logs_list", + "description": "List policy decision logs.", + "parameters": [ + { + "in": "query", + "name": "correlation_id", + "schema": { + "type": "string", + "format": "uuid" + }, + "description": "Filter by `correlation_id`." + }, + { "in": "query", - "description": "Show entitlement token strings in results", - "required": false, + "name": "ended_after", + "schema": { + "type": "string", + "format": "date-time" + }, + "description": "Filter by `ended_at`. This operates as an inclusive lower bound (greater than or equal to)." + }, + { + "in": "query", + "name": "ended_before", + "schema": { + "type": "string", + "format": "date-time" + }, + "description": "Filter by `ended_at`. This operates as an exclusive upper bound (less than)." + }, + { + "in": "query", + "name": "match", "schema": { "type": "boolean", - "default": false - } + "nullable": true + }, + "description": "Filter by whether the policy matched the package." + }, + { + "in": "query", + "name": "package", + "schema": { + "type": "string", + "minLength": 1 + }, + "description": "Filter by package identifier (`slug_perm`)." }, { - "name": "query", "in": "query", - "description": "A search term for querying names of entitlements.", + "name": "package_format", + "schema": { + "type": "string", + "minLength": 1 + }, + "description": "Filter by package format." + }, + { + "name": "page", "required": false, + "in": "query", + "description": "A page number within the paginated result set.", "schema": { - "type": "string" + "type": "integer" } }, { - "name": "active", - "in": "query", - "description": "If true, only include active tokens", + "name": "page_size", "required": false, + "in": "query", + "description": "Number of results to return per page.", "schema": { - "type": "boolean", - "default": false + "type": "integer" } }, { - "name": "sort", "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, + "name": "policy", "schema": { "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of entitlement tokens", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - } + "minLength": 1 + }, + "description": "Filter by policy identifier (`slug_perm`)." }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } + { + "in": "query", + "name": "repository", + "schema": { + "type": "string", + "minLength": 1 + }, + "description": "Filter by repository identifier (`slug_perm`)." }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } + { + "in": "query", + "name": "sort", + "schema": { + "type": "string", + "default": "-started_at" + }, + "description": "A comma-separated string of fields to sort by. Legal fields are: `started_at`, `ended_at`. Descending order can be expressed by prepending `-` to a field name." }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "entitlements_create", - "summary": "Create a specific entitlement in a repository.", - "description": "Create a specific entitlement in a repository.", - "parameters": [ { - "name": "show_tokens", "in": "query", - "description": "Show entitlement token strings in results", - "required": false, + "name": "started_after", "schema": { - "type": "boolean", - "default": false - } + "type": "string", + "format": "date-time" + }, + "description": "Filter by `started_at`. This operates as an inclusive lower bound (greater than or equal to)." + }, + { + "in": "query", + "name": "started_before", + "schema": { + "type": "string", + "format": "date-time" + }, + "description": "Filter by `started_at`. This operates as an exclusive upper bound (less than)." + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequest" - } - } + "tags": [ + "workspaces" + ], + "security": [ + { + "apikey": [] + }, + { + "basic": [] } - }, + ], "responses": { - "201": { - "description": "Created the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/sync/": { - "post": { - "operationId": "entitlements_sync", - "summary": "Synchronise tokens from a source repository.", - "description": "Synchronise tokens from a source repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSyncRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The tokens have been synchronised from the source repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "entitlements_read", - "summary": "Get a specific entitlement in a repository.", - "description": "Get a specific entitlement in a repository.", - "parameters": [ - { - "name": "fuzzy", - "in": "query", - "description": "If true, entitlement identifiers including name will be fuzzy matched.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Couldn't retrieve the specified token because the request contains an error.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "entitlements_partial_update", - "summary": "Update a specific entitlement in a repository.", - "description": "Update a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "The entitlement cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "entitlements_delete", - "summary": "Delete a specific entitlement in a repository.", - "description": "Delete a specific entitlement in a repository.", - "responses": { - "204": { - "description": "Soft-deleted the specified entitlement token successfully." - }, - "400": { - "description": "The entitlement cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/disable/": { - "post": { - "operationId": "entitlements_disable", - "summary": "Disable an entitlement token in a repository.", - "description": "Disable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/enable/": { - "post": { - "operationId": "entitlements_enable", - "summary": "Enable an entitlement token in a repository.", - "description": "Enable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/refresh/": { - "post": { - "operationId": "entitlements_refresh", - "summary": "Refresh an entitlement token in a repository.", - "description": "Refresh an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The entitlement token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefresh" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/reset/": { - "post": { - "operationId": "entitlements_reset", - "summary": "Reset the statistics for an entitlement token in a repository.", - "description": "Reset the statistics for an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "204": { - "description": "The entitlement token statistics have been reset." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_entitlements(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_entitlement(token: 'RepositoryToken')", - "x-objectPermissionRequiredReadOnly": "package.view_repo_entitlement(token: 'RepositoryToken')", - "x-permissionRequiredReadOnly": "package.view_repo_entitlements(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/": { - "post": { - "operationId": "files_create", - "summary": "Request URL(s) to upload new package file upload(s) to.", - "description": "Request URL(s) to upload new package file upload(s) to.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "202": { - "description": "The upload request was accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/validate/": { - "post": { - "operationId": "files_validate", - "summary": "Validate parameters used for create.", - "description": "Validate parameters used for create.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/abort/": { - "post": { - "operationId": "files_abort", - "summary": "Abort a multipart file upload.", - "description": "Abort a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "The multipart upload was aborted successfully." - }, - "400": { - "description": "The multipart upload could not be aborted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/complete/": { - "post": { - "operationId": "files_complete", - "summary": "Complete a multipart file upload.", - "description": "Complete a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "201": { - "description": "The multipart upload was completed successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "The multipart upload could not be completed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/info/": { - "get": { - "operationId": "files_info", - "summary": "Get upload information to perform a multipart file upload.", - "description": "Get upload information to perform a multipart file upload.", - "parameters": [ - { - "name": "filename", - "in": "query", - "description": "The filename of the file being uploaded", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "part_number", - "in": "query", - "description": "The part number to be uploaded next", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Information for multipart uploaded retrieved successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFilePartsUpload" - } - } - } - }, - "400": { - "description": "The provided upload file was not a multipart upload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package_file(package_file: 'PackageFile')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/formats/": { - "get": { - "operationId": "formats_list", - "summary": "Get a list of all supported package formats.", - "description": "Get a list of all supported package formats.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Format" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/formats/{slug}/": { - "get": { - "operationId": "formats_read", - "summary": "Get a specific supported package format.", - "description": "Get a specific supported package format.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Format" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/orgs/slugify/": { - "parameters": [] - }, - "/internal/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/internal/user/confirm/": { - "parameters": [] - }, - "/internal/user/escalate/": { - "parameters": [] - }, - "/internal/user/login/": { - "parameters": [] - }, - "/internal/user/password/request-reset/": { - "parameters": [] - }, - "/internal/user/password/reset/": { - "parameters": [] - }, - "/internal/user/signup/": { - "parameters": [] - }, - "/internal/user/two-factor/": { - "parameters": [] - }, - "/internal/user/verify-device/": { - "parameters": [] - }, - "/internal/user/zendesk/jwt/": { - "parameters": [] - }, - "/licenses/": { - "parameters": [] - }, - "/metrics/entitlements/{owner}/": { - "get": { - "operationId": "metrics_entitlements_account_list", - "summary": "View for listing entitlement token metrics, across an account.", - "description": "View for listing entitlement token metrics, across an account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_entitlement_metrics(namespace: 'Namespace')", - "x-objectPermissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "metrics_entitlements_repo_list", - "summary": "View for listing entitlement token metrics, for a repository.", - "description": "View for listing entitlement token metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_entitlement_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/packages/{owner}/{repo}/": { - "get": { - "operationId": "metrics_packages_list", - "summary": "View for listing package usage metrics, for a repository.", - "description": "View for listing package usage metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "packages", - "in": "query", - "description": "A comma seperated list of packages (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for packages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_package_usage_metrics(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/namespaces/": { - "get": { - "operationId": "namespaces_list", - "summary": "Get a list of all namespaces the user belongs to.", - "description": "Get a list of all namespaces the user belongs to.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [] - }, - "/namespaces/{slug}/": { - "get": { - "operationId": "namespaces_read", - "summary": "Get a specific namespace that the user belongs to.", - "description": "Get a specific namespace that the user belongs to.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Namespace" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "namespace.view_namespace(namespace: 'Namespace')" - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/openid/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/": { - "get": { - "operationId": "orgs_list", - "summary": "Get a list of all the organizations you are associated with.", - "description": "Get a list of all the organizations you are associated with.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Organization" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [] - }, - "/orgs/{org}/": { - "get": { - "operationId": "orgs_read", - "summary": "Get the details for the specific organization.", - "description": "Get the details for the specific organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "delete": { - "operationId": "orgs_delete", - "summary": "Delete the specified organization.", - "description": "Delete the specified organization.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.view_org(org: 'Organization')" - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/enforce/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/2fa/relax/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/authentication-policy": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/broadcasts/config/company-logo/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/custom-domains/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/default-object-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/delete-org/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/": { - "get": { - "operationId": "orgs_deny-policy_list", - "summary": "Get a list of all package deny policies.", - "description": "Get a list of all package deny policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_deny-policy_create", - "summary": "Create a package deny policy.", - "description": "Create a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_deny-policy_read", - "summary": "Get a package deny policy.", - "description": "Get a package deny policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_deny-policy_update", - "summary": "Update a package deny policy.", - "description": "Update a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_deny-policy_partial_update", - "summary": "Partially update a package deny policy.", - "description": "Partially update a package deny policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_deny-policy_delete", - "summary": "Delete a package deny policy.", - "description": "Delete a package deny policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/feature-flags/check/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/global-privileges/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/": { - "get": { - "operationId": "orgs_invites_list", - "summary": "Get a list of all invites for an organization.", - "description": "Get a list of all invites for an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization invites", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization invites not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_invites_create", - "summary": "Create an organization invite for a specific user", - "description": "Create an organization invite for a specific user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Invite sent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/": { - "patch": { - "operationId": "orgs_invites_partial_update", - "summary": "Update a specific organization invite.", - "description": "Update a specific organization invite.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Invite updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_invite_role(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_invites_delete", - "summary": "Delete a specific organization invite", - "description": "Delete a specific organization invite", - "responses": { - "204": { - "description": "Deleted the organization invite successfully." - }, - "400": { - "description": "The organization invite cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/extend/": { - "post": { - "operationId": "orgs_invites_extend", - "summary": "Extend an organization invite.", - "description": "Extend an organization invite.", - "responses": { - "200": { - "description": "The invite has been extended", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/resend/": { - "post": { - "operationId": "orgs_invites_resend", - "summary": "Resend an organization invite.", - "description": "Resend an organization invite.", - "responses": { - "200": { - "description": "The invite has been resent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.create_org_invites(org: 'Organization')", - "x-objectPermissionRequired": "orgs.resend_org_invite(invite: 'OrganizationInvite')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy-violation/": { - "get": { - "operationId": "orgs_license-policy-violation_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" - } - } - }, - "title": "PackageLicensePolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/": { - "get": { - "operationId": "orgs_license-policy_list", - "summary": "Get a list of all package license policies.", - "description": "Get a list of all package license policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_create", - "summary": "Create a package license policy.", - "description": "Create a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_license-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_license-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_read", - "summary": "Get a package license policy.", - "description": "Get a package license policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_license-policy_update", - "summary": "Update a package license policy.", - "description": "Update a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_license-policy_partial_update", - "summary": "Partially update a package license policy.", - "description": "Partially update a package license policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_license-policy_delete", - "summary": "Delete a package license policy.", - "description": "Delete a package license policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/disable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/managed-users/enable/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/": { - "get": { - "operationId": "orgs_members_list", - "summary": "Get the details for all organization members.", - "description": "Get the details for all organization members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "is_active", - "in": "query", - "description": "Filter for active/inactive users.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", - "required": false, - "schema": { - "type": "string", - "default": "user_name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization's members", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/": { - "get": { - "operationId": "orgs_members_read", - "summary": "Get the details for a specific organization member.", - "description": "Get the details for a specific organization member.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_members_partial_update", - "summary": "Views for working with organization members.", - "description": "Views for working with organization members.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_members_delete", - "summary": "Removes a member from the organization.", - "description": "Removes a member from the organization.", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/refresh/": { - "post": { - "operationId": "orgs_members_refresh", - "summary": "Refresh a member of the organization's API key.", - "description": "Refresh a member of the organization's API key.", - "responses": { - "204": { - "description": "Org member API key has been refreshed." - }, - "400": { - "description": "The org member's API key cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org member not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.refresh_org_member_api_key(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/remove/": { - "get": { - "operationId": "orgs_members_remove", - "summary": "Removes a member from the organization (deprecated, use DELETE instead).", - "description": "Removes a member from the organization (deprecated, use DELETE instead).", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_membership(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-role/": { - "patch": { - "operationId": "orgs_members_update_role", - "summary": "Update a member's role in the organization.", - "description": "Update a member's role in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_role(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-visibility/": { - "patch": { - "operationId": "orgs_members_update_visibility", - "summary": "Update a member's visibility in the organization.", - "description": "Update a member's visibility in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_membership_visibility(membership: 'OrganizationMembership')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/": { - "get": { - "operationId": "orgs_openid-connect_list", - "summary": "Retrieve the list of OpenID Connect provider settings for the org.", - "description": "Retrieve the list of OpenID Connect provider settings for the org.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_openid-connect_create", - "summary": "Create the OpenID Connect provider settings for the org.", - "description": "Create the OpenID Connect provider settings for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "201": { - "description": "Created the OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/{slug_perm}/": { - "get": { - "operationId": "orgs_openid-connect_read", - "summary": "Retrieve a specific OpenID Connect provider setting for the org.", - "description": "Retrieve a specific OpenID Connect provider setting for the org.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_openid-connect_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_openid-connect_partial_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_openid-connect_delete", - "summary": "Delete a specific OpenID Connect provider setting for the org.", - "description": "Delete a specific OpenID Connect provider setting for the org.", - "responses": { - "204": { - "description": "Deleted the specified OpenID Connect provider setting successfully." - }, - "400": { - "description": "The specified OpenID Connect provider setting cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.delete_openid_connect_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/license/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/policy-violations/vulnerability/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/product-features/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-authentication": { - "get": { - "operationId": "orgs_saml-authentication_read", - "summary": "Retrieve the SAML Authentication settings for this Organization.", - "description": "Retrieve the SAML Authentication settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "orgs_saml-authentication_partial_update", - "summary": "Update the SAML Authentication settings for this Organization.", - "description": "Update the SAML Authentication settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/": { - "get": { - "operationId": "orgs_saml-group-sync_list", - "summary": "Get the details of all SAML Group Sync mapping within an organization.", - "description": "Get the details of all SAML Group Sync mapping within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of all SAML Group Sync mappings for this org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_saml-group-sync_create", - "summary": "Create a new SAML Group Sync mapping within an organization.", - "description": "Create a new SAML Group Sync mapping within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The SAML Group Sync mapping was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/disable/": { - "post": { - "operationId": "orgs_saml-group-sync_disable", - "summary": "Disable SAML Group Sync for this organization.", - "description": "Disable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been disabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/enable/": { - "post": { - "operationId": "orgs_saml-group-sync_enable", - "summary": "Enable SAML Group Sync for this organization.", - "description": "Enable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been enabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/status/": { - "get": { - "operationId": "orgs_saml-group-sync_status", - "summary": "Retrieve the SAML Group Sync status for this organization.", - "description": "Retrieve the SAML Group Sync status for this organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Group Sync status for this organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/{slug_perm}/": { - "delete": { - "operationId": "orgs_saml-group-sync_delete", - "summary": "Delete a SAML Group Sync mapping from an organization.", - "description": "Delete a SAML Group Sync mapping from an organization.", - "responses": { - "204": { - "description": "Mapping removed successfully" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/scim/refresh-token": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/": { - "get": { - "operationId": "orgs_services_list", - "summary": "Get a list of all services within an organization.", - "description": "Get a list of all services within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of services within an Organization.Available options are: name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", - "required": false, - "schema": { - "type": "string", - "default": "created_at" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of services within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Service" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "orgs_services_create", - "summary": "Create a service within an organization.", - "description": "Create a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Created the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_services(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/": { - "get": { - "operationId": "orgs_services_read", - "summary": "Retrieve details of a single service within an organization.", - "description": "Retrieve details of a single service within an organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_services_partial_update", - "summary": "Update a service within an organization.", - "description": "Update a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "orgs_services_delete", - "summary": "Delete a specific service", - "description": "Delete a specific service", - "responses": { - "204": { - "description": "Deleted the service successfully." - }, - "400": { - "description": "The service cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/refresh/": { - "post": { - "operationId": "orgs_services_refresh", - "summary": "Refresh service API token.", - "description": "Refresh service API token.", - "responses": { - "200": { - "description": "Refreshed the service token successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "The service token cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_services(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/settings": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/slug": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/": { - "get": { - "operationId": "orgs_teams_list", - "summary": "Get the details of all teams within an organization.", - "description": "Get the details of all teams within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "for_user", - "in": "query", - "description": "Filter for teams that you are a member of.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of teams within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "orgs_teams_create", - "summary": "Create a team for this organization.", - "description": "Create a team for this organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Team created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_teams(org: 'Organization', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/": { - "get": { - "operationId": "orgs_teams_read", - "summary": "Get the details of a specific team within an organization.", - "description": "Get the details of a specific team within an organization.", - "responses": { - "200": { - "description": "Retrieved the details of the requested team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "orgs_teams_partial_update", - "summary": "Update a specific team in a organization.", - "description": "Update a specific team in a organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.change_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "orgs_teams_delete", - "summary": "Delete a specific team in a organization.", - "description": "Delete a specific team in a organization.", - "responses": { - "204": { - "description": "Deleted the team successfully." - }, - "400": { - "description": "The team cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.view_org_membership(org: 'Organization')", - "x-objectPermissionRequired": "orgs.delete_org_team(team: 'OrganizationTeam')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members": { - "get": { - "operationId": "orgs_teams_members_list", - "summary": "List all members for the team.", - "description": "List all members for the team.", - "responses": { - "200": { - "description": "Retrieved users for the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.view_org_team(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "post": { - "operationId": "orgs_teams_members_create", - "summary": "Add users to a team.", - "description": "Add users to a team.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "201": { - "description": "The users were added to the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.create_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "orgs_teams_members_update", - "summary": "Replace all team members.", - "description": "Replace all team members.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "204": { - "description": "The team members were replaced.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_team_members(team: 'OrganizationTeam')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members/{member}/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/memberships/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/usage-limits/": { - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy-violation/": { - "get": { - "operationId": "orgs_vulnerability-policy-violation_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" - } - } - }, - "title": "PackageVulnerabilityPolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/": { - "get": { - "operationId": "orgs_vulnerability-policy_list", - "summary": "Get a list of all package vulnerability policies.", - "description": "Get a list of all package vulnerability policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_create", - "summary": "Create a package vulnerability policy.", - "description": "Create a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "post": { - "operationId": "orgs_vulnerability-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_read", - "summary": "Get a package vulnerability policy.", - "description": "Get a package vulnerability policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "put": { - "operationId": "orgs_vulnerability-policy_update", - "summary": "Update a package vulnerability policy.", - "description": "Update a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-maybeBadOperationId": true - }, - "patch": { - "operationId": "orgs_vulnerability-policy_partial_update", - "summary": "Partially update a package vulnerability policy.", - "description": "Partially update a package vulnerability policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "delete": { - "operationId": "orgs_vulnerability-policy_delete", - "summary": "Delete a package vulnerability policy.", - "description": "Delete a package vulnerability policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.change_org_settings(org: 'Organization')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/docker/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/maven/{owner}/{repo}/{identifier}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/": { - "get": { - "operationId": "packages_list", - "summary": "Get a list of all packages associated with repository.", - "description": "Get a list of all packages associated with repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/groups/": { - "get": { - "operationId": "packages_groups_list", - "summary": "Return a list of Package Groups in a repository.", - "description": "Return a list of Package Groups in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "group_by", - "in": "query", - "description": "A field to group packages by. Available options: name, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of package groups.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageGroup" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/alpine/": { - "post": { - "operationId": "packages_upload_alpine", - "summary": "Create a new Alpine package", - "description": "Create a new Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cargo/": { - "post": { - "operationId": "packages_upload_cargo", - "summary": "Create a new Cargo package", - "description": "Create a new Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cocoapods/": { - "post": { - "operationId": "packages_upload_cocoapods", - "summary": "Create a new CocoaPods package", - "description": "Create a new CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/composer/": { - "post": { - "operationId": "packages_upload_composer", - "summary": "Create a new Composer package", - "description": "Create a new Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conan/": { - "post": { - "operationId": "packages_upload_conan", - "summary": "Create a new Conan package", - "description": "Create a new Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conda/": { - "post": { - "operationId": "packages_upload_conda", - "summary": "Create a new Conda package", - "description": "Create a new Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cran/": { - "post": { - "operationId": "packages_upload_cran", - "summary": "Create a new CRAN package", - "description": "Create a new CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/dart/": { - "post": { - "operationId": "packages_upload_dart", - "summary": "Create a new Dart package", - "description": "Create a new Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/deb/": { - "post": { - "operationId": "packages_upload_deb", - "summary": "Create a new Debian package", - "description": "Create a new Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/docker/": { - "post": { - "operationId": "packages_upload_docker", - "summary": "Create a new Docker package", - "description": "Create a new Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/go/": { - "post": { - "operationId": "packages_upload_go", - "summary": "Create a new Go package", - "description": "Create a new Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/helm/": { - "post": { - "operationId": "packages_upload_helm", - "summary": "Create a new Helm package", - "description": "Create a new Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/hex/": { - "post": { - "operationId": "packages_upload_hex", - "summary": "Create a new Hex package", - "description": "Create a new Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/luarocks/": { - "post": { - "operationId": "packages_upload_luarocks", - "summary": "Create a new LuaRocks package", - "description": "Create a new LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/maven/": { - "post": { - "operationId": "packages_upload_maven", - "summary": "Create a new Maven package", - "description": "Create a new Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/npm/": { - "post": { - "operationId": "packages_upload_npm", - "summary": "Create a new npm package", - "description": "Create a new npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/nuget/": { - "post": { - "operationId": "packages_upload_nuget", - "summary": "Create a new NuGet package", - "description": "Create a new NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/p2/": { - "post": { - "operationId": "packages_upload_p2", - "summary": "Create a new P2 package", - "description": "Create a new P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/python/": { - "post": { - "operationId": "packages_upload_python", - "summary": "Create a new Python package", - "description": "Create a new Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/raw/": { - "post": { - "operationId": "packages_upload_raw", - "summary": "Create a new Raw package", - "description": "Create a new Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/rpm/": { - "post": { - "operationId": "packages_upload_rpm", - "summary": "Create a new RedHat package", - "description": "Create a new RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/ruby/": { - "post": { - "operationId": "packages_upload_ruby", - "summary": "Create a new Ruby package", - "description": "Create a new Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/swift/": { - "post": { - "operationId": "packages_upload_swift", - "summary": "Create a new Swift package", - "description": "Create a new Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/terraform/": { - "post": { - "operationId": "packages_upload_terraform", - "summary": "Create a new Terraform package", - "description": "Create a new Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/vagrant/": { - "post": { - "operationId": "packages_upload_vagrant", - "summary": "Create a new Vagrant package", - "description": "Create a new Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/alpine/": { - "post": { - "operationId": "packages_validate-upload_alpine", - "summary": "Validate parameters for create Alpine package", - "description": "Validate parameters for create Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cargo/": { - "post": { - "operationId": "packages_validate-upload_cargo", - "summary": "Validate parameters for create Cargo package", - "description": "Validate parameters for create Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cocoapods/": { - "post": { - "operationId": "packages_validate-upload_cocoapods", - "summary": "Validate parameters for create CocoaPods package", - "description": "Validate parameters for create CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/composer/": { - "post": { - "operationId": "packages_validate-upload_composer", - "summary": "Validate parameters for create Composer package", - "description": "Validate parameters for create Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conan/": { - "post": { - "operationId": "packages_validate-upload_conan", - "summary": "Validate parameters for create Conan package", - "description": "Validate parameters for create Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conda/": { - "post": { - "operationId": "packages_validate-upload_conda", - "summary": "Validate parameters for create Conda package", - "description": "Validate parameters for create Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cran/": { - "post": { - "operationId": "packages_validate-upload_cran", - "summary": "Validate parameters for create CRAN package", - "description": "Validate parameters for create CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/dart/": { - "post": { - "operationId": "packages_validate-upload_dart", - "summary": "Validate parameters for create Dart package", - "description": "Validate parameters for create Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/deb/": { - "post": { - "operationId": "packages_validate-upload_deb", - "summary": "Validate parameters for create Debian package", - "description": "Validate parameters for create Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/docker/": { - "post": { - "operationId": "packages_validate-upload_docker", - "summary": "Validate parameters for create Docker package", - "description": "Validate parameters for create Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/go/": { - "post": { - "operationId": "packages_validate-upload_go", - "summary": "Validate parameters for create Go package", - "description": "Validate parameters for create Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/helm/": { - "post": { - "operationId": "packages_validate-upload_helm", - "summary": "Validate parameters for create Helm package", - "description": "Validate parameters for create Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/hex/": { - "post": { - "operationId": "packages_validate-upload_hex", - "summary": "Validate parameters for create Hex package", - "description": "Validate parameters for create Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/luarocks/": { - "post": { - "operationId": "packages_validate-upload_luarocks", - "summary": "Validate parameters for create LuaRocks package", - "description": "Validate parameters for create LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/maven/": { - "post": { - "operationId": "packages_validate-upload_maven", - "summary": "Validate parameters for create Maven package", - "description": "Validate parameters for create Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/npm/": { - "post": { - "operationId": "packages_validate-upload_npm", - "summary": "Validate parameters for create npm package", - "description": "Validate parameters for create npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/nuget/": { - "post": { - "operationId": "packages_validate-upload_nuget", - "summary": "Validate parameters for create NuGet package", - "description": "Validate parameters for create NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/p2/": { - "post": { - "operationId": "packages_validate-upload_p2", - "summary": "Validate parameters for create P2 package", - "description": "Validate parameters for create P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/python/": { - "post": { - "operationId": "packages_validate-upload_python", - "summary": "Validate parameters for create Python package", - "description": "Validate parameters for create Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/raw/": { - "post": { - "operationId": "packages_validate-upload_raw", - "summary": "Validate parameters for create Raw package", - "description": "Validate parameters for create Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/rpm/": { - "post": { - "operationId": "packages_validate-upload_rpm", - "summary": "Validate parameters for create RedHat package", - "description": "Validate parameters for create RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/ruby/": { - "post": { - "operationId": "packages_validate-upload_ruby", - "summary": "Validate parameters for create Ruby package", - "description": "Validate parameters for create Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/swift/": { - "post": { - "operationId": "packages_validate-upload_swift", - "summary": "Validate parameters for create Swift package", - "description": "Validate parameters for create Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/terraform/": { - "post": { - "operationId": "packages_validate-upload_terraform", - "summary": "Validate parameters for create Terraform package", - "description": "Validate parameters for create Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/vagrant/": { - "post": { - "operationId": "packages_validate-upload_vagrant", - "summary": "Validate parameters for create Vagrant package", - "description": "Validate parameters for create Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.upload_repo_packages(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')", - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "packages_read", - "summary": "Get a specific package in a repository.", - "description": "Get a specific package in a repository.", - "responses": { - "200": { - "description": "Retrieved the specified package successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "delete": { - "operationId": "packages_delete", - "summary": "Delete a specific package in a repository.", - "description": "Delete a specific package in a repository.", - "responses": { - "204": { - "description": "Deleted the specified package successfully." - }, - "400": { - "description": "The package cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.delete_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/copy/": { - "post": { - "operationId": "packages_copy", - "summary": "Copy a package to another repository.", - "description": "Copy a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopyRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Copied specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopy" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.copy_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/dependencies/": { - "get": { - "operationId": "packages_dependencies", - "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "responses": { - "200": { - "description": "Retrieved stored dependencies for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDependencies" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/move/": { - "post": { - "operationId": "packages_move", - "summary": "Move a package to another repository.", - "description": "Move a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMoveRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Moved specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMove" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.move_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/quarantine/": { - "post": { - "operationId": "packages_quarantine", - "summary": "Quarantine or release a package.", - "description": "Quarantine or release a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantineRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Changed the package's quarantine status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantine" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.quarantine_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/resync/": { - "post": { - "operationId": "packages_resync", - "summary": "Schedule a package for resynchronisation.", - "description": "Schedule a package for resynchronisation.", - "responses": { - "200": { - "description": "Scheduled the package for resynchronisation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageResync" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.resync_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/scan/": { - "post": { - "operationId": "packages_scan", - "summary": "Schedule a package for scanning.", - "description": "Schedule a package for scanning.", - "responses": { - "200": { - "description": "Scheduled the package for scanning.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.scan_repo_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/status/": { - "get": { - "operationId": "packages_status", - "summary": "Get the synchronization status for a package.", - "description": "Get the synchronization status for a package.", - "responses": { - "200": { - "description": "Retrieved status for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_package(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/tag/": { - "post": { - "operationId": "packages_tag", - "summary": "Add/Replace/Remove tags for a package.", - "description": "Add/Replace/Remove tags for a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageTagRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Modified tags for the package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.edit_package_tags(package: 'Package')", - "x-objectPermissionRequiredReadOnly": "package.view_package(package: 'Package')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/history/{owner}/": { - "get": { - "operationId": "quota_history_read", - "summary": "Quota history for a given namespace.", - "description": "Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/history/{owner}/": { - "get": { - "operationId": "quota_oss_history_read", - "summary": "Open-source Quota history for a given namespace.", - "description": "Open-source Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/{owner}/": { - "get": { - "operationId": "quota_oss_read", - "summary": "Open-source Quota usage for a given namespace.", - "description": "Open-source Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/{owner}/": { - "get": { - "operationId": "quota_read", - "summary": "Quota usage for a given namespace.", - "description": "Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_quota_statistics(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/rates/limits/": { - "get": { - "operationId": "rates_limits_list", - "summary": "Endpoint to check rate limits for current user.", - "description": "Endpoint to check rate limits for current user.", - "responses": { - "200": { - "description": "Rate check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcesRateCheck" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "rates" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/repos/": { - "get": { - "operationId": "repos_user_list", - "summary": "Get a list of all repositories associated with current user.", - "description": "Get a list of all repositories associated with current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/repos/{owner}/": { - "get": { - "operationId": "repos_namespace_list", - "summary": "Get a list of all repositories within a namespace.", - "description": "Get a list of all repositories within a namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repos(namespace: 'Namespace')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_create", - "summary": "Create a new repository in a given namespace.", - "description": "Create a new repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreateRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The repository was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.create_repos(namespace: 'Namespace', has_model_perm=None)", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/": { - "get": { - "operationId": "repos_read", - "summary": "Get a specific repository.", - "description": "Get a specific repository.", - "responses": { - "200": { - "description": "Retrieved the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_partial_update", - "summary": "Update details about a repository in a given namespace.", - "description": "Update details about a repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "The repository was updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "repos_delete", - "summary": "Delete a repository in a given namespace.", - "description": "Delete a repository in a given namespace.", - "responses": { - "200": { - "description": "The repository has been scheduled for deletion." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": "package.delete_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/": { - "get": { - "operationId": "repos_ecdsa_list", - "summary": "Retrieve the active ECDSA key for the Repository.", - "description": "Retrieve the active ECDSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')" - }, - "post": { - "operationId": "repos_ecdsa_create", - "summary": "Set the active ECDSA key for the Repository.", - "description": "Set the active ECDSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided ECDSA key is the same as the current ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "201": { - "description": "The provided ECDSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "The provided ECDSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom ECDSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/regenerate/": { - "post": { - "operationId": "repos_ecdsa_regenerate", - "summary": "Regenerate ECDSA Key for the Repository.", - "description": "Regenerate ECDSA Key for the Repository.", - "responses": { - "200": { - "description": "An ECDSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')" - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip": { - "get": { - "operationId": "repos_geoip_read", - "summary": "List all repository geoip rules.", - "description": "List all repository geoip rules.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_geoip_update", - "summary": "Replace repository geoip rules.", - "description": "Replace repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_geoip_partial_update", - "summary": "Partially update repository geoip rules.", - "description": "Partially update repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/disable/": { - "post": { - "operationId": "repos_geoip_disable", - "summary": "Disable GeoIP for this repository.", - "description": "Disable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been disabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/enable/": { - "post": { - "operationId": "repos_geoip_enable", - "summary": "Enable GeoIP for this repository.", - "description": "Enable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been enabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/status/": { - "get": { - "operationId": "api_repos_geoip_status", - "summary": "Retrieve the GeoIP status for this repository.", - "description": "Retrieve the GeoIP status for this repository.", - "responses": { - "200": { - "description": "Retrieved the GeoIP status for this repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/test/": { - "post": { - "operationId": "repos_geoip_test", - "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", - "description": "Test a list of IP addresses against the repository's current GeoIP rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" - } - } - } - }, - "responses": { - "201": { - "description": "Successfuly tested addresses against the repository's GeoIP rules", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/": { - "get": { - "operationId": "repos_gpg_list", - "summary": "Retrieve the active GPG key for the Repository.", - "description": "Retrieve the active GPG key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_gpg_create", - "summary": "Set the active GPG key for the Repository.", - "description": "Set the active GPG key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided GPG key is the same as the current GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "201": { - "description": "The provided GPG key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "The provided GPG key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom GPG keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/regenerate/": { - "post": { - "operationId": "repos_gpg_regenerate", - "summary": "Regenerate GPG Key for the Repository.", - "description": "Regenerate GPG Key for the Repository.", - "responses": { - "200": { - "description": "A GPG key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/privileges": { - "get": { - "operationId": "repos_privileges_list", - "summary": "List all explicity created privileges for the repository.", - "description": "List all explicity created privileges for the repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved privileges for the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInput" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false, - "x-shouldBeViewset": true - }, - "put": { - "operationId": "repos_privileges_update", - "summary": "Replace all existing repository privileges with those specified.", - "description": "Replace all existing repository privileges with those specified.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges replaced" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "patch": { - "operationId": "repos_privileges_partial_update", - "summary": "Modify privileges for the repository.", - "description": "Modify privileges for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges updated" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true, - "x-shouldBeViewset": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/": { - "get": { - "operationId": "repos_rsa_list", - "summary": "Retrieve the active RSA key for the Repository.", - "description": "Retrieve the active RSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_rsa_create", - "summary": "Set the active RSA key for the Repository.", - "description": "Set the active RSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided RSA key is the same as the current RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "201": { - "description": "The provided RSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "The provided RSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom RSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/regenerate/": { - "post": { - "operationId": "repos_rsa_regenerate", - "summary": "Regenerate RSA Key for the Repository.", - "description": "Regenerate RSA Key for the Repository.", - "responses": { - "200": { - "description": "An RSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/": { - "get": { - "operationId": "repos_upstream_cargo_list", - "summary": "List Cargo upstream configs for this repository.", - "description": "List Cargo upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cargo_create", - "summary": "Create a Cargo upstream config for this repository.", - "description": "Create a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cargo_read", - "summary": "Retrieve a Cargo upstream config for this repository.", - "description": "Retrieve a Cargo upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cargo_update", - "summary": "Update a Cargo upstream config for this repository.", - "description": "Update a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cargo_partial_update", - "summary": "Partially update a Cargo upstream config for this repository.", - "description": "Partially update a Cargo upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cargo_delete", - "summary": "Delete a Cargo upstream config for this repository.", - "description": "Delete a Cargo upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/": { - "get": { - "operationId": "repos_upstream_composer_list", - "summary": "List Composer upstream configs for this repository.", - "description": "List Composer upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_composer_create", - "summary": "Create a Composer upstream config for this repository.", - "description": "Create a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_composer_read", - "summary": "Retrieve a Composer upstream config for this repository.", - "description": "Retrieve a Composer upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_composer_update", - "summary": "Update a Composer upstream config for this repository.", - "description": "Update a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_composer_partial_update", - "summary": "Partially update a Composer upstream config for this repository.", - "description": "Partially update a Composer upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_composer_delete", - "summary": "Delete a Composer upstream config for this repository.", - "description": "Delete a Composer upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/": { - "get": { - "operationId": "repos_upstream_cran_list", - "summary": "List CRAN upstream configs for this repository.", - "description": "List CRAN upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_cran_create", - "summary": "Create a CRAN upstream config for this repository.", - "description": "Create a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cran_read", - "summary": "Retrieve a CRAN upstream config for this repository.", - "description": "Retrieve a CRAN upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_cran_update", - "summary": "Update a CRAN upstream config for this repository.", - "description": "Update a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_cran_partial_update", - "summary": "Partially update a CRAN upstream config for this repository.", - "description": "Partially update a CRAN upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_cran_delete", - "summary": "Delete a CRAN upstream config for this repository.", - "description": "Delete a CRAN upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/": { - "get": { - "operationId": "repos_upstream_dart_list", - "summary": "List Dart upstream configs for this repository.", - "description": "List Dart upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_dart_create", - "summary": "Create a Dart upstream config for this repository.", - "description": "Create a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_dart_read", - "summary": "Retrieve a Dart upstream config for this repository.", - "description": "Retrieve a Dart upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_dart_update", - "summary": "Update a Dart upstream config for this repository.", - "description": "Update a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_dart_partial_update", - "summary": "Partially update a Dart upstream config for this repository.", - "description": "Partially update a Dart upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_dart_delete", - "summary": "Delete a Dart upstream config for this repository.", - "description": "Delete a Dart upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/": { - "get": { - "operationId": "repos_upstream_deb_list", - "summary": "List Debian upstream configs for this repository.", - "description": "List Debian upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_deb_create", - "summary": "Create a Debian upstream config for this repository.", - "description": "Create a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_deb_read", - "summary": "Retrieve a Debian upstream config for this repository.", - "description": "Retrieve a Debian upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_deb_update", - "summary": "Update a Debian upstream config for this repository.", - "description": "Update a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_deb_partial_update", - "summary": "Partially update a Debian upstream config for this repository.", - "description": "Partially update a Debian upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_deb_delete", - "summary": "Delete a Debian upstream config for this repository.", - "description": "Delete a Debian upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/": { - "get": { - "operationId": "repos_upstream_docker_list", - "summary": "List Docker upstream configs for this repository.", - "description": "List Docker upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_docker_create", - "summary": "Create a Docker upstream config for this repository.", - "description": "Create a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_docker_read", - "summary": "Retrieve a Docker upstream config for this repository.", - "description": "Retrieve a Docker upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_docker_update", - "summary": "Update a Docker upstream config for this repository.", - "description": "Update a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_docker_partial_update", - "summary": "Partially update a Docker upstream config for this repository.", - "description": "Partially update a Docker upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_docker_delete", - "summary": "Delete a Docker upstream config for this repository.", - "description": "Delete a Docker upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/": { - "get": { - "operationId": "repos_upstream_go_list", - "summary": "List Go upstream configs for this repository.", - "description": "List Go upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_go_create", - "summary": "Create a Go upstream config for this repository.", - "description": "Create a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_go_read", - "summary": "Retrieve a Go upstream config for this repository.", - "description": "Retrieve a Go upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_go_update", - "summary": "Update a Go upstream config for this repository.", - "description": "Update a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_go_partial_update", - "summary": "Partially update a Go upstream config for this repository.", - "description": "Partially update a Go upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_go_delete", - "summary": "Delete a Go upstream config for this repository.", - "description": "Delete a Go upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/": { - "get": { - "operationId": "repos_upstream_helm_list", - "summary": "List Helm upstream configs for this repository.", - "description": "List Helm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_helm_create", - "summary": "Create a Helm upstream config for this repository.", - "description": "Create a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_helm_read", - "summary": "Retrieve a Helm upstream config for this repository.", - "description": "Retrieve a Helm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_helm_update", - "summary": "Update a Helm upstream config for this repository.", - "description": "Update a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_helm_partial_update", - "summary": "Partially update a Helm upstream config for this repository.", - "description": "Partially update a Helm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_helm_delete", - "summary": "Delete a Helm upstream config for this repository.", - "description": "Delete a Helm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/": { - "get": { - "operationId": "repos_upstream_hex_list", - "summary": "List Hex upstream configs for this repository.", - "description": "List Hex upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_hex_create", - "summary": "Create a Hex upstream config for this repository.", - "description": "Create a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_hex_read", - "summary": "Retrieve a Hex upstream config for this repository.", - "description": "Retrieve a Hex upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_hex_update", - "summary": "Update a Hex upstream config for this repository.", - "description": "Update a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_hex_partial_update", - "summary": "Partially update a Hex upstream config for this repository.", - "description": "Partially update a Hex upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_hex_delete", - "summary": "Delete a Hex upstream config for this repository.", - "description": "Delete a Hex upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/": { - "get": { - "operationId": "repos_upstream_maven_list", - "summary": "List Maven upstream configs for this repository.", - "description": "List Maven upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_maven_create", - "summary": "Create a Maven upstream config for this repository.", - "description": "Create a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_maven_read", - "summary": "Retrieve a Maven upstream config for this repository.", - "description": "Retrieve a Maven upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_maven_update", - "summary": "Update a Maven upstream config for this repository.", - "description": "Update a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_maven_partial_update", - "summary": "Partially update a Maven upstream config for this repository.", - "description": "Partially update a Maven upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_maven_delete", - "summary": "Delete a Maven upstream config for this repository.", - "description": "Delete a Maven upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/": { - "get": { - "operationId": "repos_upstream_npm_list", - "summary": "List npm upstream configs for this repository.", - "description": "List npm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_npm_create", - "summary": "Create a npm upstream config for this repository.", - "description": "Create a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_npm_read", - "summary": "Retrieve a npm upstream config for this repository.", - "description": "Retrieve a npm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_npm_update", - "summary": "Update a npm upstream config for this repository.", - "description": "Update a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_npm_partial_update", - "summary": "Partially update a npm upstream config for this repository.", - "description": "Partially update a npm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_npm_delete", - "summary": "Delete a npm upstream config for this repository.", - "description": "Delete a npm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/": { - "get": { - "operationId": "repos_upstream_nuget_list", - "summary": "List NuGet upstream configs for this repository.", - "description": "List NuGet upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_nuget_create", - "summary": "Create a NuGet upstream config for this repository.", - "description": "Create a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_nuget_read", - "summary": "Retrieve a NuGet upstream config for this repository.", - "description": "Retrieve a NuGet upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_nuget_update", - "summary": "Update a NuGet upstream config for this repository.", - "description": "Update a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_nuget_partial_update", - "summary": "Partially update a NuGet upstream config for this repository.", - "description": "Partially update a NuGet upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_nuget_delete", - "summary": "Delete a NuGet upstream config for this repository.", - "description": "Delete a NuGet upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/": { - "get": { - "operationId": "repos_upstream_python_list", - "summary": "List Python upstream configs for this repository.", - "description": "List Python upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_python_create", - "summary": "Create a Python upstream config for this repository.", - "description": "Create a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_python_read", - "summary": "Retrieve a Python upstream config for this repository.", - "description": "Retrieve a Python upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_python_update", - "summary": "Update a Python upstream config for this repository.", - "description": "Update a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_python_partial_update", - "summary": "Partially update a Python upstream config for this repository.", - "description": "Partially update a Python upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_python_delete", - "summary": "Delete a Python upstream config for this repository.", - "description": "Delete a Python upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/": { - "get": { - "operationId": "repos_upstream_rpm_list", - "summary": "List RedHat upstream configs for this repository.", - "description": "List RedHat upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_rpm_create", - "summary": "Create a RedHat upstream config for this repository.", - "description": "Create a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_rpm_read", - "summary": "Retrieve a RedHat upstream config for this repository.", - "description": "Retrieve a RedHat upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_rpm_update", - "summary": "Update a RedHat upstream config for this repository.", - "description": "Update a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_rpm_partial_update", - "summary": "Partially update a RedHat upstream config for this repository.", - "description": "Partially update a RedHat upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_rpm_delete", - "summary": "Delete a RedHat upstream config for this repository.", - "description": "Delete a RedHat upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/": { - "get": { - "operationId": "repos_upstream_ruby_list", - "summary": "List Ruby upstream configs for this repository.", - "description": "List Ruby upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_ruby_create", - "summary": "Create a Ruby upstream config for this repository.", - "description": "Create a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_ruby_read", - "summary": "Retrieve a Ruby upstream config for this repository.", - "description": "Retrieve a Ruby upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_ruby_update", - "summary": "Update a Ruby upstream config for this repository.", - "description": "Update a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_ruby_partial_update", - "summary": "Partially update a Ruby upstream config for this repository.", - "description": "Partially update a Ruby upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_ruby_delete", - "summary": "Delete a Ruby upstream config for this repository.", - "description": "Delete a Ruby upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/": { - "get": { - "operationId": "repos_upstream_swift_list", - "summary": "List Swift upstream configs for this repository.", - "description": "List Swift upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "post": { - "operationId": "repos_upstream_swift_create", - "summary": "Create a Swift upstream config for this repository.", - "description": "Create a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_swift_read", - "summary": "Retrieve a Swift upstream config for this repository.", - "description": "Retrieve a Swift upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "put": { - "operationId": "repos_upstream_swift_update", - "summary": "Update a Swift upstream config for this repository.", - "description": "Update a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "patch": { - "operationId": "repos_upstream_swift_partial_update", - "summary": "Partially update a Swift upstream config for this repository.", - "description": "Partially update a Swift upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "delete": { - "operationId": "repos_upstream_swift_delete", - "summary": "Delete a Swift upstream config for this repository.", - "description": "Delete a Swift upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_upstream_sources(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/reindex/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-ecdsa/": { - "get": { - "operationId": "repos_x509_ecdsa_list", - "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 ECDSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-rsa/": { - "get": { - "operationId": "repos_x509_rsa_list", - "summary": "Retrieve the active X.509 RSA certificate for the Repository.", - "description": "Retrieve the active X.509 RSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 RSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509RsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo(repo: 'Repository')", - "x-objectPermissionRequired": "package.view_repo(repo: 'Repository')", - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/create-entitlement/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/eula/{eula}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "eula", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/invalidate-cache/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/retention/": { - "get": { - "operationId": "repo_retention_read", - "summary": "Retrieve the retention rules for the repository.", - "description": "Retrieve the retention rules for the repository.", - "responses": { - "200": { - "description": "Retrieved the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "repo_retention_partial_update", - "summary": "Update the retention rules for the repository.", - "description": "Update the retention rules for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-owner/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-region/": { - "post": { - "operationId": "repos_transfer_region", - "summary": "Transfer a repository to a different region.", - "description": "Transfer a repository to a different region.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferRegionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Repository region transfer initiated." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom storage regions not available on plan; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner, namespace or repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_settings(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Groups": { - "get": { - "operationId": "scim_v2_Groups_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Groups_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Groups/{id}": { - "get": { - "operationId": "scim_v2_Groups_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Groups_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Groups_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Groups_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ResourceTypes": { - "get": { - "operationId": "scim_v2_ResourceTypes_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ResourceTypes_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ResourceTypes/{id}": { - "get": { - "operationId": "scim_v2_ResourceTypes_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ResourceTypes_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ResourceTypes_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ResourceTypes_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/ServiceProviderConfig": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_list", - "description": "", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_ServiceProviderConfig_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/ServiceProviderConfig/{id}": { - "get": { - "operationId": "scim_v2_ServiceProviderConfig_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_ServiceProviderConfig_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_ServiceProviderConfig_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_ServiceProviderConfig_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/scim/v2/Users": { - "get": { - "operationId": "scim_v2_Users_list", - "description": "", - "parameters": [ - { - "name": "count", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "startIndex", - "in": "query", - "description": "The initial index from which to return the results.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "post": { - "operationId": "scim_v2_Users_create", - "description": "", - "responses": { - "201": { - "description": "Created" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/scim/v2/Users/{identifier}": { - "get": { - "operationId": "scim_v2_Users_read", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "put": { - "operationId": "scim_v2_Users_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "patch": { - "operationId": "scim_v2_Users_partial_update", - "description": "", - "responses": { - "200": { - "description": "OK" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "delete": { - "operationId": "scim_v2_Users_delete", - "description": "", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/scim+json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "scim" - ], - "security": [], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "orgs.deprovision_scim_user(org: 'Organization')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "(([A-Za-z0-9]+[.-_+])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\\.[A-Z|a-z]{2,})+)|([\\w\\d]{1,13})" - } - } - ] - }, - "/status/check/basic/": { - "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", - "responses": { - "200": { - "description": "Status check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatusBasic" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "status" - ], - "security": [], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/storage-regions/": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", - "responses": { - "200": { - "description": "Available storage regions retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": false, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [] - }, - "/storage-regions/{slug}/": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ], - "x-hidden": false, - "x-detail": true, - "x-anonymous": true, - "x-permissionRequired": false, - "x-objectPermissionRequired": false, - "x-maybeBadOperationId": true - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/usage/{owner}/{requested_metric}/": { - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "requested_metric", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/additional-onboarding-actions/": { - "parameters": [] - }, - "/user/default-org/": { - "parameters": [] - }, - "/user/emails/": { - "parameters": [] - }, - "/user/emails/{email}/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/emails/{email}/resend-confirmation/": { - "parameters": [ - { - "name": "email", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/": { - "parameters": [] - }, - "/user/invites/{invite_id}/accept/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/invites/{invite_id}/reject/": { - "parameters": [ - { - "name": "invite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/logins/": { - "parameters": [] - }, - "/user/logout/": { - "parameters": [] - }, - "/user/logout/other-sessions/": { - "parameters": [] - }, - "/user/password/": { - "parameters": [] - }, - "/user/permissions/check/": { - "parameters": [] - }, - "/user/profile/": { - "parameters": [] - }, - "/user/refresh-token/": { - "parameters": [] - }, - "/user/self/": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "AllowAny" - ] - }, - "parameters": [] - }, - "/user/sessions/": { - "parameters": [] - }, - "/user/slug/": { - "parameters": [] - }, - "/user/soft-delete/": { - "parameters": [] - }, - "/user/token/": { - "post": { - "operationId": "user_token_create", - "summary": "Create or retrieve API token for a user.", - "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "security": [ - { - "basic": [] - } - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": false, - "x-objectPermissionRequired": false - }, - "parameters": [] - }, - "/user/token/restrictions/": { - "parameters": [] - }, - "/user/token/restrictions/{token}/": { - "parameters": [ - { - "name": "token", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/tokens/": { - "get": { - "operationId": "user_tokens_list", - "summary": "Retrieve the API key assigned to the user that is currently authenticated.", - "description": "Retrieve the API key assigned to the user that is currently authenticated.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the user that is currently authenticated.", - "description": "Create an API key for the user that is currently authenticated.", - "responses": { - "201": { - "description": "Created an API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": false, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh/": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the user that is currently authenticated.", - "description": "Refresh the specified API key for the user that is currently authenticated.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated", - "IsPrivilegeEscalated" - ], - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/totp/backup/disable/": { - "parameters": [] - }, - "/user/totp/backup/enable/": { - "parameters": [] - }, - "/user/totp/confirm/": { - "parameters": [] - }, - "/user/totp/disable/": { - "parameters": [] - }, - "/user/totp/enable/": { - "parameters": [] - }, - "/user/totp/settings/": { - "parameters": [] - }, - "/user/two-factor/": { - "parameters": [] - }, - "/users/profile/{slug}/": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "users" - ], - "x-hidden": false, - "x-detail": true, - "x-nonStandardPermission": true, - "x-nonStandardPermissionClasses": [ - "IsAuthenticated" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_vulnerability_scan_results(namespace: 'Namespace')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.view_repo_vulnerability_scan_results(repo: 'Repository')", - "x-objectPermissionRequired": false - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": false, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ], - "x-hidden": false, - "x-detail": true, - "x-permissionRequired": "package.change_repo_webhooks(repo: 'Repository')", - "x-objectPermissionRequired": false, - "x-privilegeEscalationRequired": true - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "CargoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } - }, - "SwiftUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequest" - } - } - } - }, - "NpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequest" - } - } - } - }, - "SwiftPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUploadRequest" - } - } - } - }, - "HexUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequest" - } - } - } - }, - "RubyPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUploadRequest" - } - } - } - }, - "CargoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUploadRequest" - } - } - } - }, - "RubyUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequest" - } - } - } - }, - "RpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequest" - } - } - } - }, - "MavenUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequest" - } - } - } - }, - "OrganizationTeamMembers": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "VagrantPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUploadRequest" - } - } - } - }, - "GoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequest" - } - } - } - }, - "ConanPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUploadRequest" - } - } - } - }, - "RawPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUploadRequest" - } - } - } - }, - "HelmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequest" - } - } - } - }, - "NugetUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequest" - } - } - } - }, - "TerraformPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUploadRequest" - } - } - } - }, - "PackageFileUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUploadRequest" - } - } - } - }, - "PackageDenyPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequest" - } - } - } - }, - "ProviderSettingsRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequest" - } - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" - } - } - } - }, - "AlpinePackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUploadRequest" - } - } - } - }, - "CocoapodsPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" - } - } - } - }, - "ComposerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUploadRequest" - } - } - } - }, - "CondaPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUploadRequest" - } - } - } - }, - "CranPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUploadRequest" - } - } - } - }, - "DartPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUploadRequest" - } - } - } - }, - "DebPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUploadRequest" - } - } - } - }, - "DockerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUploadRequest" - } - } - } - }, - "HelmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUploadRequest" - } - } - } - }, - "HexPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUploadRequest" - } - } - } - }, - "LuarocksPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUploadRequest" - } - } - } - }, - "MavenPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUploadRequest" - } - } - } - }, - "NpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUploadRequest" - } - } - } - }, - "NugetPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUploadRequest" - } - } - } - }, - "P2PackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUploadRequest" - } - } - } - }, - "PythonPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUploadRequest" - } - } - } - }, - "RpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUploadRequest" - } - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" - } - } - } - }, - "ComposerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequest" - } - } - } - }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } - } - } - }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": [ - "detail" - ], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - }, - "fields": { - "title": "Fields", - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - } - }, - "GeoIpLocation": { - "required": [ - "city", - "continent", - "country", - "postal_code" - ], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "PlanPrice": { - "description": "List of prices for the plan", - "required": [ - "amount", - "billing_interval", - "currency" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Plan Amount", - "type": "string", - "format": "decimal" - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing", - "type": "string", - "minLength": 1 - } - } - }, - "Plan": { - "required": [ - "identifier", - "is_enterprise", - "prices" - ], - "type": "object", - "properties": { - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_enterprise": { - "title": "Is enterprise", - "description": "Is this an enterprise plan", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "prices": { - "description": "List of prices for the plan", - "type": "array", - "items": { - "$ref": "#/components/schemas/PlanPrice" - } - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - } - } - }, - "Payment": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "When was the payment created and attempted", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "failure_code": { - "title": "Failure code", - "description": "Failure Code for the payment", - "type": "string", - "minLength": 1 - }, - "failure_message": { - "title": "Failure message", - "description": "Failure message for the payment", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Payment Status", - "type": "string", - "minLength": 1 - } - } - }, - "AccountStatus": { - "required": [ - "payments" - ], - "type": "object", - "properties": { - "billing_period_end_date": { - "title": "Billing period end date", - "description": "When does the current billing period end", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "payments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Payment" - } - }, - "status": { - "title": "Status", - "description": "Current Status of account", - "type": "string", - "minLength": 1 - } - } - }, - "InvoiceItem": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the line", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Invoice": { - "type": "object", - "properties": { - "amount_due": { - "title": "Amount due", - "description": "Amount due to be paid", - "type": "integer", - "readOnly": true - }, - "amount_paid": { - "title": "Amount paid", - "description": "Amount paid", - "type": "integer", - "readOnly": true - }, - "billing_reason": { - "title": "Billing reason", - "description": "Reason for the invoice to be created", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "billing_reason_text": { - "title": "Billing reason text", - "type": "string", - "readOnly": true - }, - "created": { - "title": "Created", - "description": "When was the invoice created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "currency": { - "title": "Currency", - "description": "The currency of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoice_id": { - "title": "Invoice id", - "description": "Invoice ID", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "invoiceitems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InvoiceItem" - }, - "readOnly": true - }, - "number": { - "title": "Number", - "description": "Invoice number", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Status of the invoice", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "InvoicePDF": { - "type": "object", - "properties": { - "invoice_pdf": { - "title": "Invoice pdf", - "description": "Link to the invoice in PDF", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "CardPaymentMethod": { - "type": "object", - "properties": { - "brand": { - "title": "Brand", - "description": "Card Brand (e.g. Visa)", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "exp_month": { - "title": "Exp month", - "description": "Expiration Month", - "type": "integer", - "readOnly": true - }, - "exp_year": { - "title": "Exp year", - "description": "Expiration Year", - "type": "integer", - "readOnly": true - }, - "last4": { - "title": "Last4", - "description": "Last 4 digits of card", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "PaymentMethod": { - "required": [ - "card" - ], - "type": "object", - "properties": { - "card": { - "$ref": "#/components/schemas/CardPaymentMethod" - }, - "created": { - "title": "Created", - "description": "When was the payment method created", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "is_default": { - "title": "Is default", - "description": "Is this the default payment method", - "type": "boolean", - "readOnly": true - }, - "type": { - "title": "Type", - "description": "Payment Method Type", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "BillingPeriod": { - "type": "object", - "properties": { - "is_current": { - "title": "Is current", - "description": "Is this the current Billing Period", - "type": "boolean", - "readOnly": true - }, - "period_end_at": { - "title": "Period End At", - "description": "The datetime usage is recorded to.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "period_start_at": { - "title": "Period Start At", - "description": "The datetime usage is recorded from.", - "type": "string", - "format": "date-time" - }, - "trial": { - "title": "Trial", - "description": "Usage period occurred during a trial.", - "type": "boolean" - } - } - }, - "PortalUrl": { - "required": [ - "url" - ], - "type": "object", - "properties": { - "url": { - "title": "Url", - "description": "Billing Portal URL to Redirect User to", - "type": "string", - "format": "uri", - "minLength": 1 - } - } - }, - "OnDemandUsageProduct": { - "description": "Products in the On-Demand Usage Subscription", - "required": [ - "currency", - "identifier", - "price_per_unit", - "unit" - ], - "type": "object", - "properties": { - "currency": { - "title": "Currency", - "description": "Currency used for invoicing product", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Identifier for this product", - "type": "string", - "minLength": 1 - }, - "price_per_unit": { - "title": "Price per unit", - "description": "Price per unit", - "type": "string", - "format": "decimal" - }, - "unit": { - "title": "Unit", - "description": "Unit for this product", - "type": "string", - "minLength": 1 - } - } - }, - "OnDemandUsageSubcription": { - "description": "Details of On-Demand Usage Subscription", - "required": [ - "billing_interval", - "products" - ], - "type": "object", - "properties": { - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "products": { - "description": "Products in the On-Demand Usage Subscription", - "type": "array", - "items": { - "$ref": "#/components/schemas/OnDemandUsageProduct" - } - } - } - }, - "Subscription": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Subscription Amount", - "type": "string", - "format": "decimal" - }, - "bandwidth_allowance": { - "title": "Bandwidth allowance", - "description": "Package Delivery Allowance provided by plan", - "type": "integer" - }, - "bandwidth_unit": { - "title": "Bandwidth unit", - "description": "Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "billing_interval": { - "title": "Billing interval", - "description": "Interval for billing (month or year)", - "type": "string", - "minLength": 1 - }, - "can_charge": { - "title": "Can charge", - "description": "Does the customer have payment method configured", - "type": "boolean" - }, - "cancel_at_period_end": { - "title": "Cancel at period end", - "description": "Subscription will be cancelled when billing period ends", - "type": "boolean" - }, - "currency": { - "title": "Currency", - "description": "Currency used for invoicing subscription", - "type": "string", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_delinquent": { - "title": "Is delinquent", - "description": "Does this subscription have outstanding invoices", - "type": "boolean" - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "Plan Name", - "type": "string", - "minLength": 1 - }, - "next_payment_date": { - "title": "Next payment date", - "description": "Next Invoice Payment Date", - "type": "string", - "format": "date-time" - }, - "on_demand_usage": { - "$ref": "#/components/schemas/OnDemandUsageSubcription" - }, - "oss_bandwidth_allowance": { - "title": "Oss bandwidth allowance", - "description": "OSS Package Delivery Allowance provided by plan", - "type": "integer" - }, - "oss_bandwidth_unit": { - "title": "Oss bandwidth unit", - "description": "OSS Package Delivery Unit", - "type": "string", - "minLength": 1 - }, - "oss_storage_allowance": { - "title": "Oss storage allowance", - "description": "OSS Artifact Data Allowance provided by plan", - "type": "integer" - }, - "oss_storage_unit": { - "title": "Oss storage unit", - "description": "OSS Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "status": { - "title": "Status", - "description": "Current Status of subscription", - "type": "string", - "minLength": 1 - }, - "storage_allowance": { - "title": "Storage allowance", - "description": "Artifact Data Allowance provided by plan", - "type": "integer" - }, - "storage_unit": { - "title": "Storage unit", - "description": "Artifact Data Unit", - "type": "string", - "minLength": 1 - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - }, - "trial_end_date": { - "title": "Trial end date", - "description": "Trial End Date", - "type": "string", - "format": "date-time" - } - } - }, - "TrialDays": { - "required": [ - "identifier", - "is_trialing", - "remaining_trial_days", - "trial_days" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "Plan Identifier", - "type": "string", - "minLength": 1 - }, - "is_trialing": { - "title": "Is trialing", - "description": "Is this subscription currently under trial", - "type": "boolean" - }, - "remaining_trial_days": { - "title": "Remaining trial days", - "description": "Remaining Unused Trial Days", - "type": "integer" - }, - "trial_days": { - "title": "Trial days", - "description": "Days left in Trial", - "type": "integer" - } - } - }, - "OrganizationCustomDomainNestedRepo": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "backend_kind_str": { - "title": "Backend kind str", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "domain_type_str": { - "title": "Domain type str", - "type": "string", - "readOnly": true - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PublicBroadcastsOrganization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - } - } - }, - "PublicBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "PublicBroadcastsRepository": { - "required": [ - "gpg_keys", - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string", - "maxLength": 1000 - }, - "gpg_keys": { - "type": "array", - "items": { - "type": "integer" - }, - "uniqueItems": true - }, - "is_open_source": { - "title": "Is open source", - "type": "string", - "readOnly": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "open_source_license_name": { - "title": "Open source license name", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_license_url": { - "title": "Open source license url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Total Packages", - "description": "The total number of packages in this repository.", - "type": "integer" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 50 - } - } - }, - "DistributionVersion": { - "description": "A list of the versions for this distribution", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The textual name for this version.", - "type": "string", - "maxLength": 64 - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this version", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "DistributionFull": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "versions": { - "description": "A list of the versions for this distribution", - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "readOnly": true - } - } - }, - "Eula": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "nullable": true - }, - "number": { - "title": "Number", - "description": "A sequential identifier that increments by one for each new commit in a repository.", - "type": "integer", - "nullable": true - } - }, - "nullable": true - }, - "RepositoryToken": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTokenRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSyncRequest": { - "required": [ - "source" - ], - "type": "object", - "properties": { - "source": { - "title": "Source", - "description": "The source repository slug (in the same owner namespace).", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSync": { - "type": "object", - "properties": { - "tokens": { - "description": "The entitlements that have been synchronised.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - }, - "readOnly": true - } - } - }, - "RepositoryTokenRequestPatch": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenAction": { - "type": "object", - "properties": {} - }, - "RepositoryTokenRefreshRequest": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenRefresh": { - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageFileUploadRequest": { - "required": [ - "filename" - ], - "type": "object", - "properties": { - "filename": { - "title": "Filename", - "description": "Filename for the package file upload.", - "type": "string", - "minLength": 1 - }, - "md5_checksum": { - "title": "Md5 checksum", - "description": "MD5 checksum for a POST-based package file upload.", - "type": "string", - "maxLength": 32, - "minLength": 32 - }, - "method": { - "title": "Method", - "description": "The method to use for package file upload.", - "type": "string", - "enum": [ - "put_parts", - "put", - "post", - "presigned", - "unsigned_put" - ], - "default": "post" - }, - "sha256_checksum": { - "title": "Sha256 checksum", - "description": "SHA256 checksum for a PUT-based package file upload.", - "type": "string", - "maxLength": 64, - "minLength": 64 - } - } - }, - "PackageFileUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use when creating packages", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_fields": { - "title": "Upload fields", - "description": "The dictionary of fields that must be sent with POST uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_headers": { - "title": "Upload headers", - "description": "The dictionary of headers that must be sent with uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step POST or PUT upload", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step POST or PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "PackageFilePartsUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use uploading parts.", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step PUT upload.", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "Distribution": { - "description": "The distributions supported by this package format", - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - } - }, - "nullable": true - }, - "FormatSupportUpstream": { - "description": "The upstream support for the package format", - "required": [ - "auth_modes", - "caching", - "indexing", - "proxying" - ], - "type": "object", - "properties": { - "auth_modes": { - "description": "The authentication modes supported by the upstream format", - "type": "array", - "items": { - "type": "string", - "enum": [ - "Username and Password", - "Token", - "Certificate and Key" - ], - "default": "Username and Password" - } - }, - "caching": { - "title": "Caching", - "description": "If true the upstream format supports caching", - "type": "boolean" - }, - "indexing": { - "title": "Indexing", - "description": "If true the upstream format supports indexing", - "type": "boolean" - }, - "indexing_behavior": { - "title": "Indexing behavior", - "description": "The behavior of the upstream when indexing", - "type": "string", - "enum": [ - "Unsupported", - "Ahead-of-time (static) indexing", - "Just-in-time (dynamic) indexing" - ], - "default": "Unsupported" - }, - "proxying": { - "title": "Proxying", - "description": "If true the upstream format supports proxying", - "type": "boolean" - }, - "signature_verification": { - "title": "Signature verification", - "description": "The signature verification supported by the upstream format", - "type": "string", - "enum": [ - "Unsupported", - "Repository Metadata", - "Packages", - "Repository Metadata and Packages" - ], - "default": "Unsupported" - } - } - }, - "FormatSupport": { - "description": "A set of what the package format supports", - "required": [ - "dependencies", - "distributions", - "file_lists", - "metadata", - "upstreams", - "versioning" - ], - "type": "object", - "properties": { - "dependencies": { - "title": "Dependencies", - "description": "If true the package format supports dependencies", - "type": "boolean" - }, - "distributions": { - "title": "Distributions", - "description": "If true the package format supports distributions", - "type": "boolean" - }, - "file_lists": { - "title": "File lists", - "description": "If true the package format supports file lists", - "type": "boolean" - }, - "metadata": { - "title": "Metadata", - "description": "If true the package format supports metadata", - "type": "boolean" - }, - "upstreams": { - "$ref": "#/components/schemas/FormatSupportUpstream" - }, - "versioning": { - "title": "Versioning", - "description": "If true the package format supports versioning", - "type": "boolean" - } - } - }, - "Format": { - "required": [ - "description", - "extensions", - "name", - "premium", - "slug", - "supports" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the package format", - "type": "string", - "minLength": 1 - }, - "distributions": { - "description": "The distributions supported by this package format", - "type": "array", - "items": { - "$ref": "#/components/schemas/Distribution" - }, - "nullable": true - }, - "extensions": { - "description": "A non-exhaustive list of extensions supported", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "name": { - "title": "Name", - "description": "Name for the package format", - "type": "string", - "minLength": 1 - }, - "premium": { - "title": "Premium", - "description": "If true the package format is a premium-only feature", - "type": "boolean" - }, - "premium_plan_id": { - "title": "Premium plan id", - "description": "The minimum plan id required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "premium_plan_name": { - "title": "Premium plan name", - "description": "The minimum plan name required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug": { - "title": "Slug", - "description": "Slug for the package format", - "type": "string", - "minLength": 1 - }, - "supports": { - "$ref": "#/components/schemas/FormatSupport" - } - } - }, - "PrivilegeEscalation": { - "required": [ - "type" - ], - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password for verification.", - "type": "string", - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "description": "TOTP code for verification.", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "description": "The type of verification used.", - "type": "string", - "enum": [ - "totp", - "password" - ] - } - } - }, - "UserRequestPasswordResetRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserRequestPasswordReset": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - } - } - }, - "UserResetPasswordRequest": { - "required": [ - "key", - "password" - ], - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Password reset token.", - "type": "string", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Enter a new password.", - "type": "string", - "minLength": 1 - } - } - }, - "UserResetPassword": { - "type": "object", - "properties": {} - }, - "DeviceVerificationRequest": { - "required": [ - "device_id" - ], - "type": "object", - "properties": { - "device_id": { - "title": "Device id", - "description": "The device ID to verify.", - "type": "string", - "minLength": 1 - } - } - }, - "DeviceVerification": { - "type": "object", - "properties": {} - }, - "License": { - "type": "object", - "properties": { - "full_name": { - "title": "Full name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the license.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "spdx_identifier": { - "title": "Spdx identifier", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "CommonBandwidthMetricsValue": { - "description": "Average bandwidth usage in the specified period, e.g. a day", - "required": [ - "display", - "value" - ], - "type": "object", - "properties": { - "display": { - "title": "Display", - "description": "Bandwidth usage value", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "units": { - "title": "Units", - "description": "Unit of measurement e.g. bytes", - "type": "string", - "default": "bytes", - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "Human readable version of display value", - "type": "integer" - } - } - }, - "CommonBandwidthMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - } - } - }, - "CommonDownloadsMetricsValue": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "value": { - "title": "Value", - "type": "integer" - } - } - }, - "CommonDownloadsMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - } - } - }, - "CommonMetrics": { - "required": [ - "bandwidth", - "downloads" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "Number of packages with at least 1 download", - "type": "integer", - "default": 0 - }, - "bandwidth": { - "$ref": "#/components/schemas/CommonBandwidthMetrics" - }, - "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": [ - "tokens" - ], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": [ - "packages" - ], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "OidcRequest": { - "required": [ - "oidc_token", - "service_slug" - ], - "type": "object", - "properties": { - "oidc_token": { - "title": "Oidc token", - "description": "Serialized OIDC token.", - "type": "string", - "minLength": 1 - }, - "service_slug": { - "title": "Service slug", - "description": "Slug for the service account.", - "type": "string", - "minLength": 1 - } - } - }, - "Oidc": { - "type": "object", - "properties": {} - }, - "Organization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationUserTokenPolicy": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - } - } - }, - "OrganizationUserTokenPolicyRequest": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationUserTokenPolicyRequestPatch": { - "type": "object", - "properties": { - "enforce_refresh": { - "title": "Enforce automatic API key refresh", - "description": "When enabled, API's keys that violate the organization's policy will be replaced automatically.", - "type": "boolean" - }, - "max_age_hours": { - "title": "Maximum permitted API key age", - "description": "The maximum permitted age of an API key for use in the organization. API keys older than this will no longer have access until they are refreshed. To disable the policy unset this value.", - "type": "integer", - "minimum": 24, - "nullable": true - }, - "refresh_immediately": { - "title": "Refresh immediately", - "description": "If set to True, API keys that violate this policy will be replaced immediately after the request is made. There is no way to undo this.", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfig": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo_url": { - "title": "Company logo url", - "type": "string", - "readOnly": true - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequest": { - "required": [ - "color_accent", - "color_background", - "color_text" - ], - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationBroadcastsConfigRequestPatch": { - "type": "object", - "properties": { - "color_accent": { - "title": "Color accent", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_background": { - "title": "Color background", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "color_text": { - "title": "Color text", - "description": "A hexadecimal color code", - "type": "string", - "pattern": "^#([A-Fa-f0-9]{3}|[A-Fa-f0-9]{6})$", - "maxLength": 7, - "minLength": 1 - }, - "company_logo": { - "title": "Company logo", - "type": "string", - "readOnly": true, - "format": "uri" - }, - "show_broadcast_description": { - "title": "Show broadcast description", - "type": "boolean" - }, - "show_broadcast_num_downloads": { - "title": "Show broadcast num downloads", - "type": "boolean" - }, - "show_broadcast_num_packages": { - "title": "Show broadcast num packages", - "type": "boolean" - }, - "show_checksums": { - "title": "Show checksums", - "type": "boolean" - }, - "show_date_modified": { - "title": "Show date modified", - "type": "boolean" - }, - "show_gpg_fingerprint": { - "title": "Show gpg fingerprint", - "type": "boolean" - }, - "show_gpg_signature": { - "title": "Show gpg signature", - "type": "boolean" - }, - "show_latest_version": { - "title": "Show latest version", - "type": "boolean" - }, - "show_license": { - "title": "Show license", - "type": "boolean" - }, - "show_package_num_downloads": { - "title": "Show package num downloads", - "type": "boolean" - }, - "show_readme": { - "title": "Show readme", - "type": "boolean" - }, - "show_size": { - "title": "Show size", - "type": "boolean" - }, - "show_status": { - "title": "Show status", - "type": "boolean" - }, - "show_tags": { - "title": "Show tags", - "type": "boolean" - }, - "show_type": { - "title": "Show type", - "type": "boolean" - }, - "show_uploaded_at": { - "title": "Show uploaded at", - "type": "boolean" - }, - "show_uploaded_by": { - "title": "Show uploaded by", - "type": "boolean" - }, - "show_vulnerability_check": { - "title": "Show vulnerability check", - "type": "boolean" - }, - "show_workspace_num_downloads": { - "title": "Show workspace num downloads", - "type": "boolean" - }, - "show_workspace_num_packages": { - "title": "Show workspace num packages", - "type": "boolean" - }, - "use_workspace_avatar": { - "title": "Use workspace avatar", - "description": "Use workspace avatar as the default logo", - "type": "boolean" - } - } - }, - "OrganizationCustomDomains": { - "required": [ - "repository" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "description": "The domain for a specific package format.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 99 - ], - "readOnly": true, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "dns_alias_value": { - "title": "Dns alias value", - "description": "The CNAME value to use to publish this domain publicly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_name": { - "title": "Dns cert name", - "description": "The CNAME name to create to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dns_cert_value": { - "title": "Dns cert value", - "description": "The CNAME value to use to allow us to generate a TLS cert.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "domain_type": { - "title": "Domain type", - "description": "The type for the custom domain.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ], - "readOnly": true, - "default": 0 - }, - "enabled": { - "title": "Enabled", - "description": "If checked, the domain is enabled.", - "type": "boolean", - "readOnly": true - }, - "host": { - "title": "Host", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "type": "integer", - "readOnly": true - }, - "primary": { - "title": "Primary", - "description": "If checked, this domain is the preferred/primary domain in the case that there are other overlapping domains (e.g. for the same repository, package format, etc.)", - "type": "boolean", - "readOnly": true - }, - "redirect_root": { - "title": "Redirect root", - "description": "If checked, the domain root redirects to the repository.", - "type": "boolean", - "readOnly": true - }, - "redirect_root_url": { - "title": "Redirect root url", - "description": "Where root requests should be redirected to if redirect_root is enabled.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "repository": { - "$ref": "#/components/schemas/OrganizationCustomDomainNestedRepo" - }, - "repository_only": { - "title": "Repository only", - "description": "If checked, the domain applies to a specific repository only.", - "type": "boolean", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "validated": { - "title": "Validated", - "description": "If validated, the domain is ready for requests.", - "type": "boolean", - "readOnly": true - }, - "validated_at": { - "title": "Validated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationDefaultObjectPrivileges": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "OrganizationDefaultObjectPrivilegesRequest": { - "type": "object", - "properties": { - "default_object_privileges": { - "title": "Default object privileges", - "description": "The default object privileges for organization members.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - } - } - }, - "PackageDenyPolicy": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Block downloads" - ], - "readOnly": true, - "default": "Block downloads" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "In Progress" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PackageDenyPolicyRequest": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "PackageDenyPolicyRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationFeatureFlags": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The human/computer readable name.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationGlobalPrivileges": { - "required": [ - "label", - "privilege", - "selected" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "type": "string", - "minLength": 1 - }, - "privilege": { - "title": "Privilege", - "type": "string", - "minLength": 1 - }, - "selected": { - "title": "Selected", - "type": "boolean" - } - } - }, - "OrganizationTeamInvite": { - "required": [ - "team" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user in the team.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationInvite": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationInviteRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationInviteUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteUpdate": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteExtend": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm of the invite to be extended.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageVulnerability": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "NestedLicensePolicy": { - "required": [ - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageLicensePolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "OrganizationPackageLicensePolicy": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageLicensePolicyRequest": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackageLicensePolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageLicensePolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageLicensePolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationMembership": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "is_active": { - "title": "Is active", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipRequestPatch": { - "type": "object", - "properties": {} - }, - "OrganizationMembershipRoleUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - } - } - }, - "OrganizationMembershipRoleUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdateRequestPatch": { - "type": "object", - "properties": { - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "ProviderSettings": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackagePolicyViolationsLicense": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NestedVulnerabilityScanResults": { - "required": [ - "identifier", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackagePolicyViolationsVulnerability": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationProductFeatures": { - "type": "object", - "properties": { - "plan": { - "title": "Plan", - "description": "Plan Name", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationSAMLAuth": { - "required": [ - "saml_auth_enabled", - "saml_auth_enforced" - ], - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationSAMLAuthRequestPatch": { - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGroupSync": { - "required": [ - "idp_key", - "idp_value", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncRequest": { - "required": [ - "idp_key", - "idp_value", - "organization", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "organization": { - "title": "Organization", - "type": "string" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncStatus": { - "type": "object", - "properties": { - "saml_group_sync_status": { - "title": "Saml group sync status", - "type": "boolean", - "readOnly": true - } - } - }, - "OrganizationSCIM": { - "required": [ - "scim_enabled" - ], - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - }, - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationSCIMRequestPatch": { - "type": "object", - "properties": { - "scim_enabled": { - "title": "Scim enabled", - "type": "boolean" - } - } - }, - "OrganizationSCIMToken": { - "type": "object", - "properties": { - "scim_token": { - "title": "Scim token", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "ServiceTeams": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The team role associated with the service", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - }, - "slug": { - "title": "Slug", - "description": "The teams associated with the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "Service": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "key": { - "title": "Key", - "description": "The API key of the service", - "type": "string", - "readOnly": true - }, - "key_expires_at": { - "title": "Key expires at", - "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug": { - "title": "Slug", - "description": "The slug of the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "OrganizationGeneralSettings": { - "required": [ - "email", - "name" - ], - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGeneralSettingsRequestPatch": { - "type": "object", - "properties": { - "billing_email": { - "title": "Billing email", - "description": "The billing accounts email for your organization (invoices will be sent here) - If blank this defaults to the primary email.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "country": { - "title": "Country", - "description": "The country your organization is based in.", - "type": "string", - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "nullable": true - }, - "default_team_visibility": { - "title": "Default team visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - }, - "email": { - "title": "Email", - "description": "The primary contact email for your organization.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "maxLength": 60, - "nullable": true - }, - "name": { - "title": "Name", - "description": "A descriptive name for your organization.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "support_email": { - "title": "Support email", - "description": "The email address that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "email", - "maxLength": 254, - "nullable": true - }, - "support_url": { - "title": "Support url", - "description": "The URL/website that your users can use to get support from you. If you configure this, we'll show it in places such as configuration and install scripts, when things go wrong.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "maxLength": 80, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationRenameSlugRequest": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationRenameSlug": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - } - } - }, - "OrganizationTeam": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamMembership": { - "description": "The team members", - "required": [ - "role", - "user" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamMembers": { - "required": [ - "members" - ], - "type": "object", - "properties": { - "members": { - "description": "The team members", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMembership" - } - } - } - }, - "OrganizationEditTeamMemberRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationEditTeamMember": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - } - } - }, - "OrganizationTeamMember": { - "required": [ - "role" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "OrganizationUsage": { - "type": "object", - "properties": { - "bandwidth_overage_limit": { - "title": "Package Delivery On-Demand Limit (GBs)", - "description": "The on-demand limit for package delivery usage (in GBs).", - "type": "integer", - "nullable": true - }, - "storage_overage_limit": { - "title": "Artifact Data On-Demand Limit (GBs)", - "description": "The on-demand limit for artifact data usage (in GBs).", - "type": "integer", - "nullable": true - } - } - }, - "OrganizationUsageUpdateRequestPatch": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "OrganizationUsageUpdate": { - "type": "object", - "properties": { - "allow_open_source_overage": { - "title": "Allow open source overage", - "type": "boolean" - }, - "bandwidth_overage_limit": { - "title": "Bandwidth overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - }, - "storage_overage_limit": { - "title": "Storage overage limit", - "type": "integer", - "minimum": 0, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationPackageVulnerabilityPolicy": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageVulnerabilityPolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "DockerLayerReference": { - "type": "object", - "properties": { - "command": { - "title": "Command", - "description": "The V1 command for managing the layer.", - "type": "string", - "readOnly": true - }, - "digest": { - "title": "Digest", - "description": "The digest of the layer.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_empty": { - "title": "Is empty", - "description": "Is the layer an empty (metadata/directive-only) or non-empty (content/files) layer.", - "type": "boolean", - "readOnly": true - }, - "layer_type": { - "title": "Layer type", - "description": "The type of layer this is relative to image.", - "type": "string", - "enum": [ - "Base Layer", - "Intermediate Layer", - "Final Layer" - ], - "readOnly": true, - "default": "Base Layer" - }, - "mount_type": { - "title": "Mount type", - "description": "The Mount Type for the layer.", - "type": "string", - "enum": [ - "Local", - "Remote" - ], - "readOnly": true, - "default": "Local" - }, - "processed": { - "title": "Processed", - "description": "Has the layer been processed.", - "type": "boolean", - "readOnly": true - }, - "size": { - "title": "Size", - "description": "The size of the layer (in bytes).", - "type": "integer", - "readOnly": true - } - } - }, - "DockerCosign": { - "description": "The list of docker cosign attestations", - "required": [ - "created_at" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "When this cosign artifact was created", - "type": "string", - "format": "date-time" - }, - "digest": { - "title": "Digest", - "description": "The cosign artifact digest", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "description": "The package identifier of this signature.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - } - } - }, - "DockerManifest": { - "description": "The list of manifests associated with this Docker package", - "type": "object", - "properties": { - "digest": { - "title": "Digest", - "description": "The digest for the manifest.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "is_primary": { - "title": "Is primary", - "description": "Manifests that were directly uploaded by the client are primary. Manifests we generate internally are not primary.", - "type": "boolean", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest Type", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "manifest_type_display": { - "title": "Manifest type display", - "type": "string", - "readOnly": true - } - } - }, - "DockerPackageAdditionalDetails": { - "type": "object", - "properties": { - "attestations": { - "$ref": "#/components/schemas/DockerCosign" - }, - "config_digest": { - "title": "Config digest", - "description": "The digest of the Docker image config", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "layers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerLayerReference" - }, - "readOnly": true - }, - "manifest_string": { - "title": "Manifest string", - "description": "The JSON-encoded manifest string (if any) for the docker package.", - "type": "string", - "readOnly": true - }, - "manifest_type": { - "title": "Manifest type", - "description": "The type of manifest for the image or manifest list.", - "type": "string", - "enum": [ - "Unknown", - "V1 Distribution", - "V1 Distribution (Signed)", - "V2 Distribution", - "V2 Distribution List", - "V1 OCI", - "V1 OCI Index" - ], - "readOnly": true, - "default": "Unknown" - }, - "manifests": { - "$ref": "#/components/schemas/DockerManifest" - }, - "package_type": { - "title": "Package type", - "description": "The type of the docker package i.e. a manifest or manifest list.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "sboms": { - "$ref": "#/components/schemas/DockerCosign" - }, - "signatures": { - "$ref": "#/components/schemas/DockerCosign" - } - } - }, - "MavenPackageAdditionalDetails": { - "type": "object", - "properties": { - "extended_metadata": { - "title": "Extended metadata", - "type": "string", - "readOnly": true - } - } - }, - "Architecture": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "PackageFile": { - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true, - "nullable": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_primary": { - "title": "Is primary", - "type": "boolean", - "readOnly": true - }, - "is_synchronised": { - "title": "Is synchronised", - "type": "boolean", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the file.", - "type": "integer", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "tag": { - "title": "Tag", - "description": "Freeform descriptor that describes what the file is.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "Tags": { - "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", - "type": "object", - "properties": {} - }, - "Package": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageGroup": { - "required": [ - "count", - "last_push", - "num_downloads", - "size" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "type": "integer" - }, - "count": { - "title": "Count", - "type": "integer", - "nullable": true - }, - "last_push": { - "title": "Last push", - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "integer", - "nullable": true - }, - "size": { - "title": "Size", - "type": "integer", - "nullable": true - } - } - }, - "AlpinePackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "AlpinePackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CargoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CargoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CocoapodsPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CocoapodsPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ComposerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ComposerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ConanPackageUploadRequest": { - "required": [ - "info_file", - "manifest_file", - "metadata_file", - "package_file" - ], - "type": "object", - "properties": { - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "info_file": { - "title": "Info file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "manifest_file": { - "title": "Manifest file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "metadata_file": { - "title": "Metadata file", - "description": "The conan file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ConanPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CondaPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CondaPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CranPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "architecture": { - "title": "Architecture", - "description": "Binary package uploads for macOS should specify the architecture they were built for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CranPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DartPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DartPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DebPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "changes_file": { - "title": "Changes file", - "description": "The changes archive containing the changes made to the source and debian packaging files", - "type": "string", - "minLength": 1, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", - "type": "string", - "pattern": "^[-_.\\w]+$", - "default": "main", - "maxLength": 64, - "minLength": 1 - }, - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sources_file": { - "title": "Sources file", - "description": "The sources archive containing the source code for the binary", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DebPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DockerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DockerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "GoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "GoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HelmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provenance_file": { - "title": "Provenance file", - "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HelmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HexPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HexPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "LuarocksPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "LuarocksPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "MavenPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "extra_files": { - "description": "Extra files to include in the package. This can be a single file or multiple files.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "ivy_file": { - "title": "Ivy file", - "description": "The ivy file is an XML file describing the dependencies of the project.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "javadoc_file": { - "title": "Javadoc file", - "description": "Adds bundled Java documentation to the Maven package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "pom_file": { - "title": "Pom file", - "description": "The POM file is an XML file containing the Maven coordinates.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "sources_file": { - "title": "Sources file", - "description": "Adds bundled Java source code to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "tests_file": { - "title": "Tests file", - "description": "Adds bundled Java tests to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "MavenPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NpmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "npm_dist_tag": { - "title": "Npm dist tag", - "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", - "type": "string", - "default": "latest", - "maxLength": 255, - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NugetPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "symbols_file": { - "title": "Symbols file", - "description": "Uploads a symbols file as a separate package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NugetPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "P2PackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "P2PackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PythonPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "PythonPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RawPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "content_type": { - "title": "Content/Media Type", - "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "RawPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RpmPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RubyPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RubyPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "SwiftPackageUploadRequest": { - "required": [ - "name", - "package_file", - "scope", - "version" - ], - "type": "object", - "properties": { - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "SwiftPackageUpload": { - "required": [ - "name", - "scope", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "TerraformPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "TerraformPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VagrantPackageUploadRequest": { - "required": [ - "name", - "package_file", - "provider", - "version" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "VagrantPackageUpload": { - "required": [ - "name", - "provider", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageCopyRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - } - } - }, - "PackageCopy": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be copied to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageDependency": { - "type": "object", - "properties": { - "dep_type": { - "title": "Dep type", - "type": "string", - "enum": [ - "Depends", - "Pre-Depends", - "Recommends", - "Suggests", - "Enhances", - "Replaces", - "Breaks", - "Built-Using", - "Build-Depends", - "Build-Depends-Indep", - "Build-Conflicts", - "Build-Conflicts-Indep", - "Conflicts", - "Provides", - "Obsoletes", - "Requires", - "Runtime", - "Development", - "Compile", - "Provided", - "Test", - "System", - "Import", - "Excluded", - "Build-Requires", - "Python-Requires" - ], - "readOnly": true, - "default": "Depends" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "maxLength": 255, - "minLength": 1 - }, - "operator": { - "title": "Operator", - "type": "string", - "enum": [ - "=", - "!=", - "<", - "<<", - "<=", - ">", - ">>", - ">=", - "~=", - "~>", - "matches" - ], - "readOnly": true, - "default": "=", - "nullable": true - }, - "version": { - "title": "Version", - "type": "string", - "readOnly": true, - "maxLength": 128, - "minLength": 1, - "nullable": true - } - } - }, - "PackageDependencies": { - "required": [ - "dependencies" - ], - "type": "object", - "properties": { - "dependencies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDependency" - } - } - } - }, - "PackageMoveRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - } - } - }, - "PackageMove": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be moved to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageQuarantineRequest": { - "type": "object", - "properties": { - "release": { - "title": "Release", - "description": "If true, the package is released from quarantine.", - "type": "boolean" - }, - "restore": { - "title": "Restore", - "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", - "type": "boolean" - } - } - }, - "PackageQuarantine": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageResync": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageStatus": { - "type": "object", - "properties": { - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - } - } - }, - "PackageTagRequest": { - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Add", - "Clear", - "Replace", - "Remove" - ], - "default": "Add", - "nullable": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "tags": { - "description": "A list of tags to apply the action to. Not required for clears.", - "type": "array", - "items": { - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "default": [], - "nullable": true - } - } - }, - "PackageTag": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "Usage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageUsage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "HistoryFieldset": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/Usage" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsage" - }, - "uploaded": { - "$ref": "#/components/schemas/Usage" - } - } - }, - "UsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageUsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "HistoryFieldsetRaw": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/UsageRaw" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsageRaw" - }, - "uploaded": { - "$ref": "#/components/schemas/UsageRaw" - } - } - }, - "History": { - "required": [ - "display", - "end", - "plan", - "raw", - "start" - ], - "type": "object", - "properties": { - "days": { - "title": "Days", - "type": "integer", - "default": 0 - }, - "display": { - "$ref": "#/components/schemas/HistoryFieldset" - }, - "end": { - "title": "End", - "type": "string", - "format": "date-time" - }, - "plan": { - "title": "Plan", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "raw": { - "$ref": "#/components/schemas/HistoryFieldsetRaw" - }, - "start": { - "title": "Start", - "type": "string", - "format": "date-time" - } - } - }, - "QuotaHistory": { - "required": [ - "history" - ], - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/components/schemas/History" - } - } - } - }, - "AllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageAllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "UsageLimits": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimit" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimit" - } - } - }, - "AllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageAllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "UsageLimitsRaw": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimitRaw" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimitRaw" - } - } - }, - "UsageFieldset": { - "required": [ - "display", - "raw" - ], - "type": "object", - "properties": { - "display": { - "$ref": "#/components/schemas/UsageLimits" - }, - "raw": { - "$ref": "#/components/schemas/UsageLimitsRaw" - } - } - }, - "Quota": { - "required": [ - "usage" - ], - "type": "object", - "properties": { - "usage": { - "$ref": "#/components/schemas/UsageFieldset" - } - } - }, - "RateCheck": { - "type": "object", - "properties": { - "interval": { - "title": "Interval", - "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", - "type": "number", - "readOnly": true - }, - "limit": { - "title": "Limit", - "description": "The maximum number of requests that you are permitted to send per hour", - "type": "integer", - "readOnly": true - }, - "remaining": { - "title": "Remaining", - "description": "The number of requests that are remaining in the current rate limit window", - "type": "integer", - "readOnly": true - }, - "reset": { - "title": "Reset", - "description": "The UTC epoch timestamp at which the current rate limit window will reset", - "type": "integer", - "readOnly": true - }, - "reset_iso_8601": { - "title": "Reset iso 8601", - "description": "The ISO 8601 datetime at which the current rate limit window will reset", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "throttled": { - "title": "Throttled", - "description": "If true, throttling is currently being enforced.", - "type": "boolean", - "readOnly": true - } - } - }, - "ResourcesRateCheck": { - "type": "object", - "properties": { - "resources": { - "title": "Resources", - "description": "Rate limit values per resource", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RateCheck" - }, - "readOnly": true - } - } - }, - "RepositoryEcdsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryGpgKey": { - "required": [ - "comment" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "comment": { - "title": "Comment", - "type": "string", - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by GPG for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Repository": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "readOnly": true, - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreate": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryRequestPatch": { - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryEcdsaKeyCreate": { - "required": [ - "ecdsa_private_key" - ], - "type": "object", - "properties": { - "ecdsa_passphrase": { - "title": "Ecdsa passphrase", - "description": "The ECDSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "ecdsa_private_key": { - "title": "Ecdsa private key", - "description": "The ECDSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpCidr": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed CIDRs for this repository", - "type": "array", - "items": { - "description": "The allowed CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied CIDRs for this repository", - "type": "array", - "items": { - "description": "The denied CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpCountryCode": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed country codes for this repository", - "type": "array", - "items": { - "description": "The allowed country codes for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied country codes for this repository", - "type": "array", - "items": { - "description": "The denied country codes for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpRules": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequest": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "type": "object", - "properties": {} - }, - "RespositoryGeoIpEnableDisable": { - "type": "object", - "properties": {} - }, - "RepositoryGeoIpStatus": { - "type": "object", - "properties": { - "geoip_enabled": { - "title": "Geo/IP Restriction Enabled?", - "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", - "type": "boolean", - "readOnly": true - } - } - }, - "RepositoryGeoIpTestAddress": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP addresses to test against this repository", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "RepositoryGeoIpTestAddressResponseDict": { - "required": [ - "allowed", - "country_code", - "ip_address", - "reason" - ], - "type": "object", - "properties": { - "allowed": { - "title": "Allowed", - "description": "The result of the IP test", - "type": "boolean" - }, - "country_code": { - "title": "Country code", - "description": "The country code of the tested IP address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "ip_address": { - "title": "Ip address", - "description": "The IP address that was tested", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "The reason for the result", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpTestAddressResponse": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP address test results ordered by allowed", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" - } - } - } - }, - "RepositoryGpgKeyCreate": { - "required": [ - "gpg_private_key" - ], - "type": "object", - "properties": { - "gpg_passphrase": { - "title": "Gpg passphrase", - "description": "The GPG passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "gpg_private_key": { - "title": "Gpg private key", - "description": "The GPG private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeDict": { - "required": [ - "privilege" - ], - "type": "object", - "properties": { - "privilege": { - "title": "Privilege", - "description": "The level of privilege that the user or team should be granted to the specified repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ] - }, - "service": { - "title": "Service", - "description": "The service identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "user": { - "title": "User", - "description": "The user identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeInput": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequest": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequestPatch": { - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryRsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by RSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by RSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryRsaKeyCreate": { - "required": [ - "rsa_private_key" - ], - "type": "object", - "properties": { - "rsa_passphrase": { - "title": "Rsa passphrase", - "description": "The RSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "rsa_private_key": { - "title": "Rsa private key", - "description": "The RSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "CargoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstream": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequest": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstream": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequest": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509EcdsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryX509RsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "EulaCreate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "EulaCreateRequest": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdateRequestPatch": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - } - } - }, - "EulaUpdate": { - "required": [ - "content" - ], - "type": "object", - "properties": { - "checksum_sha256": { - "title": "Checksum sha256", - "description": "The SHA-256 checksum of the raw EULA text. You can use this to ensure that the EULA content has been preserved correctly.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content": { - "title": "Content", - "description": "The EULA (End-User License Agreement) text that will be shown to your users prior to download. If EULA acceptance is required, users must read and agree to the text before being allowed to download. Markdown formatting is supported, and will be rendered to HTML during display.", - "type": "string", - "maxLength": 102400, - "minLength": 1 - }, - "content_size": { - "title": "Content size", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the EULA was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "description": "The actor that created the EULA.", - "type": "string", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the EULA was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "description": "The actor that updated the EULA.", - "type": "string", - "readOnly": true - } - } - }, - "RepositoryTransferOwnerRequest": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTransferOwner": { - "required": [ - "destination_org" - ], - "type": "object", - "properties": { - "destination_org": { - "title": "Destination org", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "0.0.0", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": [ - "label", - "slug" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "MetricsRequest": { - "type": "object", - "properties": { - "backend_type": { - "title": "Backend type", - "type": "string", - "enum": [ - "DEB", - "RPM", - "RUBY", - "PYTHON", - "MAVEN", - "BOWER", - "DOCKER", - "RAW", - "CHOCOLATEY", - "NPM", - "NUGET", - "VAGRANT", - "COMPOSER", - "ALPINE", - "HELM", - "CONAN", - "CARGO", - "LUAROCKS", - "CRAN", - "GO", - "DART", - "COCOAPODS", - "TERRAFORM", - "P2", - "CONDA", - "HEX", - "SWIFT", - "DEFAULT" - ] - }, - "end_time": { - "title": "End time", - "type": "string", - "format": "date" - }, - "interval": { - "title": "Interval", - "type": "string", - "enum": [ - "day", - "week", - "month" - ], - "default": "day" - }, - "repository_slugs": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "repository_type": { - "title": "Repository type", - "type": "string", - "enum": [ - "PUBLIC", - "PRIVATE", - "OPEN_SOURCE" - ] - }, - "start_time": { - "title": "Start time", - "type": "string", - "format": "date" - }, - "user_type": { - "title": "User type", - "type": "string", - "enum": [ - "USER", - "SERVICE" - ] - } - } - }, - "AdditionalOnboardingActions": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "type": "string", - "readOnly": true - }, - "kind": { - "title": "Kind", - "type": "string", - "readOnly": true - }, - "label": { - "title": "Label", - "type": "string", - "readOnly": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "verb": { - "title": "Verb", - "type": "string", - "readOnly": true - } - } - }, - "AdditionalOnboardingActionsRequestPatch": { - "type": "object", - "properties": { - "action_type": { - "title": "Action type", - "type": "string", - "enum": [ - 401, - 402, - 501, - 601, - 602, - 603 - ] - }, - "completed": { - "title": "Completed", - "type": "boolean" - } - } - }, - "UserDefaultOrg": { - "required": [ - "org_slug" - ], - "type": "object", - "properties": { - "org_name": { - "title": "Org name", - "description": "The descriptive name for the user's default organization.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "org_slug_perm": { - "title": "Org slug perm", - "description": "The slug_perm of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserDefaultOrgRequestPatch": { - "type": "object", - "properties": { - "org_slug": { - "title": "Org slug", - "description": "The slug of the user's default organization.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "EmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddressRequest": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "CreateEmailAddress": { - "required": [ - "email" - ], - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "format": "email", - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean" - } - } - }, - "UpdatePrimaryEmail": { - "type": "object", - "properties": { - "email": { - "title": "Email address", - "type": "string", - "format": "email", - "readOnly": true, - "minLength": 1 - }, - "identifier": { - "title": "Identifier", - "type": "string", - "readOnly": true - }, - "primary": { - "title": "Primary", - "type": "boolean" - }, - "verified": { - "title": "Verified", - "type": "boolean", - "readOnly": true - } - } - }, - "EmailAddressResendConfirmation": { - "type": "object", - "properties": {} - }, - "UserOrganizationInvite": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - } - } - }, - "UserOrganizationInviteRequest": { - "type": "object", - "properties": { - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time" - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } + "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" + } + } + }, + "description": "" } } - }, - "Location": { + } + } + }, + "components": { + "schemas": { + "AddPackageTagsPolicyAction": { "type": "object", "properties": { - "city": { - "title": "City", - "type": "string", - "readOnly": true + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." }, - "country": { - "title": "Country", - "type": "string", - "readOnly": true - } - } - }, - "UserLoginHistory": { - "type": "object", - "properties": { - "browser": { - "title": "Browser", + "slug_perm": { "type": "string", - "readOnly": true + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" }, "created_at": { - "title": "Created at", "type": "string", "format": "date-time", - "readOnly": true - }, - "device_name": { - "title": "Device name", - "type": "string", - "readOnly": true - }, - "ip_address": { - "title": "IP Address", - "type": "string", "readOnly": true, - "minLength": 1 - }, - "location": { - "$ref": "#/components/schemas/Location" - }, - "method": { - "title": "Method", - "type": "string", - "readOnly": true + "description": "The date and time the policy was created." }, - "method_context": { - "title": "Method context", + "updated_at": { "type": "string", + "format": "date-time", "readOnly": true, - "nullable": true + "description": "The date and time the policy was updated." }, - "operating_system": { - "title": "Operating system", + "effect": { "type": "string", "readOnly": true }, - "user_agent": { - "title": "User agent", - "type": "string", - "readOnly": true, - "nullable": true + "tags": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100 + } } - } + }, + "required": [ + "created_at", + "effect", + "slug_perm", + "tags", + "updated_at" + ] }, - "UserLogoutOtherSessions": { - "type": "object", - "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 + "AddPackageTagsPolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + }, + "required": [ + "action_type" + ] }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 + { + "$ref": "#/components/schemas/AddPackageTagsPolicyAction" } - } + ] }, - "UserPasswordRequest": { - "required": [ - "confirm_new_password", - "current_password", - "new_password" - ], + "BlankEnum": { + "enum": [ + "" + ] + }, + "CountryEnum": { + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "type": "string", + "description": "* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe" + }, + "ErrorDetail": { "type": "object", + "description": "A serializer for displaying a detail error message.", "properties": { - "confirm_new_password": { - "title": "Confirm new password", - "description": "Confirming the new password for the current user.", - "type": "string", - "minLength": 1 - }, - "current_password": { - "title": "Current password", - "description": "The current user's password.", + "detail": { "type": "string", - "minLength": 1 + "description": "An extended message for the response." }, - "new_password": { - "title": "New password", - "description": "The new password for the current user.", - "type": "string", - "minLength": 1 + "fields": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field" } - } + }, + "required": [ + "detail" + ] + }, + "NullEnum": { + "enum": [ + null + ] + }, + "PackageStateEnum": { + "enum": [ + "AVAILABLE", + "BLOCKED", + "DELETED", + "QUARANTINED" + ], + "type": "string", + "description": "* `AVAILABLE` - The package is available for download.\n* `BLOCKED` - The package is not downloadable.\n* `DELETED` - The package is deleted.\n* `QUARANTINED` - The package is quarantined." + }, + "PackageTagSourceTypeEnum": { + "enum": [ + "AUTOMATIC", + "MANUAL" + ], + "type": "string", + "description": "* `AUTOMATIC` - Automatic\n* `MANUAL` - Manual" + }, + "PackageTagTypeEnum": { + "enum": [ + "INFO", + "SOME_VERSION", + "LATEST_VERSION", + "ANNOTATION" + ], + "type": "string", + "description": "* `INFO` - Info\n* `SOME_VERSION` - Some Version\n* `LATEST_VERSION` - Latest Version\n* `ANNOTATION` - Annotation" + }, + "PackageTypeEnum": { + "enum": [ + "BINARY", + "SOURCE", + "COMBINED", + "OTHER" + ], + "type": "string", + "description": "* `BINARY` - Binary\n* `SOURCE` - Source\n* `COMBINED` - Combined\n* `OTHER` - Other" }, - "UserPassword": { + "PaginatedPolicyActionList": { "type": "object", + "required": [ + "results" + ], "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "readOnly": true, - "minLength": 1 + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAction" + } } } }, - "Permission": { - "description": "A list of permissions to check if permissible.", + "PaginatedPolicyDecisionLogList": { + "type": "object", "required": [ - "name" + "results" ], - "type": "object", "properties": { - "args": { - "description": "The arguments to pass to the permission (in most cases, one argument is expected.)", + "results": { "type": "array", "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "context": { - "title": "Context", - "description": "Any additional context for why a permission check failed.", - "type": "string", - "readOnly": true, - "maxLength": 512, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The qualified name of the permission; e.g. package.upload_packages", - "type": "string", - "maxLength": 256, - "minLength": 1 - }, - "permissible": { - "title": "Permissible", - "description": "If permissible is true, then the user has the specified permission.", - "type": "boolean", - "readOnly": true, - "default": false + "$ref": "#/components/schemas/PolicyDecisionLog" + } } } }, - "Permissions": { + "PaginatedPolicyList": { + "type": "object", "required": [ - "permissions" + "results" ], - "type": "object", "properties": { - "permissions": { - "description": "A list of permissions to check if permissible.", + "results": { "type": "array", "items": { - "$ref": "#/components/schemas/Permission" + "$ref": "#/components/schemas/Policy" } } } }, - "User": { + "PatchedAddPackageTagsPolicyAction": { "type": "object", "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", + "slug_perm": { "type": "string", - "format": "email", "readOnly": true, - "minLength": 1, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true - }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", - "type": "string", - "maxLength": 60, - "nullable": true + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", + "created_at": { "type": "string", + "format": "date-time", "readOnly": true, - "minLength": 1, - "nullable": true + "description": "The date and time the policy was created." }, - "onboarding_actions": { - "title": "Onboarding actions", - "type": "string", - "readOnly": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", + "updated_at": { "type": "string", - "format": "uri", + "format": "date-time", "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true + "description": "The date and time the policy was updated." }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", + "effect": { "type": "string", "readOnly": true }, - "subscribe_all": { - "title": "Subscribe to Everything", - "type": "boolean", - "nullable": true - }, - "subscribe_blog": { - "title": "Subscribe to Blog", - "type": "boolean", - "nullable": true - }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true - }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" + "tags": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100 + } } } }, - "UserRequestPatch": { + "PatchedAddPackageTagsPolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + } + }, + { + "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyAction" + } + ] + }, + "PatchedPolicy": { "type": "object", "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "nullable": true - }, - "first_name": { - "title": "First name", + "created_at": { "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." }, - "job_title": { - "title": "Job title", + "description": { "type": "string", - "maxLength": 64, - "nullable": true + "nullable": true, + "description": "The description of the Policy.", + "maxLength": 250 }, - "last_name": { - "title": "Last name", + "name": { "type": "string", - "maxLength": 120, - "minLength": 1, - "nullable": true + "description": "The name of the Policy.", + "maxLength": 100 }, - "location": { - "title": "Location", - "description": "The city/town/area you are based in.", + "rego": { "type": "string", - "maxLength": 60, - "nullable": true + "description": "The rego code which constitutes the Policy logic." }, - "show_onboarding_guide": { - "title": "Show onboarding guide", - "description": "When checked, the user will have the onboarding guide enabled for the new frontend UI. ", - "type": "boolean", - "nullable": true - }, - "subscribe_all": { - "title": "Subscribe to Everything", + "enabled": { "type": "boolean", - "nullable": true + "description": "If true, the policy is enabled." }, - "subscribe_blog": { - "title": "Subscribe to Blog", + "is_terminal": { "type": "boolean", - "nullable": true + "description": "If true and the policy matches, no further policies are evaluated." }, - "subscribe_newsletter": { - "title": "Subscribe to Newsletter", - "type": "boolean", - "nullable": true + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Policy identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "updated_at": { "type": "string", - "maxLength": 1024, - "nullable": true + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." }, - "use_real_name": { - "title": "Use real name", - "description": "When checked, your real name is used on the website. Otherwise, only your user slug is displayed. Please use this setting rather than setting a fake name.", - "type": "boolean", - "nullable": true + "version": { + "type": "integer", + "readOnly": true, + "description": "The version of the rego code." }, - "visibility": { - "title": "Visibility", - "description": "Your visibility to other users, outside of common orgnizations that you belong to. If you're private, then other users will not be able to view your profile, invite you to orgs, or add you as a collaborator on repositories. You can still be invited via email address.", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Private" + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this policy is evaluated relative to other policies." } } }, - "UserRefreshWebTokenRequest": { - "required": [ - "refresh_token" + "PatchedPolicyAction": { + "oneOf": [ + { + "$ref": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped" + }, + { + "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" + } ], - "type": "object", - "properties": { - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", - "type": "string", - "minLength": 1 + "discriminator": { + "propertyName": "action_type", + "mapping": { + "SetPackageState": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped", + "AddPackageTags": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" } } }, - "UserRefreshWebToken": { - "required": [ - "refresh_token" - ], + "PatchedSetPackageStatePolicyAction": { "type": "object", "properties": { - "access_token": { - "title": "Access token", - "description": "The JWT to use for authentication.", + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." + }, + "slug_perm": { "type": "string", "readOnly": true, - "minLength": 1 + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." }, - "refresh_token": { - "title": "Refresh token", - "description": "The JWT to use for refreshing the authentication.", + "effect": { "type": "string", - "minLength": 1 + "readOnly": true + }, + "package_state": { + "$ref": "#/components/schemas/PackageStateEnum" } } }, - "UserBrief": { + "PatchedSetPackageStatePolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + } + }, + { + "$ref": "#/components/schemas/PatchedSetPackageStatePolicyAction" + } + ] + }, + "Policy": { "type": "object", "properties": { - "authenticated": { - "title": "Authenticated", - "description": "If true then you're logged in as a user.", - "type": "boolean", - "readOnly": true + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", + "description": { "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1, - "nullable": true + "nullable": true, + "description": "The description of the Policy.", + "maxLength": 250 }, "name": { - "title": "Name", - "description": "The full name of the user (if any).", "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true + "description": "The name of the Policy.", + "maxLength": 100 }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", + "rego": { "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true + "description": "The rego code which constitutes the Policy logic." }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true + "enabled": { + "type": "boolean", + "description": "If true, the policy is enabled." }, - "slug": { - "title": "Slug", + "is_terminal": { + "type": "boolean", + "description": "If true and the policy matches, no further policies are evaluated." + }, + "slug_perm": { "type": "string", "readOnly": true, - "nullable": true + "description": "The Policy identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" }, - "slug_perm": { - "title": "Slug perm", + "updated_at": { "type": "string", + "format": "date-time", "readOnly": true, - "nullable": true + "description": "The date and time the policy was updated." + }, + "version": { + "type": "integer", + "readOnly": true, + "description": "The version of the rego code." + }, + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this policy is evaluated relative to other policies." + } + }, + "required": [ + "created_at", + "name", + "rego", + "slug_perm", + "updated_at", + "version" + ] + }, + "PolicyAction": { + "oneOf": [ + { + "$ref": "#/components/schemas/SetPackageStatePolicyActionTyped" + }, + { + "$ref": "#/components/schemas/AddPackageTagsPolicyActionTyped" + } + ], + "discriminator": { + "propertyName": "action_type", + "mapping": { + "SetPackageState": "#/components/schemas/SetPackageStatePolicyActionTyped", + "AddPackageTags": "#/components/schemas/AddPackageTagsPolicyActionTyped" } } }, - "UserSession": { + "PolicyAdvisory": { "type": "object", + "description": "An Advisory is all the known information about a vulnerability.", "properties": { - "browser": { - "title": "Browser", - "type": "string", - "readOnly": true + "cvss": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PolicyAdvisoryCvss" + }, + "nullable": true, + "description": "The CVSS score details." }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true + "epss": { + "allOf": [ + { + "$ref": "#/components/schemas/PolicyAdvisoryEpss" + } + ], + "nullable": true, + "description": "The EPSS details. Null if not available." }, - "device_name": { - "title": "Device name", + "format": { "type": "string", - "readOnly": true + "description": "The format of the vulnerable package." }, - "ip_address": { - "title": "IP Address", + "identifier": { "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "location": { - "$ref": "#/components/schemas/Location" + "description": "The vulnerability identifier. E.g. CVE-2021-1234." }, - "operating_system": { - "title": "Operating system", + "package_name": { "type": "string", - "readOnly": true + "description": "The name of the vulnerable package." }, - "updated_at": { - "title": "Updated at", + "patched_versions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of patched versions, if available." + }, + "published_date": { "type": "string", "format": "date-time", - "readOnly": true + "description": "The published date of vulnerability." + }, + "severity": { + "allOf": [ + { + "$ref": "#/components/schemas/SeverityEnum" + } + ], + "description": "The severity level of the vulnerability.\n\n* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" + }, + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/PolicyAdvisorySource" + } + ], + "description": "The advisory source details." }, - "user_agent": { - "title": "User agent", + "title": { "type": "string", - "readOnly": true, - "nullable": true + "description": "The title of the advisory." + }, + "vulnerable_versions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of known vulnerable versions." } - } + }, + "required": [ + "cvss", + "epss", + "format", + "identifier", + "package_name", + "patched_versions", + "published_date", + "severity", + "source", + "title", + "vulnerable_versions" + ] }, - "UserSlugRequestPatch": { + "PolicyAdvisoryCvss": { "type": "object", + "description": "A CVSS score and vector string.", "properties": { - "slug": { - "title": "Slug", + "V2Score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The CVSS V2 score." + }, + "V2Vector": { + "type": "string", + "nullable": true, + "description": "The CVSS V2 vector string." + }, + "V3Score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The CVSS V3 score." + }, + "V3Vector": { "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 + "nullable": true, + "description": "The CVSS V3 vector string." } - } + }, + "required": [ + "V2Score", + "V2Vector", + "V3Score", + "V3Vector" + ] }, - "UserSlug": { + "PolicyAdvisoryEpss": { + "type": "object", + "description": "The EPSS score and percentile.", + "properties": { + "score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The EPSS score. Null if not available." + }, + "percentile": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The EPSS percentile. Null if not available." + } + }, "required": [ - "slug" - ], + "percentile", + "score" + ] + }, + "PolicyAdvisorySource": { "type": "object", + "description": "The source of the advisory.", "properties": { - "slug": { - "title": "Slug", + "name": { "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 + "description": "The advisory source name.", + "maxLength": 256 }, - "slug_perm": { - "title": "Slug perm", + "url": { "type": "string", - "readOnly": true + "description": "The advisory source URL.", + "maxLength": 256 } - } + }, + "required": [ + "name", + "url" + ] }, - "SoftDeleteUser": { + "PolicyArchitecture": { "type": "object", - "properties": {} + "description": "Serializer for a package architecture for policy purposes.", + "properties": { + "description": { + "type": "string", + "nullable": true, + "maxLength": 64 + }, + "name": { + "type": "string", + "maxLength": 32 + } + }, + "required": [ + "name" + ] }, - "UserAuthTokenRequest": { + "PolicyDecisionLog": { "type": "object", + "description": "Serializer for policy decision logs", "properties": { - "email": { - "title": "Email", - "description": "Email address to authenticate with", + "correlation_id": { "type": "string", - "format": "email", - "minLength": 1 + "format": "uuid" }, - "password": { - "title": "Password", - "description": "Password to authenticate with", + "policy": { + "$ref": "#/components/schemas/Policy" + }, + "started_at": { "type": "string", - "minLength": 1 + "format": "date-time" }, - "totp_token": { - "title": "Two-factor code", - "description": "Two-factor authentication code", + "ended_at": { "type": "string", - "minLength": 1 + "format": "date-time" + }, + "policy_input": { + "$ref": "#/components/schemas/PolicyInput" + }, + "policy_output": {}, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAction" + } } - } + }, + "required": [ + "actions", + "correlation_id", + "ended_at", + "policy", + "policy_input", + "policy_output", + "started_at" + ] }, - "UserAuthToken": { + "PolicyDistribution": { "type": "object", + "description": "Serializer for a distribution for policy purposes.", "properties": { - "token": { - "title": "Token", - "description": "API token for the authenticated user", + "name": { "type": "string", - "readOnly": true, - "minLength": 1 + "maxLength": 32 }, - "two_factor_required": { - "title": "Two factor required", - "description": "Flag indicating whether a 2FA code is required to complete authentication", - "type": "boolean", - "readOnly": true + "slug": { + "type": "string", + "maxLength": 64 }, - "two_factor_token": { - "title": "Two factor token", - "description": "Token to use when providing 2FA code", + "variants": { "type": "string", - "readOnly": true, - "minLength": 1 + "nullable": true, + "maxLength": 128 } - } - }, - "UserApiCidr": { + }, "required": [ - "cidr" - ], + "name", + "slug" + ] + }, + "PolicyDistributionVersion": { "type": "object", + "description": "Serializer for a distribution version for policy purposes.", "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "name": { "type": "string", - "minLength": 1 + "description": "The textual name for this version.", + "maxLength": 64 }, - "slug_perm": { - "title": "Slug perm", - "description": "An auto-generated id that uniquely identifies the object.", + "slug": { "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1, - "nullable": true + "maxLength": 64 } - } + }, + "required": [ + "slug" + ] }, - "UserApiCidrRequest": { + "PolicyInput": { + "type": "object", + "description": "Serializer for policy input.", + "properties": { + "v0": { + "$ref": "#/components/schemas/PolicyInputV0" + } + }, "required": [ - "cidr" - ], + "v0" + ] + }, + "PolicyInputV0": { "type": "object", + "description": "Serializer for V0 policy input.", "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", - "type": "string", - "minLength": 1 + "package": { + "$ref": "#/components/schemas/PolicyPackage" + }, + "repository": { + "$ref": "#/components/schemas/PolicyRepository" + }, + "workspace": { + "$ref": "#/components/schemas/PolicyWorkspace" + }, + "security_scan": {}, + "vulnerabilities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAdvisory" + } } - } + }, + "required": [ + "package", + "repository", + "security_scan", + "vulnerabilities", + "workspace" + ] }, - "UserApiCidrRequestPatch": { + "PolicyPackage": { "type": "object", + "description": "Serializer for packages for policy purposes.", "properties": { - "cidr": { - "title": "CIDR", - "description": "Enter a valid CIDR notation (e.g., '192.168.1.0/24').", + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyArchitecture" + } + }, + "checksum_md5": { "type": "string", - "minLength": 1 - } - } - }, - "UserAuthenticationToken": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "The time at which the API key was created.", + "readOnly": true + }, + "checksum_sha1": { "type": "string", - "format": "date-time", "readOnly": true }, - "key": { - "title": "Key", - "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "checksum_sha256": { "type": "string", "readOnly": true }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm for token.", + "checksum_sha512": { "type": "string", "readOnly": true - } - } - }, - "TOTPRequest": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", - "type": "integer", - "enum": [ - 6, - 8 - ] + "description": { + "type": "string", + "nullable": true, + "description": "A textual description of this package.", + "maxLength": 12288 }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" + "distro": { + "$ref": "#/components/schemas/PolicyDistribution" }, - "token": { - "title": "Token", - "description": "Token for TOTP Device confirmation", - "type": "string", - "minLength": 1 - } - } - }, - "TOTP": { - "type": "object", - "properties": { - "confirmed": { - "title": "Confirmed", - "description": "Is this device ready for use?", - "type": "boolean" + "distro_version": { + "$ref": "#/components/schemas/PolicyDistributionVersion" }, - "digits": { - "title": "Digits", - "description": "The number of digits to expect in a token.", + "epoch": { "type": "integer", - "enum": [ - 6, - 8 - ] + "maximum": 2147483647, + "minimum": -2147483648, + "nullable": true, + "description": "The epoch of the package version (if any)." }, - "qr_code_encoded_image": { - "title": "Qr code encoded image", - "description": "Base64 Encoded QR Image", + "extension": { "type": "string", "readOnly": true }, - "secret_key": { - "title": "Secret key", - "description": "TOTP Secret Key", + "filename": { "type": "string", - "readOnly": true + "maxLength": 255 }, - "step": { - "title": "Step", - "description": "The time step in seconds.", - "type": "integer" - } - } - }, - "TOTPSettings": { - "required": [ - "enforce_saml_2fa" - ], - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", - "type": "boolean" + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyPackageFile" + } }, - "is_2fa_backup_codes_enabled": { - "title": "Is 2fa backup codes enabled", - "description": "Is 2FA Backup Codes enabled for the authenticated user", - "type": "boolean", - "readOnly": true + "format": { + "type": "string" }, - "is_2fa_enabled": { - "title": "Is 2fa enabled", - "description": "Is 2FA enabled for the authenticated user", - "type": "boolean", - "readOnly": true - } - } - }, - "TOTPSettingsRequestPatch": { - "type": "object", - "properties": { - "enforce_saml_2fa": { - "title": "Enforce saml 2fa", - "description": "When disabled and logged in with SAML, you will not be asked to complete 2fa when logging in", + "indexed": { "type": "boolean" - } - } - }, - "UserProfile": { - "required": [ - "first_name", - "last_name" - ], - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true }, - "first_name": { - "title": "First name", + "license": { "type": "string", - "maxLength": 120, - "minLength": 1 + "nullable": true, + "description": "The license of this package.", + "maxLength": 128 }, - "job_title": { - "title": "Job title", + "name": { "type": "string", - "maxLength": 64, - "nullable": true + "nullable": true, + "description": "The name of this package.", + "maxLength": 200 }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time" + "num_files": { + "type": "integer", + "maximum": 2147483647, + "minimum": 0 }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1 + "package_type": { + "$ref": "#/components/schemas/PackageTypeEnum" }, - "name": { - "title": "Name", + "release": { "type": "string", - "readOnly": true, - "minLength": 1 + "nullable": true, + "description": "The release of the package version (if any).", + "maxLength": 96 }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true + "security_scan_status": { + "$ref": "#/components/schemas/SecurityScanStatusEnum" }, - "slug_perm": { - "title": "Slug perm", + "security_scan_status_updated_at": { "type": "string", - "readOnly": true + "format": "date-time", + "nullable": true, + "description": "The datetime the security scanning status was updated." }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "security_scan_started_at": { "type": "string", - "maxLength": 1024, - "nullable": true + "format": "date-time", + "nullable": true, + "description": "The datetime the security scanning was started." }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VulnerabilityScanResultsList": { - "required": [ - "identifier", - "package", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", + "security_scan_completed_at": { "type": "string", "format": "date-time", - "readOnly": true + "nullable": true, + "description": "The datetime the security scanning was completed." }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true + "size": { + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "format": "int64", + "description": "The calculated size of the package." }, - "identifier": { - "title": "Identifier", + "slug": { "type": "string", - "minLength": 1 + "readOnly": true, + "description": "The public unique identifier for the package.", + "pattern": "^[-a-zA-Z0-9_]+$" }, - "max_severity": { - "title": "Max severity", + "slug_perm": { "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - } - } - }, - "VulnerabilityScanVersion": { - "required": [ - "major", - "minor", - "patch" - ], - "type": "object", - "properties": { - "major": { - "title": "Major", - "type": "integer" + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" }, - "minor": { - "title": "Minor", - "type": "integer" + "subtype": { + "type": "string", + "readOnly": true }, - "operator": { - "title": "Operator", + "summary": { "type": "string", - "default": "", - "maxLength": 32, - "minLength": 1 + "nullable": true, + "description": "A one-liner synopsis of this package.", + "maxLength": 255 }, - "patch": { - "title": "Patch", - "type": "integer" + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyPackageTag" + } }, - "raw_version": { - "title": "Raw version", + "uploaded_at": { "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 + "format": "date-time", + "description": "The date this package was uploaded." + }, + "uploader": { + "$ref": "#/components/schemas/PolicyUploader" }, "version": { - "title": "Version", "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 + "nullable": true, + "description": "The raw version for this package.", + "maxLength": 128 } - } - }, - "Vulnerability": { + }, "required": [ - "affected_version", - "description", - "fixed_version", - "package_name", - "references", - "severity_source", - "title", - "vulnerability_id" - ], + "architectures", + "checksum_md5", + "checksum_sha1", + "checksum_sha256", + "checksum_sha512", + "distro", + "distro_version", + "extension", + "filename", + "files", + "format", + "package_type", + "security_scan_status", + "slug", + "subtype", + "tags" + ] + }, + "PolicyPackageFile": { "type": "object", + "description": "Serializer for package files for policy purposes.", "properties": { - "affected_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "description": { - "title": "Description", + "checksum_md5": { "type": "string", - "maxLength": 1028, - "minLength": 1 + "nullable": true, + "pattern": "^[a-fA-F0-9]{32}$", + "maxLength": 32 }, - "fixed_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" + "checksum_sha1": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{40}$", + "maxLength": 40 }, - "package_name": { - "title": "Package name", + "checksum_sha256": { "type": "string", - "maxLength": 128, - "minLength": 1 + "nullable": true, + "pattern": "^[a-fA-F0-9]{64}$", + "maxLength": 64 }, - "references": { - "type": "array", - "items": { - "type": "string", - "maxLength": 2048, - "minLength": 1 - } + "checksum_sha512": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{128}$", + "maxLength": 128 }, - "severity": { - "title": "Severity", + "filename": { "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" + "maxLength": 255 }, - "severity_source": { - "title": "Severity source", + "is_primary": { "type": "string", - "maxLength": 128, - "minLength": 1 + "readOnly": true }, - "title": { - "title": "Title", + "size": { + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "format": "int64", + "description": "The calculated size of the file." + }, + "slug_perm": { "type": "string", - "maxLength": 512, - "minLength": 1 + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" }, - "vulnerability_id": { - "title": "Vulnerability id", + "tag": { "type": "string", - "maxLength": 13, - "minLength": 1 + "nullable": true, + "description": "Freeform descriptor that describes what the file is.", + "maxLength": 255 } - } - }, - "VulnerabilityScan": { + }, "required": [ - "results", - "target", - "type" - ], + "filename", + "is_primary" + ] + }, + "PolicyPackageTag": { "type": "object", + "description": "A package tag that labels packages with additional information.", "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Vulnerability" - } - }, - "target": { - "title": "Target", + "created_at": { "type": "string", - "minLength": 1 + "format": "date-time", + "description": "The date this tag was created." + }, + "is_immutable": { + "type": "boolean", + "description": "If true, the tag is immutable and cannot be (normally) removed." }, - "type": { - "title": "Type", + "name": { "type": "string", - "minLength": 1 + "description": "The name for the tag.", + "maxLength": 255 + }, + "source": { + "$ref": "#/components/schemas/PackageTagSourceTypeEnum" + }, + "tag_type": { + "$ref": "#/components/schemas/PackageTagTypeEnum" } - } - }, - "VulnerabilityScanResults": { + }, "required": [ - "identifier", - "package", - "scan_id", - "scans" - ], + "name", + "source", + "tag_type" + ] + }, + "PolicyRepository": { "type": "object", + "description": "Serializer for the Repository model for policy purposes.", "properties": { "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true + "format": "date-time" }, - "identifier": { - "title": "Identifier", + "description": { "type": "string", - "minLength": 1 + "description": "A description of the repository's purpose/contents.", + "maxLength": 1000 }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepositoryEcdsaKey" + } }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepositoryGpgKey" + } }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" + "name": { + "type": "string", + "description": "A descriptive name for the repository.", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50 }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", + "open_source_license": { + "type": "string", "nullable": true }, - "scans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScan" - } - } - } - }, - "WebhookTemplate": { - "required": [ - "event" - ], - "type": "object", - "properties": { - "event": { - "title": "Event", + "repository_type": { + "$ref": "#/components/schemas/RepositoryTypeEnum" + }, + "slug": { "type": "string", - "maxLength": 128, - "minLength": 1 + "description": "The slug identifies the repository in URIs.", + "maxLength": 50, + "pattern": "^[-a-zA-Z0-9_]+$" }, - "template": { - "title": "Template", + "slug_perm": { "type": "string", - "maxLength": 4096, - "nullable": true + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "storage_region": { + "type": "string", + "readOnly": true } }, - "nullable": true - }, - "RepositoryWebhook": { "required": [ - "events", - "target_url", - "templates" - ], + "ecdsa_keys", + "gpg_keys", + "name", + "open_source_license", + "repository_type", + "storage_region" + ] + }, + "PolicyRepositoryEcdsaKey": { "type": "object", + "description": "An ECDSA key used to sign repository contents.", "properties": { + "active": { + "type": "boolean", + "description": "If selected this is the active key for this repository." + }, "created_at": { - "title": "Created at", "type": "string", - "format": "date-time", - "readOnly": true + "format": "date-time" }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 + "default": { + "type": "boolean", + "description": "If selected this is the default key for this repository." }, - "created_by_url": { - "title": "Created by url", + "fingerprint_short": { "type": "string", - "format": "uri", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], "readOnly": true }, - "disable_reason_str": { - "title": "Disable reason str", + "fingerprint": { "type": "string", - "readOnly": true, - "minLength": 1 - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "is_last_response_bad": { - "title": "Is last response bad", - "type": "boolean", - "readOnly": true - }, - "last_response_status": { - "title": "Last response status", - "type": "integer", - "readOnly": true + "description": "The long identifier used by ECDSA for this key.", + "maxLength": 32 }, - "last_response_status_str": { - "title": "Last response status str", + "public_key": { "type": "string", - "readOnly": true, - "minLength": 1 - }, - "num_sent": { - "title": "Num sent", - "type": "integer", - "readOnly": true + "description": "The public key given to repository users." }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "ssh_fingerprint": { "type": "string", - "maxLength": 1024, - "nullable": true + "nullable": true, + "description": "The SSH fingerprint used by ECDSA for this key.", + "maxLength": 128 + } + }, + "required": [ + "fingerprint", + "fingerprint_short", + "public_key" + ] + }, + "PolicyRepositoryGpgKey": { + "type": "object", + "description": "A GPG key used to sign repository contents.", + "properties": { + "active": { + "type": "boolean", + "description": "If selected this is the active key for this repository." }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] + "comment": { + "type": "string" }, - "request_body_format_str": { - "title": "Request body format str", + "created_at": { "type": "string", - "readOnly": true, - "minLength": 1 + "format": "date-time" }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] + "default": { + "type": "boolean", + "description": "If selected this is the default key for this repository." }, - "request_body_template_format_str": { - "title": "Request body template format str", + "fingerprint_short": { "type": "string", - "readOnly": true, - "minLength": 1 + "readOnly": true }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", + "fingerprint": { "type": "string", - "maxLength": 128, - "nullable": true + "description": "The long identifier used by GPG for this key.", + "maxLength": 40 }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "public_key": { "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "self_url": { - "title": "Self url", + "description": "The public key given to repository users." + } + }, + "required": [ + "comment", + "fingerprint", + "fingerprint_short", + "public_key" + ] + }, + "PolicyUploader": { + "type": "object", + "description": "Serializer for packager uploader for policy puposes.", + "properties": { + "email": { "type": "string", - "format": "uri", - "readOnly": true + "format": "email", + "nullable": true, + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "maxLength": 254 }, - "slug_perm": { - "title": "Slug perm", + "first_name": { "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 + "maxLength": 120 }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", + "last_name": { "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true + "maxLength": 120 }, - "updated_at": { - "title": "Updated at", + "slug": { "type": "string", - "format": "date-time", "readOnly": true }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "updated_by_url": { - "title": "Updated by url", + "slug_perm": { "type": "string", - "format": "uri", "readOnly": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" } - } - }, - "RepositoryWebhookRequest": { + }, "required": [ - "events", - "target_url", - "templates" - ], + "first_name", + "last_name", + "slug", + "slug_perm" + ] + }, + "PolicyWorkspace": { "type": "object", + "description": "Representation of a Workspace used in Policy input.", "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "created_at": { "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] + "format": "date-time" }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 + "country": { + "nullable": true, + "description": "The country your workspace is based in.\n\n* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe", + "oneOf": [ + { + "$ref": "#/components/schemas/CountryEnum" + }, + { + "$ref": "#/components/schemas/BlankEnum" + }, + { + "$ref": "#/components/schemas/NullEnum" + } ] }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", + "location": { "type": "string", - "maxLength": 128, - "nullable": true + "nullable": true, + "description": "The city/town/area your workspace is based in.", + "maxLength": 60 }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "name": { "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true + "description": "A descriptive name for your workspace.", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50 }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "slug": { "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true + "readOnly": true }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "slug_perm": { "type": "string", - "maxLength": 512, - "minLength": 1 + "readOnly": true }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", + "tagline": { "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" + "nullable": true, + "description": "A short public descriptive for your workspace.", + "maxLength": 80 } - } + }, + "required": [ + "name", + "slug", + "slug_perm" + ] + }, + "RepositoryTypeEnum": { + "enum": [ + "PUBLIC", + "PRIVATE", + "OPEN_SOURCE" + ], + "type": "string", + "description": "* `PUBLIC` - Public\n* `PRIVATE` - Private\n* `OPEN_SOURCE` - Open-Source" + }, + "SecurityScanStatusEnum": { + "enum": [ + "AWAITING_SCAN", + "SCANNING", + "VULNERABLE", + "NOT_VULNERABLE", + "DISABLED", + "FAILED", + "SKIPPED", + "UNSUPPORTED_PACKAGE", + "UNSUPPORTED_FORMAT" + ], + "type": "string", + "description": "* `AWAITING_SCAN` - Awaiting Security Scan\n* `SCANNING` - Security Scanning in Progress\n* `VULNERABLE` - Scan Detected Vulnerabilities\n* `NOT_VULNERABLE` - Scan Detected No Vulnerabilities\n* `DISABLED` - Security Scanning Disabled\n* `FAILED` - Security Scanning Failed\n* `SKIPPED` - Security Scanning Skipped\n* `UNSUPPORTED_PACKAGE` - Security Scanning Not Supported\n* `UNSUPPORTED_FORMAT` - Security Scanning Not Supported" }, - "RepositoryWebhookRequestPatch": { + "SetPackageStatePolicyAction": { "type": "object", "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "precedence": { "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "slug_perm": { "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "created_at": { "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "updated_at": { "type": "string", - "maxLength": 512, - "minLength": 1 + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", + "effect": { "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 + "readOnly": true }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" + "package_state": { + "$ref": "#/components/schemas/PackageStateEnum" + } + }, + "required": [ + "created_at", + "effect", + "package_state", + "slug_perm", + "updated_at" + ] + }, + "SetPackageStatePolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } }, - "nullable": true + "required": [ + "action_type" + ] }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" + { + "$ref": "#/components/schemas/SetPackageStatePolicyAction" } - } + ] + }, + "SeverityEnum": { + "enum": [ + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "type": "string", + "description": "* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "in": "header", + "name": "X-Api-Key" + }, + "basic": { + "type": "http", + "scheme": "basic" } } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io/v2/" + } + ], + "externalDocs": { + "url": "https://help.cloudsmith.io/reference/introduction", + "description": "Cloudsmith API Reference" } -} +} \ No newline at end of file From 32b282335afe2bf1f576151ed0832622a6f7c596 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 2 Jul 2025 10:27:37 +0200 Subject: [PATCH 015/127] fix(parse.ts): wrong naming --- src/lib/swagger/parse.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index d2e39ae0..38403ca8 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -9,7 +9,7 @@ import { MenuItem } from '../menu/types'; */ export const parseSchema = async (): Promise => { const schema = (await SwaggerParser.dereference( - `src/content/schemas/api-schema-v3.json`, + `src/content/schemas/api-schema-v1.json`, )) as OpenAPIV3.Document; if (!schema) { From d821dd8bd6c50f6b781ea5226dc4a8e358d9be96 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 2 Jul 2025 11:23:12 +0200 Subject: [PATCH 016/127] add(continuous security) + a few other fixes --- .../getting-started/common-use-cases.mdx | 2 +- src/content/menu.json | 10 ++-- .../epm/continuous-security.mdx | 53 +++++++++++++++++++ ...ecurity.mdx => vulnerability-scanning.mdx} | 2 +- src/content/workspaces/index.mdx | 14 ++++- 5 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 src/content/supply-chain-security/epm/continuous-security.mdx rename src/content/supply-chain-security/{continuous-security.mdx => vulnerability-scanning.mdx} (99%) diff --git a/src/content/getting-started/common-use-cases.mdx b/src/content/getting-started/common-use-cases.mdx index 580fa1b2..9d3276c8 100644 --- a/src/content/getting-started/common-use-cases.mdx +++ b/src/content/getting-started/common-use-cases.mdx @@ -4,7 +4,7 @@ import { Card, Flex } from '@/components' This section outlines the primary and supporting use cases for Cloudsmith, detailing the benefits and key features for each: -- [)](/getting-started/common-use-cases#artifact-management-for-the-software-development-lifecycle-sdlc) +- [Artifact Management for the Software Development Lifecycle (SDLC)](/getting-started/common-use-cases#artifact-management-for-the-software-development-lifecycle-sdlc) - [Software Distribution](/getting-started/common-use-cases#software-distribution) - [Software Supply Chain Security](/getting-started/common-use-cases#software-supply-chain-security) - [Software Supply Chain Observability](/getting-started/common-use-cases#software-supply-chain-observability) diff --git a/src/content/menu.json b/src/content/menu.json index 74552715..9292d404 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -325,17 +325,19 @@ "path": "/supply-chain-security/epm/getting-started" }, { - "title": "Continuous security", - "path": "/supply-chain-security/epm" + "title": "Continuous Security", + "path": "/supply-chain-security/epm/continuous-security" }, { "title": "Rego Recipes", "path": "/supply-chain-security/epm/rego" } ] - - }, + { + "title": "Vulnerability scanning", + "path": "/supply-chain-security/vulnerability-scanning" + }, { "title": "Malware scanning", "path": "/supply-chain-security/malware-scanning" diff --git a/src/content/supply-chain-security/epm/continuous-security.mdx b/src/content/supply-chain-security/epm/continuous-security.mdx new file mode 100644 index 00000000..f5ad596b --- /dev/null +++ b/src/content/supply-chain-security/epm/continuous-security.mdx @@ -0,0 +1,53 @@ +import { Note } from '@/components' + +# Continuous Security + +Cloudsmith's continuous Security is one of the key components of Enterprise Policy Management (EPM), guaranteeing that the information about Software vulnerabilities and other advisories in your artifacts are up to date. + +Attackers move fast, often exploiting a newly-disclosed vulnerability within hours. If your security scan only runs once every few days, you’re leaving a wide-open gap for a breach. This window of exposure is the critical period where you are vulnerable and don't even know it. In modern software, where a single flaw in a small, shared library can compromise everything, you can't afford that delay. A near real-time feed of new vulnerabilities closes that gap. It means you can find out about a threat almost as soon as it's known, giving you the chance to quarantine a risky package or apply a patch before it can be used against you. + +This documentation page aims at clarifying the distinction between Continuous Security and other vulnerability scanning methods, such as on-demand and scheduled scans. + +## Understanding the Three Types of Security Scans + +There are three primary types of security features available: + +1. **On-Demand Scanning**: This is a manual scan that can be triggered at any time for a package. It is a computationally intensive operation that provides a detailed vulnerability analysis. + +2. **Scheduled Scans**: These are essentially on-demand scans that are configured to run on a recurring schedule for a specific organization. They perform the same function as on-demand scans but on an automated cadence. + +3. **Continuous Security**: This is an always-on process that provides a more immediate and efficient way of assessing vulnerabilities. Unlike on-demand or scheduled scans, Continuous Security does not require a full, heavy scan of a package each time. Instead, it leverages existing data and new vulnerability advisories to provide up-to-date security information. + + +📘 Both Continuous Security and traditional on-demand/scheduled scans currently use **Trivi** as their underlying vulnerability data source. This means there is a high degree of parity between the vulnerability information available from both methods. + +Within the EPM input metadata, you can access data from both: + +- The `security_scan` object contains the results from a traditional on-demand or scheduled scan. +- The `vulnerabilities` object is populated by Continuous Security and includes additional information like EPSS (Exploit Prediction Scoring System) scores. + + +## How Continuous Security Works + +Continuous Security is enabled by default for all users using EPM. Its primary function is to check packages against a database of known vulnerabilities. This process is triggered in two main scenarios: + +1. **When a new package is uploaded**: The package is checked against the current vulnerability database. + - For Docker and OCI images, an SBOM (Software Bill of Materials) is generated first, and this SBOM is then used for the vulnerability check. + - For other package types, Package URLs (PURLs) are used to match against advisories. +2. **When the vulnerability advisory database is updated**: Our system frequently pulls the latest vulnerability advisories (approximately every hour). When new advisories are added, existing packages are checked against this new information. + +This frequent, near-constant checking ensures that vulnerability information for your packages is always current, without the need for repeated, resource-intensive full scans. + +### The Role of Continuous Sercurity in EPM + +The real power of Continuous Security is unlocked through **Enterprise Policy Management (EPM)**. The vulnerability data generated by Continuous Security is surfaced as an output that can be used to feed your EPM policies. + +When a Continuous Security check finds a new vulnerability that matches the criteria of an EPM policy (e.g., a policy that quarantines any package with a CVSS score greater than 8), that policy will be triggered, and the corresponding action (quarantine) will be executed. + +In essence, Continuous Security provides the real-time data feed, and EPM provides the automated action and enforcement based on that data that you can apply in all your Cloudsmith Workspaces. + +#### Continuous Security traces + +At present, the direct output of Continuous Security is primarily visible through the **EPM Decision Log**. When a policy is triggered due to a new vulnerability discovered by Continuous Security, the Decision Log will show the evaluation and the resulting action. + +It is important to note that the main package vulnerability list in the UI is populated by the traditional on-demand or scheduled scans, not by Continuous Security. Therefore, the EPM Decision Log is the most accurate place to see the impact of Continuous Security. \ No newline at end of file diff --git a/src/content/supply-chain-security/continuous-security.mdx b/src/content/supply-chain-security/vulnerability-scanning.mdx similarity index 99% rename from src/content/supply-chain-security/continuous-security.mdx rename to src/content/supply-chain-security/vulnerability-scanning.mdx index 018b32fd..b59b787e 100644 --- a/src/content/supply-chain-security/continuous-security.mdx +++ b/src/content/supply-chain-security/vulnerability-scanning.mdx @@ -6,7 +6,7 @@ import scans_repo_overview from './images/security-scanning/scans_repo_overview. import package_vulns from './images/security-scanning/package_vulns.png' import additional_scan from './images/security-scanning/additional_scan.png' -# Continuous security +# Vulnerability scanning Cloudsmith Security Scanning will automatically scan supported package types for CVEs upon upload of a package. You can also trigger subsequent scans manually via the Web UI, and via the Cloudsmith API. diff --git a/src/content/workspaces/index.mdx b/src/content/workspaces/index.mdx index 0dfeeaab..f94c3633 100644 --- a/src/content/workspaces/index.mdx +++ b/src/content/workspaces/index.mdx @@ -3,8 +3,20 @@ import { Note, BlockImage } from '@/components' # Workspaces -What is a workspace. In the next sections we... +Creating a Workspace in Cloudsmith allows you to configure access for teams, individuals and machines that map to your company's organizational structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. This is a quick introduction to your workspaces. +Set as default workspace +Caution +This will set cloudsmith as your default workspace, and will be where you are redirected to on login. + +Workspace Overview page: https://app.cloudsmith.com/workspaces +Click on the cloudsmith Logo to see the workspace overview page. +Workspace invite. + +My workspace settings: https://app.cloudsmith.com/settings/workspaces +- default workspace, implications to SAML. landing page. Note: SSO login is only available for workspaces which have already enabled SAML. Not sure? Contact Us. +- leave workspace +- create a new workspace # Multiple Email Management From 44bc949458dc416cb5f977a8b674c8943e585082 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 2 Jul 2025 17:47:14 +0200 Subject: [PATCH 017/127] done --- .env | 2 +- src/app/(api)/Sidebar.tsx | 6 +- src/app/(api)/api/[...slug]/page.tsx | 14 +- src/components/ApiRequest/ApiRequest.tsx | 2 +- src/content/schemas/api-schema-v1.json | 100543 ++++++++++---------- src/content/schemas/api-schema-v2.json | 4958 +- src/lib/search/server.ts | 6 +- src/lib/swagger/parse.test.ts | 138 +- src/lib/swagger/parse.ts | 122 +- src/lib/swagger/types.ts | 1 + 10 files changed, 51550 insertions(+), 54242 deletions(-) diff --git a/.env b/.env index f5bafb4c..a41eafb3 100644 --- a/.env +++ b/.env @@ -1,3 +1,3 @@ -NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io/v2" +NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file diff --git a/src/app/(api)/Sidebar.tsx b/src/app/(api)/Sidebar.tsx index 4e1c621e..704dd3ce 100644 --- a/src/app/(api)/Sidebar.tsx +++ b/src/app/(api)/Sidebar.tsx @@ -1,12 +1,12 @@ import { getMenuItem } from '@/lib/menu/util'; import { Sidenav } from '@/components'; -import { parseSchema, toMenuItems, toOperations } from '@/lib/swagger/parse'; +import { parseSchemas, toMenuItems, toOperations } from '@/lib/swagger/parse'; export const Sidebar = async () => { const menuData = getMenuItem('api'); - const schema = await parseSchema(); - const operations = toOperations(schema); + const schemas = await parseSchemas(); + const operations = toOperations(schemas); const menuItems = toMenuItems(operations); const allItems = []; diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index d641888e..7b72aaec 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -1,6 +1,6 @@ import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph } from '@/components'; import { loadMdxInfo } from '@/lib/markdown/util'; -import { parseSchema, toOperations } from '@/lib/swagger/parse'; +import { parseSchemas, toOperations } from '@/lib/swagger/parse'; import { toRouteSegments, toSlug } from '@/lib/util'; import { notFound } from 'next/navigation'; import type { Metadata } from 'next'; @@ -27,8 +27,8 @@ export async function generateMetadata({ params }: PageProps): Promise } // For Swagger operations, use the operation details - const schema = await parseSchema(); - const operations = toOperations(schema); + const schemas = await parseSchemas(); + const operations = toOperations(schemas); const operation = operations.find((op) => op.slug === qualifiedSlug); if (operation) { @@ -55,8 +55,8 @@ export const generateStaticParams = async () => { .map((info) => ({ slug: info.segments })); // Generate swagger slugs - const schema = await parseSchema(); - const operations = toOperations(schema); + const schemas = await parseSchemas(); + const operations = toOperations(schemas); const operationSlugs = operations.map((op) => ({ slug: toRouteSegments(op.slug) })); return mdxSlugs.concat(operationSlugs); @@ -84,8 +84,8 @@ const Page = async ({ params }: PageProps) => { } // Otherwise render as an operation - const schema = await parseSchema(); - const operations = toOperations(schema); + const schemas = await parseSchemas(); + const operations = toOperations(schemas); const operation = operations.find((op) => op.slug === qualifiedSlug); if (operation) { diff --git a/src/components/ApiRequest/ApiRequest.tsx b/src/components/ApiRequest/ApiRequest.tsx index 7a4f1c06..43c21bed 100644 --- a/src/components/ApiRequest/ApiRequest.tsx +++ b/src/components/ApiRequest/ApiRequest.tsx @@ -15,7 +15,7 @@ export const ApiRequest = (operation: ApiOperation) => {
    - {`${process.env.NEXT_PUBLIC_CLOUDSMITH_API_URL}${operation.path}`} + {`${process.env.NEXT_PUBLIC_CLOUDSMITH_API_URL}/${operation.version}${operation.path}`}
    diff --git a/src/content/schemas/api-schema-v1.json b/src/content/schemas/api-schema-v1.json index 6499a9e0..bf763ee2 100644 --- a/src/content/schemas/api-schema-v1.json +++ b/src/content/schemas/api-schema-v1.json @@ -1,51641 +1,48956 @@ { - "openapi": "3.0.0", - "info": { - "title": "Cloudsmith API (v1)", - "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io", - "contact": { - "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io", - "email": "support@cloudsmith.io" - }, - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - }, - "version": "v1" + "openapi": "3.0.0", + "info": { + "title": "Cloudsmith API (v1)", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io", + "contact": { + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io", + "email": "support@cloudsmith.io" }, - "security": [ + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + }, + "version": "v1", + "versionAlias": "v1" + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "paths": { + "/audit-log/{owner}/": { + "get": { + "operationId": "audit_log_namespace_list", + "summary": "Lists audit log entries for a specific namespace.", + "description": "Lists audit log entries for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NamespaceAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["audit-log"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/audit-log/{owner}/{repo}/": { + "get": { + "operationId": "audit_log_repo_list", + "summary": "Lists audit log entries for a specific repository.", + "description": "Lists audit log entries for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying events, actors, or timestamps of log records.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of audit log entries", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryAuditLog" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Audit logs are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["audit-log"] + }, + "parameters": [ { - "apikey": [] + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, { - "basic": [] + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } - ], - "paths": { - "/audit-log/{owner}/": { - "get": { - "operationId": "audit_log_namespace_list", - "summary": "Lists audit log entries for a specific namespace.", - "description": "Lists audit log entries for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NamespaceAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/audit-log/{owner}/{repo}/": { - "get": { - "operationId": "audit_log_repo_list", - "summary": "Lists audit log entries for a specific repository.", - "description": "Lists audit log entries for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying events, actors, or timestamps of log records.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of audit log entries", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryAuditLog" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Audit logs are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "audit-log" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { - "get": { - "operationId": "badges_version_list", - "summary": "Get latest package version for a package or package group.", - "description": "Get latest package version for a package or package group.", - "parameters": [ - { - "name": "badge_token", - "in": "query", - "description": "Badge token to authenticate for private packages", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "cacheSeconds", - "in": "query", - "description": "Override the shields.io badge cacheSeconds value.", - "required": false, - "schema": { - "type": "string", - "default": "300" - } - }, - { - "name": "color", - "in": "query", - "description": "Override the shields.io badge color value.", - "required": false, - "schema": { - "type": "string", - "default": "12577E" - } - }, - { - "name": "label", - "in": "query", - "description": "Override the shields.io badge label value.", - "required": false, - "schema": { - "type": "string", - "default": "cloudsmith" - } - }, - { - "name": "labelColor", - "in": "query", - "description": "Override the shields.io badge labelColor value.", - "required": false, - "schema": { - "type": "string", - "default": "021F2F" - } - }, - { - "name": "logoColor", - "in": "query", - "description": "Override the shields.io badge logoColor value.", - "required": false, - "schema": { - "type": "string", - "default": "45B6EE" - } - }, - { - "name": "logoWidth", - "in": "query", - "description": "Override the shields.io badge logoWidth value.", - "required": false, - "schema": { - "type": "string", - "default": "10" - } - }, - { - "name": "render", - "in": "query", - "description": "If true, badge will be rendered", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "shields", - "in": "query", - "description": "If true, a shields response will be generated", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_latest", - "in": "query", - "description": "If true, for latest version badges a '(latest)' suffix is added", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "style", - "in": "query", - "description": "Override the shields.io badge style value.", - "required": false, - "schema": { - "type": "string", - "default": "flat-square" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVersionBadge" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "badges" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_format", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package_identifiers", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/distros/": { - "get": { - "operationId": "distros_list", - "summary": "Get a list of all supported distributions.", - "description": "Get a list of all supported distributions.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ] - }, - "parameters": [] - }, - "/distros/{slug}/": { - "get": { - "operationId": "distros_read", - "summary": "View for viewing/listing distributions.", - "description": "View for viewing/listing distributions.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DistributionFull" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "distros" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "entitlements_list", - "summary": "Get a list of all entitlements in a repository.", - "description": "Get a list of all entitlements in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names of entitlements.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "active", - "in": "query", - "description": "If true, only include active tokens", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of entitlement tokens", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "post": { - "operationId": "entitlements_create", - "summary": "Create a specific entitlement in a repository.", - "description": "Create a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/sync/": { - "post": { - "operationId": "entitlements_sync", - "summary": "Synchronise tokens from a source repository.", - "description": "Synchronise tokens from a source repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSyncRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The tokens have been synchronised from the source repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "entitlements_read", - "summary": "Get a specific entitlement in a repository.", - "description": "Get a specific entitlement in a repository.", - "parameters": [ - { - "name": "fuzzy", - "in": "query", - "description": "If true, entitlement identifiers including name will be fuzzy matched.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Retrieved the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "Couldn't retrieve the specified token because the request contains an error.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "patch": { - "operationId": "entitlements_partial_update", - "summary": "Update a specific entitlement in a repository.", - "description": "Update a specific entitlement in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified entitlement", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryToken" - } - } - } - }, - "400": { - "description": "The entitlement cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "delete": { - "operationId": "entitlements_delete", - "summary": "Delete a specific entitlement in a repository.", - "description": "Delete a specific entitlement in a repository.", - "responses": { - "204": { - "description": "Soft-deleted the specified entitlement token successfully." - }, - "400": { - "description": "The entitlement cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + ] + }, + "/badges/version/{owner}/{repo}/{package_format}/{package_name}/{package_version}/{package_identifiers}/": { + "get": { + "operationId": "badges_version_list", + "summary": "Get latest package version for a package or package group.", + "description": "Get latest package version for a package or package group.", + "parameters": [ + { + "name": "badge_token", + "in": "query", + "description": "Badge token to authenticate for private packages", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "cacheSeconds", + "in": "query", + "description": "Override the shields.io badge cacheSeconds value.", + "required": false, + "schema": { + "type": "string", + "default": "300" + } + }, + { + "name": "color", + "in": "query", + "description": "Override the shields.io badge color value.", + "required": false, + "schema": { + "type": "string", + "default": "12577E" + } + }, + { + "name": "label", + "in": "query", + "description": "Override the shields.io badge label value.", + "required": false, + "schema": { + "type": "string", + "default": "cloudsmith" + } + }, + { + "name": "labelColor", + "in": "query", + "description": "Override the shields.io badge labelColor value.", + "required": false, + "schema": { + "type": "string", + "default": "021F2F" + } + }, + { + "name": "logoColor", + "in": "query", + "description": "Override the shields.io badge logoColor value.", + "required": false, + "schema": { + "type": "string", + "default": "45B6EE" + } + }, + { + "name": "logoWidth", + "in": "query", + "description": "Override the shields.io badge logoWidth value.", + "required": false, + "schema": { + "type": "string", + "default": "10" + } + }, + { + "name": "render", + "in": "query", + "description": "If true, badge will be rendered", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "shields", + "in": "query", + "description": "If true, a shields response will be generated", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_latest", + "in": "query", + "description": "If true, for latest version badges a '(latest)' suffix is added", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "style", + "in": "query", + "description": "Override the shields.io badge style value.", + "required": false, + "schema": { + "type": "string", + "default": "flat-square" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVersionBadge" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } }, - "/entitlements/{owner}/{repo}/{identifier}/disable/": { - "post": { - "operationId": "entitlements_disable", - "summary": "Disable an entitlement token in a repository.", - "description": "Disable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been disabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + "tags": ["badges"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "/entitlements/{owner}/{repo}/{identifier}/enable/": { - "post": { - "operationId": "entitlements_enable", - "summary": "Enable an entitlement token in a repository.", - "description": "Enable an entitlement token in a repository.", - "responses": { - "204": { - "description": "The entitlement token has been enabled." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/refresh/": { - "post": { - "operationId": "entitlements_refresh", - "summary": "Refresh an entitlement token in a repository.", - "description": "Refresh an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" - } - } - } - }, - "responses": { - "200": { - "description": "The entitlement token has been refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTokenRefresh" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/entitlements/{owner}/{repo}/{identifier}/reset/": { - "post": { - "operationId": "entitlements_reset", - "summary": "Reset the statistics for an entitlement token in a repository.", - "description": "Reset the statistics for an entitlement token in a repository.", - "parameters": [ - { - "name": "show_tokens", - "in": "query", - "description": "Show entitlement token strings in results", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "204": { - "description": "The entitlement token statistics have been reset." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "entitlements" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/": { - "post": { - "operationId": "files_create", - "summary": "Request URL(s) to upload new package file upload(s) to.", - "description": "Request URL(s) to upload new package file upload(s) to.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "202": { - "description": "The upload request was accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/validate/": { - "post": { - "operationId": "files_validate", - "summary": "Validate parameters used for create.", - "description": "Validate parameters used for create.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/abort/": { - "post": { - "operationId": "files_abort", - "summary": "Abort a multipart file upload.", - "description": "Abort a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "204": { - "description": "The multipart upload was aborted successfully." - }, - "400": { - "description": "The multipart upload could not be aborted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/complete/": { - "post": { - "operationId": "files_complete", - "summary": "Complete a multipart file upload.", - "description": "Complete a multipart file upload.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageFileUploadRequest" - }, - "responses": { - "201": { - "description": "The multipart upload was completed successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUpload" - } - } - } - }, - "400": { - "description": "The multipart upload could not be completed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/files/{owner}/{repo}/{identifier}/info/": { - "get": { - "operationId": "files_info", - "summary": "Get upload information to perform a multipart file upload.", - "description": "Get upload information to perform a multipart file upload.", - "parameters": [ - { - "name": "filename", - "in": "query", - "description": "The filename of the file being uploaded", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "part_number", - "in": "query", - "description": "The part number to be uploaded next", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Information for multipart uploaded retrieved successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFilePartsUpload" - } - } - } - }, - "400": { - "description": "The provided upload file was not a multipart upload.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner), repository or upload file not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "files" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/formats/": { - "get": { - "operationId": "formats_list", - "summary": "Get a list of all supported package formats.", - "description": "Get a list of all supported package formats.", - "responses": { - "200": { - "description": "Available package formats retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Format" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ] - }, - "parameters": [] - }, - "/formats/{slug}/": { - "get": { - "operationId": "formats_read", - "summary": "Get a specific supported package format.", - "description": "Get a specific supported package format.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Format" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "formats" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/": { - "get": { - "operationId": "metrics_entitlements_account_list", - "summary": "View for listing entitlement token metrics, across an account.", - "description": "View for listing entitlement token metrics, across an account.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/entitlements/{owner}/{repo}/": { - "get": { - "operationId": "metrics_entitlements_repo_list", - "summary": "View for listing entitlement token metrics, for a repository.", - "description": "View for listing entitlement token metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "tokens", - "in": "query", - "description": "A comma seperated list of tokens (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for entitlements.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EntitlementUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/metrics/packages/{owner}/{repo}/": { - "get": { - "operationId": "metrics_packages_list", - "summary": "View for listing package usage metrics, for a repository.", - "description": "View for listing package usage metrics, for a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "finish", - "in": "query", - "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "packages", - "in": "query", - "description": "A comma seperated list of packages (slug perm) to include in the results.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "start", - "in": "query", - "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", - "required": false, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the metrics for packages.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageUsageMetrics" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "metrics" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/namespaces/": { - "get": { - "operationId": "namespaces_list", - "summary": "Get a list of all namespaces the user belongs to.", - "description": "Get a list of all namespaces the user belongs to.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Namespace" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ] - }, - "parameters": [] - }, - "/namespaces/{slug}/": { - "get": { - "operationId": "namespaces_read", - "summary": "Get a specific namespace that the user belongs to.", - "description": "Get a specific namespace that the user belongs to.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Namespace" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "namespaces" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/": { - "get": { - "operationId": "orgs_list", - "summary": "Get a list of all the organizations you are associated with.", - "description": "Get a list of all the organizations you are associated with.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Organization" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [] - }, - "/orgs/{org}/": { - "get": { - "operationId": "orgs_read", - "summary": "Get the details for the specific organization.", - "description": "Get the details for the specific organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Organization" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_delete", - "summary": "Delete the specified organization.", - "description": "Delete the specified organization.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/": { - "get": { - "operationId": "orgs_deny-policy_list", - "summary": "Get a list of all package deny policies.", - "description": "Get a list of all package deny policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_deny-policy_create", - "summary": "Create a package deny policy.", - "description": "Create a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/deny-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_deny-policy_read", - "summary": "Get a package deny policy.", - "description": "Get a package deny policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "put": { - "operationId": "orgs_deny-policy_update", - "summary": "Update a package deny policy.", - "description": "Update a package deny policy.", - "requestBody": { - "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_deny-policy_partial_update", - "summary": "Partially update a package deny policy.", - "description": "Partially update a package deny policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_deny-policy_delete", - "summary": "Delete a package deny policy.", - "description": "Delete a package deny policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/": { - "get": { - "operationId": "orgs_invites_list", - "summary": "Get a list of all invites for an organization.", - "description": "Get a list of all invites for an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization invites", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization invites not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_invites_create", - "summary": "Create an organization invite for a specific user", - "description": "Create an organization invite for a specific user", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Invite sent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/": { - "patch": { - "operationId": "orgs_invites_partial_update", - "summary": "Update a specific organization invite.", - "description": "Update a specific organization invite.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Invite updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInvite" - } - } - } - }, - "400": { - "description": "The invite cannot be updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_invites_delete", - "summary": "Delete a specific organization invite", - "description": "Delete a specific organization invite", - "responses": { - "204": { - "description": "Deleted the organization invite successfully." - }, - "400": { - "description": "The organization invite cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/extend/": { - "post": { - "operationId": "orgs_invites_extend", - "summary": "Extend an organization invite.", - "description": "Extend an organization invite.", - "responses": { - "200": { - "description": "The invite has been extended", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/invites/{slug_perm}/resend/": { - "post": { - "operationId": "orgs_invites_resend", - "summary": "Resend an organization invite.", - "description": "Resend an organization invite.", - "responses": { - "200": { - "description": "The invite has been resent", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationInviteExtend" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Invite not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy-violation/": { - "get": { - "operationId": "orgs_license-policy-violation_list", - "summary": "List all current license policy violations for this Organization.", - "description": "List all current license policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" - } - } - }, - "title": "PackageLicensePolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/": { - "get": { - "operationId": "orgs_license-policy_list", - "summary": "Get a list of all package license policies.", - "description": "Get a list of all package license policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_license-policy_create", - "summary": "Create a package license policy.", - "description": "Create a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_license-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_license-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/license-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_license-policy_read", - "summary": "Get a package license policy.", - "description": "Get a package license policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "put": { - "operationId": "orgs_license-policy_update", - "summary": "Update a package license policy.", - "description": "Update a package license policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_license-policy_partial_update", - "summary": "Partially update a package license policy.", - "description": "Partially update a package license policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_license-policy_delete", - "summary": "Delete a package license policy.", - "description": "Delete a package license policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/": { - "get": { - "operationId": "orgs_members_list", - "summary": "Get the details for all organization members.", - "description": "Get the details for all organization members.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "is_active", - "in": "query", - "description": "Filter for active/inactive users.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", - "required": false, - "schema": { - "type": "string", - "default": "user_name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of organization's members", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/": { - "get": { - "operationId": "orgs_members_read", - "summary": "Get the details for a specific organization member.", - "description": "Get the details for a specific organization member.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_members_partial_update", - "summary": "Views for working with organization members.", - "description": "Views for working with organization members.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembership" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_members_delete", - "summary": "Removes a member from the organization.", - "description": "Removes a member from the organization.", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "/orgs/{org}/members/{member}/refresh/": { - "post": { - "operationId": "orgs_members_refresh", - "summary": "Refresh a member of the organization's API key.", - "description": "Refresh a member of the organization's API key.", - "responses": { - "204": { - "description": "Org member API key has been refreshed." - }, - "400": { - "description": "The org member's API key cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org member not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + { + "name": "package_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "/orgs/{org}/members/{member}/remove/": { - "get": { - "operationId": "orgs_members_remove", - "summary": "Removes a member from the organization (deprecated, use DELETE instead).", - "description": "Removes a member from the organization (deprecated, use DELETE instead).", - "responses": { - "204": { - "description": "Removed the organization member successfully." - }, - "400": { - "description": "The organization member cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-role/": { - "patch": { - "operationId": "orgs_members_update_role", - "summary": "Update a member's role in the organization.", - "description": "Update a member's role in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/members/{member}/update-visibility/": { - "patch": { - "operationId": "orgs_members_update_visibility", - "summary": "Update a member's visibility in the organization.", - "description": "Update a member's visibility in the organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "member", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/": { - "get": { - "operationId": "orgs_openid-connect_list", - "summary": "Retrieve the list of OpenID Connect provider settings for the org.", - "description": "Retrieve the list of OpenID Connect provider settings for the org.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_openid-connect_create", - "summary": "Create the OpenID Connect provider settings for the org.", - "description": "Create the OpenID Connect provider settings for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "201": { - "description": "Created the OpenID Connect provider settings for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/openid-connect/{slug_perm}/": { - "get": { - "operationId": "orgs_openid-connect_read", - "summary": "Retrieve a specific OpenID Connect provider setting for the org.", - "description": "Retrieve a specific OpenID Connect provider setting for the org.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "put": { - "operationId": "orgs_openid-connect_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "$ref": "#/components/requestBodies/ProviderSettingsRequest" - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_openid-connect_partial_update", - "summary": "Update a specific OpenID Connect provider setting for the org.", - "description": "Update a specific OpenID Connect provider setting for the org.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified OpenID Connect provider setting for the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettings" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_openid-connect_delete", - "summary": "Delete a specific OpenID Connect provider setting for the org.", - "description": "Delete a specific OpenID Connect provider setting for the org.", - "responses": { - "204": { - "description": "Deleted the specified OpenID Connect provider setting successfully." - }, - "400": { - "description": "The specified OpenID Connect provider setting cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-authentication": { - "get": { - "operationId": "orgs_saml-authentication_read", - "summary": "Retrieve the SAML Authentication settings for this Organization.", - "description": "Retrieve the SAML Authentication settings for this Organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_saml-authentication_partial_update", - "summary": "Update the SAML Authentication settings for this Organization.", - "description": "Update the SAML Authentication settings for this Organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the SAML Authentication settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationSAMLAuth" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "SAML Authentication is not available; please upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/": { - "get": { - "operationId": "orgs_saml-group-sync_list", - "summary": "Get the details of all SAML Group Sync mapping within an organization.", - "description": "Get the details of all SAML Group Sync mapping within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of all SAML Group Sync mappings for this org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_saml-group-sync_create", - "summary": "Create a new SAML Group Sync mapping within an organization.", - "description": "Create a new SAML Group Sync mapping within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The SAML Group Sync mapping was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSync" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + { + "name": "package_name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "/orgs/{org}/saml-group-sync/disable/": { - "post": { - "operationId": "orgs_saml-group-sync_disable", - "summary": "Disable SAML Group Sync for this organization.", - "description": "Disable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been disabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + { + "name": "package_version", + "in": "path", + "required": true, + "schema": { + "type": "string" + } }, - "/orgs/{org}/saml-group-sync/enable/": { - "post": { - "operationId": "orgs_saml-group-sync_enable", - "summary": "Enable SAML Group Sync for this organization.", - "description": "Enable SAML Group Sync for this organization.", - "responses": { - "204": { - "description": "SAML Group Sync has been enabled for this organization." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/saml-group-sync/status/": { - "get": { - "operationId": "orgs_saml-group-sync_status", - "summary": "Retrieve the SAML Group Sync status for this organization.", - "description": "Retrieve the SAML Group Sync status for this organization.", - "responses": { - "200": { - "description": "Retrieved the SAML Group Sync status for this organization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationGroupSyncStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] + { + "name": "package_identifiers", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/distros/": { + "get": { + "operationId": "distros_list", + "summary": "Get a list of all supported distributions.", + "description": "Get a list of all supported distributions.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } }, - "/orgs/{org}/saml-group-sync/{slug_perm}/": { - "delete": { - "operationId": "orgs_saml-group-sync_delete", - "summary": "Delete a SAML Group Sync mapping from an organization.", - "description": "Delete a SAML Group Sync mapping from an organization.", - "responses": { - "204": { - "description": "Mapping removed successfully" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/": { - "get": { - "operationId": "orgs_services_list", - "summary": "Get a list of all services within an organization.", - "description": "Get a list of all services within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of services within an Organization.Available options are: name, role", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", - "required": false, - "schema": { - "type": "string", - "default": "created_at" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of services within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Service" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_services_create", - "summary": "Create a service within an organization.", - "description": "Create a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Created the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/": { - "get": { - "operationId": "orgs_services_read", - "summary": "Retrieve details of a single service within an organization.", - "description": "Retrieve details of a single service within an organization.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_services_partial_update", - "summary": "Update a service within an organization.", - "description": "Update a service within an organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the service within the org", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_services_delete", - "summary": "Delete a specific service", - "description": "Delete a specific service", - "responses": { - "204": { - "description": "Deleted the service successfully." - }, - "400": { - "description": "The service cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/services/{service}/refresh/": { - "post": { - "operationId": "orgs_services_refresh", - "summary": "Refresh service API token.", - "description": "Refresh service API token.", - "responses": { - "200": { - "description": "Refreshed the service token successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Service" - } - } - } - }, - "400": { - "description": "The service token cannot be refreshed.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "service", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/": { - "get": { - "operationId": "orgs_teams_list", - "summary": "Get the details of all teams within an organization.", - "description": "Get the details of all teams within an organization.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "for_user", - "in": "query", - "description": "Filter for teams that you are a member of.", - "required": false, - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of teams within the org", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Org namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_teams_create", - "summary": "Create a team for this organization.", - "description": "Create a team for this organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Team created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/": { - "get": { - "operationId": "orgs_teams_read", - "summary": "Get the details of a specific team within an organization.", - "description": "Get the details of a specific team within an organization.", - "responses": { - "200": { - "description": "Retrieved the details of the requested team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_teams_partial_update", - "summary": "Update a specific team in a organization.", - "description": "Update a specific team in a organization.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeam" - } - } - } - }, - "400": { - "description": "The team cannot be edited.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_teams_delete", - "summary": "Delete a specific team in a organization.", - "description": "Delete a specific team in a organization.", - "responses": { - "204": { - "description": "Deleted the team successfully." - }, - "400": { - "description": "The team cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/teams/{team}/members": { - "get": { - "operationId": "orgs_teams_members_list", - "summary": "List all members for the team.", - "description": "List all members for the team.", - "responses": { - "200": { - "description": "Retrieved users for the specified team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_teams_members_create", - "summary": "Add users to a team.", - "description": "Add users to a team.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "201": { - "description": "The users were added to the team.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "put": { - "operationId": "orgs_teams_members_update", - "summary": "Replace all team members.", - "description": "Replace all team members.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationTeamMembers" - }, - "responses": { - "204": { - "description": "The team members were replaced.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Team not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "team", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy-violation/": { - "get": { - "operationId": "orgs_vulnerability-policy-violation_list", - "summary": "List all current vulnerability policy violations for this Organization.", - "description": "List all current vulnerability policy violations for this Organization.", - "parameters": [ - { - "name": "cursor", - "in": "query", - "description": "The pagination cursor value.", - "required": false, - "schema": { - "type": "string" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "next": { - "type": "string", - "format": "uri", - "nullable": true - }, - "previous": { - "type": "string", - "format": "uri", - "nullable": true - }, - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" - } - } - }, - "title": "PackageVulnerabilityPolicyViolationLogCursorPage" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/": { - "get": { - "operationId": "orgs_vulnerability-policy_list", - "summary": "Get a list of all package vulnerability policies.", - "description": "Get a list of all package vulnerability policies.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_vulnerability-policy_create", - "summary": "Create a package vulnerability policy.", - "description": "Create a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_list", - "summary": "List evaluation requests for this policy.", - "description": "List evaluation requests for this policy.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "post": { - "operationId": "orgs_vulnerability-policy_evaluation_create", - "summary": "Create an evaluation request for this policy.", - "description": "Create an evaluation request for this policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_evaluation_read", - "summary": "Retrieve an evaluation request for this policy.", - "description": "Retrieve an evaluation request for this policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "policy_slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/orgs/{org}/vulnerability-policy/{slug_perm}/": { - "get": { - "operationId": "orgs_vulnerability-policy_read", - "summary": "Get a package vulnerability policy.", - "description": "Get a package vulnerability policy.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "put": { - "operationId": "orgs_vulnerability-policy_update", - "summary": "Update a package vulnerability policy.", - "description": "Update a package vulnerability policy.", - "requestBody": { - "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "patch": { - "operationId": "orgs_vulnerability-policy_partial_update", - "summary": "Partially update a package vulnerability policy.", - "description": "Partially update a package vulnerability policy.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "delete": { - "operationId": "orgs_vulnerability-policy_delete", - "summary": "Delete a package vulnerability policy.", - "description": "Delete a package vulnerability policy.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "orgs" - ] - }, - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/": { - "get": { - "operationId": "packages_list", - "summary": "Get a list of all packages associated with repository.", - "description": "Get a list of all packages associated with repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order.", - "required": false, - "schema": { - "type": "string", - "default": "-date" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of packages", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Package" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/groups/": { - "get": { - "operationId": "packages_groups_list", - "summary": "Return a list of Package Groups in a repository.", - "description": "Return a list of Package Groups in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "group_by", - "in": "query", - "description": "A field to group packages by. Available options: name, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - }, - { - "name": "query", - "in": "query", - "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", - "required": false, - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "sort", - "in": "query", - "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", - "required": false, - "schema": { - "type": "string", - "default": "name" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of package groups.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageGroup" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/alpine/": { - "post": { - "operationId": "packages_upload_alpine", - "summary": "Create a new Alpine package", - "description": "Create a new Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cargo/": { - "post": { - "operationId": "packages_upload_cargo", - "summary": "Create a new Cargo package", - "description": "Create a new Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cocoapods/": { - "post": { - "operationId": "packages_upload_cocoapods", - "summary": "Create a new CocoaPods package", - "description": "Create a new CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/composer/": { - "post": { - "operationId": "packages_upload_composer", - "summary": "Create a new Composer package", - "description": "Create a new Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conan/": { - "post": { - "operationId": "packages_upload_conan", - "summary": "Create a new Conan package", - "description": "Create a new Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/conda/": { - "post": { - "operationId": "packages_upload_conda", - "summary": "Create a new Conda package", - "description": "Create a new Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/cran/": { - "post": { - "operationId": "packages_upload_cran", - "summary": "Create a new CRAN package", - "description": "Create a new CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/dart/": { - "post": { - "operationId": "packages_upload_dart", - "summary": "Create a new Dart package", - "description": "Create a new Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/deb/": { - "post": { - "operationId": "packages_upload_deb", - "summary": "Create a new Debian package", - "description": "Create a new Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/docker/": { - "post": { - "operationId": "packages_upload_docker", - "summary": "Create a new Docker package", - "description": "Create a new Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/go/": { - "post": { - "operationId": "packages_upload_go", - "summary": "Create a new Go package", - "description": "Create a new Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/helm/": { - "post": { - "operationId": "packages_upload_helm", - "summary": "Create a new Helm package", - "description": "Create a new Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/hex/": { - "post": { - "operationId": "packages_upload_hex", - "summary": "Create a new Hex package", - "description": "Create a new Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/luarocks/": { - "post": { - "operationId": "packages_upload_luarocks", - "summary": "Create a new LuaRocks package", - "description": "Create a new LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/maven/": { - "post": { - "operationId": "packages_upload_maven", - "summary": "Create a new Maven package", - "description": "Create a new Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/npm/": { - "post": { - "operationId": "packages_upload_npm", - "summary": "Create a new npm package", - "description": "Create a new npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/nuget/": { - "post": { - "operationId": "packages_upload_nuget", - "summary": "Create a new NuGet package", - "description": "Create a new NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/p2/": { - "post": { - "operationId": "packages_upload_p2", - "summary": "Create a new P2 package", - "description": "Create a new P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/python/": { - "post": { - "operationId": "packages_upload_python", - "summary": "Create a new Python package", - "description": "Create a new Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/raw/": { - "post": { - "operationId": "packages_upload_raw", - "summary": "Create a new Raw package", - "description": "Create a new Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/rpm/": { - "post": { - "operationId": "packages_upload_rpm", - "summary": "Create a new RedHat package", - "description": "Create a new RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/ruby/": { - "post": { - "operationId": "packages_upload_ruby", - "summary": "Create a new Ruby package", - "description": "Create a new Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/swift/": { - "post": { - "operationId": "packages_upload_swift", - "summary": "Create a new Swift package", - "description": "Create a new Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/terraform/": { - "post": { - "operationId": "packages_upload_terraform", - "summary": "Create a new Terraform package", - "description": "Create a new Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/upload/vagrant/": { - "post": { - "operationId": "packages_upload_vagrant", - "summary": "Create a new Vagrant package", - "description": "Create a new Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "201": { - "description": "Upload acknowledged and queued for synchronization.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUpload" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/alpine/": { - "post": { - "operationId": "packages_validate-upload_alpine", - "summary": "Validate parameters for create Alpine package", - "description": "Validate parameters for create Alpine package", - "requestBody": { - "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cargo/": { - "post": { - "operationId": "packages_validate-upload_cargo", - "summary": "Validate parameters for create Cargo package", - "description": "Validate parameters for create Cargo package", - "requestBody": { - "$ref": "#/components/requestBodies/CargoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cocoapods/": { - "post": { - "operationId": "packages_validate-upload_cocoapods", - "summary": "Validate parameters for create CocoaPods package", - "description": "Validate parameters for create CocoaPods package", - "requestBody": { - "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/composer/": { - "post": { - "operationId": "packages_validate-upload_composer", - "summary": "Validate parameters for create Composer package", - "description": "Validate parameters for create Composer package", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conan/": { - "post": { - "operationId": "packages_validate-upload_conan", - "summary": "Validate parameters for create Conan package", - "description": "Validate parameters for create Conan package", - "requestBody": { - "$ref": "#/components/requestBodies/ConanPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/conda/": { - "post": { - "operationId": "packages_validate-upload_conda", - "summary": "Validate parameters for create Conda package", - "description": "Validate parameters for create Conda package", - "requestBody": { - "$ref": "#/components/requestBodies/CondaPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/cran/": { - "post": { - "operationId": "packages_validate-upload_cran", - "summary": "Validate parameters for create CRAN package", - "description": "Validate parameters for create CRAN package", - "requestBody": { - "$ref": "#/components/requestBodies/CranPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/dart/": { - "post": { - "operationId": "packages_validate-upload_dart", - "summary": "Validate parameters for create Dart package", - "description": "Validate parameters for create Dart package", - "requestBody": { - "$ref": "#/components/requestBodies/DartPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/deb/": { - "post": { - "operationId": "packages_validate-upload_deb", - "summary": "Validate parameters for create Debian package", - "description": "Validate parameters for create Debian package", - "requestBody": { - "$ref": "#/components/requestBodies/DebPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/docker/": { - "post": { - "operationId": "packages_validate-upload_docker", - "summary": "Validate parameters for create Docker package", - "description": "Validate parameters for create Docker package", - "requestBody": { - "$ref": "#/components/requestBodies/DockerPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/go/": { - "post": { - "operationId": "packages_validate-upload_go", - "summary": "Validate parameters for create Go package", - "description": "Validate parameters for create Go package", - "requestBody": { - "$ref": "#/components/requestBodies/GoPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/helm/": { - "post": { - "operationId": "packages_validate-upload_helm", - "summary": "Validate parameters for create Helm package", - "description": "Validate parameters for create Helm package", - "requestBody": { - "$ref": "#/components/requestBodies/HelmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/hex/": { - "post": { - "operationId": "packages_validate-upload_hex", - "summary": "Validate parameters for create Hex package", - "description": "Validate parameters for create Hex package", - "requestBody": { - "$ref": "#/components/requestBodies/HexPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/luarocks/": { - "post": { - "operationId": "packages_validate-upload_luarocks", - "summary": "Validate parameters for create LuaRocks package", - "description": "Validate parameters for create LuaRocks package", - "requestBody": { - "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/maven/": { - "post": { - "operationId": "packages_validate-upload_maven", - "summary": "Validate parameters for create Maven package", - "description": "Validate parameters for create Maven package", - "requestBody": { - "$ref": "#/components/requestBodies/MavenPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/npm/": { - "post": { - "operationId": "packages_validate-upload_npm", - "summary": "Validate parameters for create npm package", - "description": "Validate parameters for create npm package", - "requestBody": { - "$ref": "#/components/requestBodies/NpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/nuget/": { - "post": { - "operationId": "packages_validate-upload_nuget", - "summary": "Validate parameters for create NuGet package", - "description": "Validate parameters for create NuGet package", - "requestBody": { - "$ref": "#/components/requestBodies/NugetPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/p2/": { - "post": { - "operationId": "packages_validate-upload_p2", - "summary": "Validate parameters for create P2 package", - "description": "Validate parameters for create P2 package", - "requestBody": { - "$ref": "#/components/requestBodies/P2PackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/python/": { - "post": { - "operationId": "packages_validate-upload_python", - "summary": "Validate parameters for create Python package", - "description": "Validate parameters for create Python package", - "requestBody": { - "$ref": "#/components/requestBodies/PythonPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/raw/": { - "post": { - "operationId": "packages_validate-upload_raw", - "summary": "Validate parameters for create Raw package", - "description": "Validate parameters for create Raw package", - "requestBody": { - "$ref": "#/components/requestBodies/RawPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/rpm/": { - "post": { - "operationId": "packages_validate-upload_rpm", - "summary": "Validate parameters for create RedHat package", - "description": "Validate parameters for create RedHat package", - "requestBody": { - "$ref": "#/components/requestBodies/RpmPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/ruby/": { - "post": { - "operationId": "packages_validate-upload_ruby", - "summary": "Validate parameters for create Ruby package", - "description": "Validate parameters for create Ruby package", - "requestBody": { - "$ref": "#/components/requestBodies/RubyPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/swift/": { - "post": { - "operationId": "packages_validate-upload_swift", - "summary": "Validate parameters for create Swift package", - "description": "Validate parameters for create Swift package", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/terraform/": { - "post": { - "operationId": "packages_validate-upload_terraform", - "summary": "Validate parameters for create Terraform package", - "description": "Validate parameters for create Terraform package", - "requestBody": { - "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/validate-upload/vagrant/": { - "post": { - "operationId": "packages_validate-upload_vagrant", - "summary": "Validate parameters for create Vagrant package", - "description": "Validate parameters for create Vagrant package", - "requestBody": { - "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" - }, - "responses": { - "204": { - "description": "Validation was successful, parameters are OK." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Namespace (owner) or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "packages_read", - "summary": "Get a specific package in a repository.", - "description": "Get a specific package in a repository.", - "responses": { - "200": { - "description": "Retrieved the specified package successfully.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "delete": { - "operationId": "packages_delete", - "summary": "Delete a specific package in a repository.", - "description": "Delete a specific package in a repository.", - "responses": { - "204": { - "description": "Deleted the specified package successfully." - }, - "400": { - "description": "The package cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/copy/": { - "post": { - "operationId": "packages_copy", - "summary": "Copy a package to another repository.", - "description": "Copy a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopyRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Copied specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageCopy" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/dependencies/": { - "get": { - "operationId": "packages_dependencies", - "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", - "responses": { - "200": { - "description": "Retrieved stored dependencies for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDependencies" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/move/": { - "post": { - "operationId": "packages_move", - "summary": "Move a package to another repository.", - "description": "Move a package to another repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMoveRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Moved specified package to destination repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageMove" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/quarantine/": { - "post": { - "operationId": "packages_quarantine", - "summary": "Quarantine or release a package.", - "description": "Quarantine or release a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantineRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Changed the package's quarantine status.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageQuarantine" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/resync/": { - "post": { - "operationId": "packages_resync", - "summary": "Schedule a package for resynchronisation.", - "description": "Schedule a package for resynchronisation.", - "responses": { - "200": { - "description": "Scheduled the package for resynchronisation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageResync" - } - } - } - }, - "400": { - "description": "The package is in the wrong state for the requested operation.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/scan/": { - "post": { - "operationId": "packages_scan", - "summary": "Schedule a package for scanning.", - "description": "Schedule a package for scanning.", - "responses": { - "200": { - "description": "Scheduled the package for scanning.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/status/": { - "get": { - "operationId": "packages_status", - "summary": "Get the synchronization status for a package.", - "description": "Get the synchronization status for a package.", - "responses": { - "200": { - "description": "Retrieved status for specified package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/packages/{owner}/{repo}/{identifier}/tag/": { - "post": { - "operationId": "packages_tag", - "summary": "Add/Replace/Remove tags for a package.", - "description": "Add/Replace/Remove tags for a package.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageTagRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Modified tags for the package.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Package" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "packages" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/history/{owner}/": { - "get": { - "operationId": "quota_history_read", - "summary": "Quota history for a given namespace.", - "description": "Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/history/{owner}/": { - "get": { - "operationId": "quota_oss_history_read", - "summary": "Open-source Quota history for a given namespace.", - "description": "Open-source Quota history for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QuotaHistory" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/oss/{owner}/": { - "get": { - "operationId": "quota_oss_read", - "summary": "Open-source Quota usage for a given namespace.", - "description": "Open-source Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/quota/{owner}/": { - "get": { - "operationId": "quota_read", - "summary": "Quota usage for a given namespace.", - "description": "Quota usage for a given namespace.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Quota" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "quota" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/rates/limits/": { - "get": { - "operationId": "rates_limits_list", - "summary": "Endpoint to check rate limits for current user.", - "description": "Endpoint to check rate limits for current user.", - "responses": { - "200": { - "description": "Rate check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ResourcesRateCheck" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "rates" - ] - }, - "parameters": [] - }, - "/repos/": { - "get": { - "operationId": "repos_user_list", - "summary": "Get a list of all repositories associated with current user.", - "description": "Get a list of all repositories associated with current user.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [] - }, - "/repos/{owner}/": { - "get": { - "operationId": "repos_namespace_list", - "summary": "Get a list of all repositories within a namespace.", - "description": "Get a list of all repositories within a namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of repositories", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Repository" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_create", - "summary": "Create a new repository in a given namespace.", - "description": "Create a new repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreateRequest" - } - } - } - }, - "responses": { - "201": { - "description": "The repository was created.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryCreate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/": { - "get": { - "operationId": "repos_read", - "summary": "Get a specific repository.", - "description": "Get a specific repository.", - "responses": { - "200": { - "description": "Retrieved the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_partial_update", - "summary": "Update details about a repository in a given namespace.", - "description": "Update details about a repository in a given namespace.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "The repository was updated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Repository" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_delete", - "summary": "Delete a repository in a given namespace.", - "description": "Delete a repository in a given namespace.", - "responses": { - "200": { - "description": "The repository has been scheduled for deletion." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Unable to find repository with that name in the provided namespace.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/": { - "get": { - "operationId": "repos_ecdsa_list", - "summary": "Retrieve the active ECDSA key for the Repository.", - "description": "Retrieve the active ECDSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_ecdsa_create", - "summary": "Set the active ECDSA key for the Repository.", - "description": "Set the active ECDSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided ECDSA key is the same as the current ECDSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "201": { - "description": "The provided ECDSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "The provided ECDSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom ECDSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/ecdsa/regenerate/": { - "post": { - "operationId": "repos_ecdsa_regenerate", - "summary": "Regenerate ECDSA Key for the Repository.", - "description": "Regenerate ECDSA Key for the Repository.", - "responses": { - "200": { - "description": "An ECDSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip": { - "get": { - "operationId": "repos_geoip_read", - "summary": "List all repository geoip rules.", - "description": "List all repository geoip rules.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_geoip_update", - "summary": "Replace repository geoip rules.", - "description": "Replace repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_geoip_partial_update", - "summary": "Partially update repository geoip rules.", - "description": "Partially update repository geoip rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/disable/": { - "post": { - "operationId": "repos_geoip_disable", - "summary": "Disable GeoIP for this repository.", - "description": "Disable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been disabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/enable/": { - "post": { - "operationId": "repos_geoip_enable", - "summary": "Enable GeoIP for this repository.", - "description": "Enable GeoIP for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" - }, - "responses": { - "200": { - "description": "GeoIP has been enabled for this repository." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/status/": { - "get": { - "operationId": "api_repos_geoip_status", - "summary": "Retrieve the GeoIP status for this repository.", - "description": "Retrieve the GeoIP status for this repository.", - "responses": { - "200": { - "description": "Retrieved the GeoIP status for this repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpStatus" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/geoip/test/": { - "post": { - "operationId": "repos_geoip_test", - "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", - "description": "Test a list of IP addresses against the repository's current GeoIP rules.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" - } - } - } - }, - "responses": { - "201": { - "description": "Successfuly tested addresses against the repository's GeoIP rules", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Geo/IP restrictions are not available; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/": { - "get": { - "operationId": "repos_gpg_list", - "summary": "Retrieve the active GPG key for the Repository.", - "description": "Retrieve the active GPG key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_gpg_create", - "summary": "Set the active GPG key for the Repository.", - "description": "Set the active GPG key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided GPG key is the same as the current GPG key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "201": { - "description": "The provided GPG key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "The provided GPG key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom GPG keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/gpg/regenerate/": { - "post": { - "operationId": "repos_gpg_regenerate", - "summary": "Regenerate GPG Key for the Repository.", - "description": "Regenerate GPG Key for the Repository.", - "responses": { - "200": { - "description": "A GPG key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryGpgKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/privileges": { - "get": { - "operationId": "repos_privileges_list", - "summary": "List all explicity created privileges for the repository.", - "description": "List all explicity created privileges for the repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved privileges for the specified repository", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInput" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_privileges_update", - "summary": "Replace all existing repository privileges with those specified.", - "description": "Replace all existing repository privileges with those specified.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges replaced" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_privileges_partial_update", - "summary": "Modify privileges for the repository.", - "description": "Modify privileges for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" - } - } - } - }, - "responses": { - "204": { - "description": "Repository privileges updated" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/": { - "get": { - "operationId": "repos_rsa_list", - "summary": "Retrieve the active RSA key for the Repository.", - "description": "Retrieve the active RSA key for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_rsa_create", - "summary": "Set the active RSA key for the Repository.", - "description": "Set the active RSA key for the Repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKeyCreate" - } - } - } - }, - "responses": { - "200": { - "description": "The provided RSA key is the same as the current RSA key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "201": { - "description": "The provided RSA key was assigned to the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "The provided RSA key is not valid", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom RSA keys are not active; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Organization/Repository does not exist, or you do not have permissions.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/rsa/regenerate/": { - "post": { - "operationId": "repos_rsa_regenerate", - "summary": "Regenerate RSA Key for the Repository.", - "description": "Regenerate RSA Key for the Repository.", - "responses": { - "200": { - "description": "An RSA key was generated for the Repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRsaKey" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/": { - "get": { - "operationId": "repos_upstream_cargo_list", - "summary": "List Cargo upstream configs for this repository.", - "description": "List Cargo upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_cargo_create", - "summary": "Create a Cargo upstream config for this repository.", - "description": "Create a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cargo_read", - "summary": "Retrieve a Cargo upstream config for this repository.", - "description": "Retrieve a Cargo upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_cargo_update", - "summary": "Update a Cargo upstream config for this repository.", - "description": "Update a Cargo upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CargoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_cargo_partial_update", - "summary": "Partially update a Cargo upstream config for this repository.", - "description": "Partially update a Cargo upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_cargo_delete", - "summary": "Delete a Cargo upstream config for this repository.", - "description": "Delete a Cargo upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/": { - "get": { - "operationId": "repos_upstream_composer_list", - "summary": "List Composer upstream configs for this repository.", - "description": "List Composer upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_composer_create", - "summary": "Create a Composer upstream config for this repository.", - "description": "Create a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_composer_read", - "summary": "Retrieve a Composer upstream config for this repository.", - "description": "Retrieve a Composer upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_composer_update", - "summary": "Update a Composer upstream config for this repository.", - "description": "Update a Composer upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/ComposerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_composer_partial_update", - "summary": "Partially update a Composer upstream config for this repository.", - "description": "Partially update a Composer upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_composer_delete", - "summary": "Delete a Composer upstream config for this repository.", - "description": "Delete a Composer upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/": { - "get": { - "operationId": "repos_upstream_cran_list", - "summary": "List CRAN upstream configs for this repository.", - "description": "List CRAN upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_cran_create", - "summary": "Create a CRAN upstream config for this repository.", - "description": "Create a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_cran_read", - "summary": "Retrieve a CRAN upstream config for this repository.", - "description": "Retrieve a CRAN upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_cran_update", - "summary": "Update a CRAN upstream config for this repository.", - "description": "Update a CRAN upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/CranUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_cran_partial_update", - "summary": "Partially update a CRAN upstream config for this repository.", - "description": "Partially update a CRAN upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_cran_delete", - "summary": "Delete a CRAN upstream config for this repository.", - "description": "Delete a CRAN upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/": { - "get": { - "operationId": "repos_upstream_dart_list", - "summary": "List Dart upstream configs for this repository.", - "description": "List Dart upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_dart_create", - "summary": "Create a Dart upstream config for this repository.", - "description": "Create a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_dart_read", - "summary": "Retrieve a Dart upstream config for this repository.", - "description": "Retrieve a Dart upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_dart_update", - "summary": "Update a Dart upstream config for this repository.", - "description": "Update a Dart upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DartUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_dart_partial_update", - "summary": "Partially update a Dart upstream config for this repository.", - "description": "Partially update a Dart upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_dart_delete", - "summary": "Delete a Dart upstream config for this repository.", - "description": "Delete a Dart upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/": { - "get": { - "operationId": "repos_upstream_deb_list", - "summary": "List Debian upstream configs for this repository.", - "description": "List Debian upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_deb_create", - "summary": "Create a Debian upstream config for this repository.", - "description": "Create a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_deb_read", - "summary": "Retrieve a Debian upstream config for this repository.", - "description": "Retrieve a Debian upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_deb_update", - "summary": "Update a Debian upstream config for this repository.", - "description": "Update a Debian upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DebUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_deb_partial_update", - "summary": "Partially update a Debian upstream config for this repository.", - "description": "Partially update a Debian upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_deb_delete", - "summary": "Delete a Debian upstream config for this repository.", - "description": "Delete a Debian upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/": { - "get": { - "operationId": "repos_upstream_docker_list", - "summary": "List Docker upstream configs for this repository.", - "description": "List Docker upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_docker_create", - "summary": "Create a Docker upstream config for this repository.", - "description": "Create a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_docker_read", - "summary": "Retrieve a Docker upstream config for this repository.", - "description": "Retrieve a Docker upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_docker_update", - "summary": "Update a Docker upstream config for this repository.", - "description": "Update a Docker upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/DockerUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_docker_partial_update", - "summary": "Partially update a Docker upstream config for this repository.", - "description": "Partially update a Docker upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_docker_delete", - "summary": "Delete a Docker upstream config for this repository.", - "description": "Delete a Docker upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/": { - "get": { - "operationId": "repos_upstream_go_list", - "summary": "List Go upstream configs for this repository.", - "description": "List Go upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_go_create", - "summary": "Create a Go upstream config for this repository.", - "description": "Create a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_go_read", - "summary": "Retrieve a Go upstream config for this repository.", - "description": "Retrieve a Go upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_go_update", - "summary": "Update a Go upstream config for this repository.", - "description": "Update a Go upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/GoUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_go_partial_update", - "summary": "Partially update a Go upstream config for this repository.", - "description": "Partially update a Go upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_go_delete", - "summary": "Delete a Go upstream config for this repository.", - "description": "Delete a Go upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/": { - "get": { - "operationId": "repos_upstream_helm_list", - "summary": "List Helm upstream configs for this repository.", - "description": "List Helm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_helm_create", - "summary": "Create a Helm upstream config for this repository.", - "description": "Create a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_helm_read", - "summary": "Retrieve a Helm upstream config for this repository.", - "description": "Retrieve a Helm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_helm_update", - "summary": "Update a Helm upstream config for this repository.", - "description": "Update a Helm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HelmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_helm_partial_update", - "summary": "Partially update a Helm upstream config for this repository.", - "description": "Partially update a Helm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_helm_delete", - "summary": "Delete a Helm upstream config for this repository.", - "description": "Delete a Helm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/": { - "get": { - "operationId": "repos_upstream_hex_list", - "summary": "List Hex upstream configs for this repository.", - "description": "List Hex upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_hex_create", - "summary": "Create a Hex upstream config for this repository.", - "description": "Create a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_hex_read", - "summary": "Retrieve a Hex upstream config for this repository.", - "description": "Retrieve a Hex upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_hex_update", - "summary": "Update a Hex upstream config for this repository.", - "description": "Update a Hex upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/HexUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_hex_partial_update", - "summary": "Partially update a Hex upstream config for this repository.", - "description": "Partially update a Hex upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_hex_delete", - "summary": "Delete a Hex upstream config for this repository.", - "description": "Delete a Hex upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/": { - "get": { - "operationId": "repos_upstream_maven_list", - "summary": "List Maven upstream configs for this repository.", - "description": "List Maven upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_maven_create", - "summary": "Create a Maven upstream config for this repository.", - "description": "Create a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_maven_read", - "summary": "Retrieve a Maven upstream config for this repository.", - "description": "Retrieve a Maven upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_maven_update", - "summary": "Update a Maven upstream config for this repository.", - "description": "Update a Maven upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/MavenUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_maven_partial_update", - "summary": "Partially update a Maven upstream config for this repository.", - "description": "Partially update a Maven upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_maven_delete", - "summary": "Delete a Maven upstream config for this repository.", - "description": "Delete a Maven upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/": { - "get": { - "operationId": "repos_upstream_npm_list", - "summary": "List npm upstream configs for this repository.", - "description": "List npm upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_npm_create", - "summary": "Create a npm upstream config for this repository.", - "description": "Create a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_npm_read", - "summary": "Retrieve a npm upstream config for this repository.", - "description": "Retrieve a npm upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_npm_update", - "summary": "Update a npm upstream config for this repository.", - "description": "Update a npm upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_npm_partial_update", - "summary": "Partially update a npm upstream config for this repository.", - "description": "Partially update a npm upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_npm_delete", - "summary": "Delete a npm upstream config for this repository.", - "description": "Delete a npm upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/": { - "get": { - "operationId": "repos_upstream_nuget_list", - "summary": "List NuGet upstream configs for this repository.", - "description": "List NuGet upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_nuget_create", - "summary": "Create a NuGet upstream config for this repository.", - "description": "Create a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_nuget_read", - "summary": "Retrieve a NuGet upstream config for this repository.", - "description": "Retrieve a NuGet upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_nuget_update", - "summary": "Update a NuGet upstream config for this repository.", - "description": "Update a NuGet upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/NugetUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_nuget_partial_update", - "summary": "Partially update a NuGet upstream config for this repository.", - "description": "Partially update a NuGet upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_nuget_delete", - "summary": "Delete a NuGet upstream config for this repository.", - "description": "Delete a NuGet upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/": { - "get": { - "operationId": "repos_upstream_python_list", - "summary": "List Python upstream configs for this repository.", - "description": "List Python upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_python_create", - "summary": "Create a Python upstream config for this repository.", - "description": "Create a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_python_read", - "summary": "Retrieve a Python upstream config for this repository.", - "description": "Retrieve a Python upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_python_update", - "summary": "Update a Python upstream config for this repository.", - "description": "Update a Python upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/PythonUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_python_partial_update", - "summary": "Partially update a Python upstream config for this repository.", - "description": "Partially update a Python upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_python_delete", - "summary": "Delete a Python upstream config for this repository.", - "description": "Delete a Python upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/": { - "get": { - "operationId": "repos_upstream_rpm_list", - "summary": "List RedHat upstream configs for this repository.", - "description": "List RedHat upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_rpm_create", - "summary": "Create a RedHat upstream config for this repository.", - "description": "Create a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_rpm_read", - "summary": "Retrieve a RedHat upstream config for this repository.", - "description": "Retrieve a RedHat upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_rpm_update", - "summary": "Update a RedHat upstream config for this repository.", - "description": "Update a RedHat upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RpmUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_rpm_partial_update", - "summary": "Partially update a RedHat upstream config for this repository.", - "description": "Partially update a RedHat upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_rpm_delete", - "summary": "Delete a RedHat upstream config for this repository.", - "description": "Delete a RedHat upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/": { - "get": { - "operationId": "repos_upstream_ruby_list", - "summary": "List Ruby upstream configs for this repository.", - "description": "List Ruby upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_ruby_create", - "summary": "Create a Ruby upstream config for this repository.", - "description": "Create a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_ruby_read", - "summary": "Retrieve a Ruby upstream config for this repository.", - "description": "Retrieve a Ruby upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_ruby_update", - "summary": "Update a Ruby upstream config for this repository.", - "description": "Update a Ruby upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/RubyUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_ruby_partial_update", - "summary": "Partially update a Ruby upstream config for this repository.", - "description": "Partially update a Ruby upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_ruby_delete", - "summary": "Delete a Ruby upstream config for this repository.", - "description": "Delete a Ruby upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/": { - "get": { - "operationId": "repos_upstream_swift_list", - "summary": "List Swift upstream configs for this repository.", - "description": "List Swift upstream configs for this repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "post": { - "operationId": "repos_upstream_swift_create", - "summary": "Create a Swift upstream config for this repository.", - "description": "Create a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { - "get": { - "operationId": "repos_upstream_swift_read", - "summary": "Retrieve a Swift upstream config for this repository.", - "description": "Retrieve a Swift upstream config for this repository.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "put": { - "operationId": "repos_upstream_swift_update", - "summary": "Update a Swift upstream config for this repository.", - "description": "Update a Swift upstream config for this repository.", - "requestBody": { - "$ref": "#/components/requestBodies/SwiftUpstreamRequest" - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repos_upstream_swift_partial_update", - "summary": "Partially update a Swift upstream config for this repository.", - "description": "Partially update a Swift upstream config for this repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstream" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "delete": { - "operationId": "repos_upstream_swift_delete", - "summary": "Delete a Swift upstream config for this repository.", - "description": "Delete a Swift upstream config for this repository.", - "responses": { - "204": { - "description": "No Content" - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-ecdsa/": { - "get": { - "operationId": "repos_x509_ecdsa_list", - "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 ECDSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{identifier}/x509-rsa/": { - "get": { - "operationId": "repos_x509_rsa_list", - "summary": "Retrieve the active X.509 RSA certificate for the Repository.", - "description": "Retrieve the active X.509 RSA certificate for the Repository.", - "responses": { - "200": { - "description": "Retrieved the active X.509 RSA Certificate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryX509RsaCertificate" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/retention/": { - "get": { - "operationId": "repo_retention_read", - "summary": "Retrieve the retention rules for the repository.", - "description": "Retrieve the retention rules for the repository.", - "responses": { - "200": { - "description": "Retrieved the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "patch": { - "operationId": "repo_retention_partial_update", - "summary": "Update the retention rules for the repository.", - "description": "Update the retention rules for the repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the retention rules for the repository.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryRetentionRules" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/repos/{owner}/{repo}/transfer-region/": { - "post": { - "operationId": "repos_transfer_region", - "summary": "Transfer a repository to a different region.", - "description": "Transfer a repository to a different region.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryTransferRegionRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Repository region transfer initiated." - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "402": { - "description": "Custom storage regions not available on plan; upgrade your account!", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner, namespace or repository not found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "repos" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/status/check/basic/": { - "get": { - "operationId": "status_check_basic", - "summary": "Endpoint to check basic API connectivity.", - "description": "Endpoint to check basic API connectivity.", - "responses": { - "200": { - "description": "Status check was successful", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatusBasic" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "status" - ], - "security": [] - }, - "parameters": [] - }, - "/storage-regions/": { - "get": { - "operationId": "storage-regions_list", - "summary": "Get a list of all available storage regions.", - "description": "Get a list of all available storage regions.", - "responses": { - "200": { - "description": "Available storage regions retrieved", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ] - }, - "parameters": [] - }, - "/storage-regions/{slug}/": { - "get": { - "operationId": "storage-regions_read", - "summary": "Get a specific storage region.", - "description": "Get a specific storage region.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StorageRegion" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "storage-regions" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/user/self/": { - "get": { - "operationId": "user_self", - "summary": "Provide a brief for the current user (if any).", - "description": "Provide a brief for the current user (if any).", - "responses": { - "200": { - "description": "Retrieved brief for the current user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserBrief" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ] - }, - "parameters": [] - }, - "/user/token/": { - "post": { - "operationId": "user_token_create", - "summary": "Create or retrieve API token for a user.", - "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthTokenRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Retrieved/created user API token/key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "403": { - "description": "Locked out.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Failed to authenticate.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ], - "security": [ - { - "basic": [] - } - ] - }, - "parameters": [] - }, - "/user/tokens/": { - "get": { - "operationId": "user_tokens_list", - "summary": "Retrieve the API key assigned to the user that is currently authenticated.", - "description": "Retrieve the API key assigned to the user that is currently authenticated.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "required": [ - "results" - ], - "type": "object", - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ] - }, - "post": { - "operationId": "user_tokens_create", - "summary": "Create an API key for the user that is currently authenticated.", - "description": "Create an API key for the user that is currently authenticated.", - "responses": { - "201": { - "description": "Created an API key for the user that is currently authenticated.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "User has already created an API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ] - }, - "parameters": [] - }, - "/user/tokens/{slug_perm}/refresh/": { - "put": { - "operationId": "user_tokens_refresh", - "summary": "Refresh the specified API key for the user that is currently authenticated.", - "description": "Refresh the specified API key for the user that is currently authenticated.", - "responses": { - "200": { - "description": "Successfully refreshed the API key.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserAuthenticationToken" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "The specified API key cannot be found.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "user" - ] - }, - "parameters": [ - { - "name": "slug_perm", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/users/profile/{slug}/": { - "get": { - "operationId": "users_profile_read", - "summary": "Provide a brief for the specified user (if any).", - "description": "Provide a brief for the specified user (if any).", - "responses": { - "200": { - "description": "Retrieved details for the specified user (or current user, if none was specified)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfile" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "users" - ] - }, - "parameters": [ - { - "name": "slug", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/": { - "get": { - "operationId": "vulnerabilities_namespace_list", - "summary": "Lists scan results for a specific namespace.", - "description": "Lists scan results for a specific namespace.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/": { - "get": { - "operationId": "vulnerabilities_repo_list", - "summary": "Lists scan results for a specific repository.", - "description": "Lists scan results for a specific repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/": { - "get": { - "operationId": "vulnerabilities_package_list", - "summary": "Lists scan results for a specific package.", - "description": "Lists scan results for a specific package.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScanResultsList" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { - "get": { - "operationId": "vulnerabilities_read", - "summary": "Get a scan result.", - "description": "Get a scan result.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VulnerabilityScanResults" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "vulnerabilities" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "package", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/": { - "get": { - "operationId": "webhooks_list", - "summary": "Get a list of all webhooks in a repository.", - "description": "Get a list of all webhooks in a repository.", - "parameters": [ - { - "name": "page", - "in": "query", - "description": "A page number within the paginated result set.", - "required": false, - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "in": "query", - "description": "Number of results to return per page.", - "required": false, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "200": { - "description": "Retrieved the list of webhooks", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ] - }, - "post": { - "operationId": "webhooks_create", - "summary": "Create a specific webhook in a repository.", - "description": "Create a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequest" - } - } - } - }, - "responses": { - "201": { - "description": "Created the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, - "/webhooks/{owner}/{repo}/{identifier}/": { - "get": { - "operationId": "webhooks_read", - "summary": "Views for working with repository webhooks.", - "description": "Views for working with repository webhooks.", - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ] - }, - "patch": { - "operationId": "webhooks_partial_update", - "summary": "Update a specific webhook in a repository.", - "description": "Update a specific webhook in a repository.", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" - } - } - } - }, - "responses": { - "200": { - "description": "Updated the specified webhook", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RepositoryWebhook" - } - } - } - }, - "400": { - "description": "Request could not be processed (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "404": { - "description": "Owner namespace or repository not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ] - }, - "delete": { - "operationId": "webhooks_delete", - "summary": "Delete a specific webhook in a repository.", - "description": "Delete a specific webhook in a repository.", - "responses": { - "204": { - "description": "Deleted the specified webhook successfully." - }, - "400": { - "description": "The webhook cannot be deleted.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - }, - "422": { - "description": "Missing or invalid parameters (see detail).", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - } - } - } - } - }, - "tags": [ - "webhooks" - ] - }, - "parameters": [ - { - "name": "owner", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "repo", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "identifier", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "servers": [ - { - "url": "https://api.cloudsmith.io" - } - ], - "components": { - "requestBodies": { - "OrganizationPackageLicensePolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" - } - } - } - }, - "GoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoPackageUploadRequest" - } - } - } - }, - "CargoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoUpstreamRequest" - } - } - } - }, - "PythonUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonUpstreamRequest" - } - } - } - }, - "SwiftUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftUpstreamRequest" - } - } - } - }, - "NpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmUpstreamRequest" - } - } - } - }, - "SwiftPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SwiftPackageUploadRequest" - } - } - } - }, - "HexUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexUpstreamRequest" - } - } - } - }, - "RubyPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyPackageUploadRequest" - } - } - } - }, - "CargoPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CargoPackageUploadRequest" - } - } - } - }, - "RubyUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RubyUpstreamRequest" - } - } - } - }, - "RpmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmUpstreamRequest" - } - } - } - }, - "MavenUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenUpstreamRequest" - } - } - } - }, - "OrganizationTeamMembers": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationTeamMembers" - } - } - } - }, - "VagrantPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VagrantPackageUploadRequest" - } - } - } - }, - "GoUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoUpstreamRequest" - } - } - } - }, - "ConanPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ConanPackageUploadRequest" - } - } - } - }, - "RawPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RawPackageUploadRequest" - } - } - } - }, - "HelmUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmUpstreamRequest" - } - } - } - }, - "NugetUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetUpstreamRequest" - } - } - } - }, - "TerraformPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TerraformPackageUploadRequest" - } - } - } - }, - "PackageFileUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageFileUploadRequest" - } - } - } - }, - "PackageDenyPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PackageDenyPolicyRequest" - } - } - } - }, - "ProviderSettingsRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProviderSettingsRequest" - } - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" - } - } - } - }, - "AlpinePackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AlpinePackageUploadRequest" - } - } - } - }, - "CocoapodsPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" - } - } - } - }, - "ComposerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerPackageUploadRequest" - } - } - } - }, - "CondaPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CondaPackageUploadRequest" - } - } - } - }, - "CranPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranPackageUploadRequest" - } - } - } - }, - "DartPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartPackageUploadRequest" - } - } - } - }, - "DebPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebPackageUploadRequest" - } - } - } - }, - "DockerPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerPackageUploadRequest" - } - } - } - }, - "HelmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HelmPackageUploadRequest" - } - } - } - }, - "HexPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HexPackageUploadRequest" - } - } - } - }, - "LuarocksPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LuarocksPackageUploadRequest" - } - } - } - }, - "MavenPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MavenPackageUploadRequest" - } - } - } - }, - "NpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NpmPackageUploadRequest" - } - } - } - }, - "NugetPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NugetPackageUploadRequest" - } - } - } - }, - "P2PackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/P2PackageUploadRequest" - } - } - } - }, - "PythonPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PythonPackageUploadRequest" - } - } - } - }, - "RpmPackageUploadRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RpmPackageUploadRequest" - } - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" - } - } - } - }, - "ComposerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ComposerUpstreamRequest" - } - } - } - }, - "CranUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CranUpstreamRequest" - } - } - } - }, - "DartUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DartUpstreamRequest" - } - } - } - }, - "DebUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DebUpstreamRequest" - } - } - } - }, - "DockerUpstreamRequest": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DockerUpstreamRequest" - } - } - } - } - }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "name": "X-Api-Key", - "in": "header" - }, - "basic": { - "type": "http", - "scheme": "basic" - } - }, - "schemas": { - "ErrorDetail": { - "required": [ - "detail" - ], - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "An extended message for the response.", - "type": "string", - "minLength": 1 - }, - "fields": { - "title": "Fields", - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - } - }, - "GeoIpLocation": { - "required": [ - "city", - "continent", - "country", - "postal_code" - ], - "type": "object", - "properties": { - "city": { - "title": "City", - "type": "string", - "minLength": 1, - "nullable": true - }, - "continent": { - "title": "Continent", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country": { - "title": "Country", - "type": "string", - "minLength": 1, - "nullable": true - }, - "country_code": { - "title": "Country code", - "type": "string", - "readOnly": true - }, - "latitude": { - "title": "Latitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "longitude": { - "title": "Longitude", - "type": "string", - "format": "decimal", - "nullable": true - }, - "postal_code": { - "title": "Postal code", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "NamespaceAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm", - "target", - "target_kind" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "target_kind": { - "title": "Target kind", - "type": "string", - "minLength": 1 - }, - "target_slug_perm": { - "title": "Target slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 24, - "nullable": true - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "RepositoryAuditLog": { - "required": [ - "actor", - "actor_ip_address", - "actor_location", - "actor_slug_perm", - "context", - "event", - "event_at", - "object", - "object_kind", - "object_slug_perm" - ], - "type": "object", - "properties": { - "actor": { - "title": "Actor", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_ip_address": { - "title": "Actor ip address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_kind": { - "title": "Actor kind", - "type": "string", - "readOnly": true - }, - "actor_location": { - "$ref": "#/components/schemas/GeoIpLocation" - }, - "actor_slug_perm": { - "title": "Actor slug perm", - "type": "string", - "minLength": 1, - "nullable": true - }, - "actor_url": { - "title": "Actor url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "context": { - "title": "Context", - "type": "string", - "minLength": 1 - }, - "event": { - "title": "Event", - "type": "string", - "minLength": 1 - }, - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time" - }, - "object": { - "title": "Object", - "type": "string", - "minLength": 1 - }, - "object_kind": { - "title": "Object kind", - "type": "string", - "minLength": 1 - }, - "object_slug_perm": { - "title": "Object slug perm", - "type": "string", - "minLength": 1 - }, - "uuid": { - "title": "Uuid", - "type": "string", - "format": "uuid", - "readOnly": true - } - } - }, - "PackageVersionBadge": { - "type": "object", - "properties": {} - }, - "DistributionVersion": { - "description": "A list of the versions for this distribution", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The textual name for this version.", - "type": "string", - "maxLength": 64 - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this version", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "DistributionFull": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "versions": { - "description": "A list of the versions for this distribution", - "type": "array", - "items": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "readOnly": true - } - } - }, - "Eula": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "maxLength": 16, - "nullable": true - }, - "number": { - "title": "Number", - "description": "A sequential identifier that increments by one for each new commit in a repository.", - "type": "integer", - "maximum": 2147483647, - "minimum": 0, - "nullable": true - } - }, - "nullable": true - }, - "RepositoryToken": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryTokenRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSyncRequest": { - "required": [ - "source" - ], - "type": "object", - "properties": { - "source": { - "title": "Source", - "description": "The source repository slug (in the same owner namespace).", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenSync": { - "type": "object", - "properties": { - "tokens": { - "description": "The entitlements that have been synchronised.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryToken" - }, - "readOnly": true - } - } - }, - "RepositoryTokenRequestPatch": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenAction": { - "type": "object", - "properties": {} - }, - "RepositoryTokenRefreshRequest": { - "type": "object", - "properties": { - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryTokenRefresh": { - "type": "object", - "properties": { - "clients": { - "title": "Clients", - "type": "integer", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default token for this repository.", - "type": "boolean", - "readOnly": true - }, - "disable_url": { - "title": "Disable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "enable_url": { - "title": "Enable url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "eula_accepted": { - "$ref": "#/components/schemas/Eula" - }, - "eula_accepted_at": { - "title": "Eula accepted at", - "description": "The datetime the EULA was accepted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "eula_accepted_from": { - "title": "Eula accepted from", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "eula_required": { - "title": "Eula required", - "description": "If checked, a EULA acceptance is required for this token.", - "type": "boolean" - }, - "has_limits": { - "title": "Has limits", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Token Active", - "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", - "type": "boolean" - }, - "is_limited": { - "title": "Is limited", - "type": "boolean", - "readOnly": true - }, - "limit_bandwidth": { - "title": "Limit bandwidth", - "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_bandwidth_unit": { - "title": "Limit bandwidth unit", - "type": "string", - "enum": [ - "Byte", - "Kilobyte", - "Megabyte", - "Gigabyte", - "Terabyte", - "Petabyte", - "Exabyte", - "Zettabyte", - "Yottabyte" - ], - "default": "Byte", - "nullable": true - }, - "limit_date_range_from": { - "title": "Limit date range from", - "description": "The starting date/time the token is allowed to be used from.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_date_range_to": { - "title": "Limit date range to", - "description": "The ending date/time the token is allowed to be used until.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "limit_num_clients": { - "title": "Limit num clients", - "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_num_downloads": { - "title": "Limit num downloads", - "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "nullable": true - }, - "limit_package_query": { - "title": "Limit package query", - "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "limit_path_query": { - "title": "Limit path query", - "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "metadata": { - "title": "Metadata", - "type": "object", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "refresh_url": { - "title": "Refresh url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "reset_url": { - "title": "Reset url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "scheduled_reset_at": { - "title": "Scheduled reset at", - "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", - "type": "string", - "format": "date-time", - "nullable": true - }, - "scheduled_reset_period": { - "title": "Scheduled reset period", - "type": "string", - "enum": [ - "Never Reset", - "Daily", - "Weekly", - "Fortnightly", - "Monthly", - "Bi-Monthly", - "Quarterly", - "Every 6 months", - "Annual" - ], - "default": "Never Reset", - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "token": { - "title": "Token", - "type": "string", - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "description": "The datetime the token was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "usage": { - "title": "Usage", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageFileUploadRequest": { - "required": [ - "filename" - ], - "type": "object", - "properties": { - "filename": { - "title": "Filename", - "description": "Filename for the package file upload.", - "type": "string", - "minLength": 1 - }, - "md5_checksum": { - "title": "Md5 checksum", - "description": "MD5 checksum for a POST-based package file upload.", - "type": "string", - "maxLength": 32, - "minLength": 32 - }, - "method": { - "title": "Method", - "description": "The method to use for package file upload.", - "type": "string", - "enum": [ - "put_parts", - "put", - "post", - "presigned", - "unsigned_put" - ], - "default": "post" - }, - "sha256_checksum": { - "title": "Sha256 checksum", - "description": "SHA256 checksum for a PUT-based package file upload.", - "type": "string", - "maxLength": 64, - "minLength": 64 - } - } - }, - "PackageFileUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use when creating packages", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_fields": { - "title": "Upload fields", - "description": "The dictionary of fields that must be sent with POST uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_headers": { - "title": "Upload headers", - "description": "The dictionary of headers that must be sent with uploads", - "type": "object", - "readOnly": true, - "nullable": true - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step POST or PUT upload", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step POST or PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "PackageFilePartsUpload": { - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "description": "The identifier for the file to use uploading parts.", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - }, - "upload_querystring": { - "title": "Upload querystring", - "description": "The querystring to use for the next-step PUT upload.", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "upload_url": { - "title": "Upload url", - "description": "The URL to use for the next-step PUT upload", - "type": "string", - "format": "uri", - "readOnly": true, - "minLength": 1 - } - } - }, - "Distribution": { - "description": "The distributions supported by this package format", - "required": [ - "name" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifier for this distribution", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "variants": { - "title": "Variants", - "type": "string", - "maxLength": 128, - "nullable": true - } - }, - "nullable": true - }, - "FormatSupportUpstream": { - "description": "The upstream support for the package format", - "required": [ - "auth_modes", - "caching", - "indexing", - "proxying" - ], - "type": "object", - "properties": { - "auth_modes": { - "description": "The authentication modes supported by the upstream format", - "type": "array", - "items": { - "type": "string", - "enum": [ - "Username and Password", - "Token", - "Certificate and Key" - ], - "default": "Username and Password" - } - }, - "caching": { - "title": "Caching", - "description": "If true the upstream format supports caching", - "type": "boolean" - }, - "indexing": { - "title": "Indexing", - "description": "If true the upstream format supports indexing", - "type": "boolean" - }, - "indexing_behavior": { - "title": "Indexing behavior", - "description": "The behavior of the upstream when indexing", - "type": "string", - "enum": [ - "Unsupported", - "Ahead-of-time (static) indexing", - "Just-in-time (dynamic) indexing" - ], - "default": "Unsupported" - }, - "proxying": { - "title": "Proxying", - "description": "If true the upstream format supports proxying", - "type": "boolean" - }, - "signature_verification": { - "title": "Signature verification", - "description": "The signature verification supported by the upstream format", - "type": "string", - "enum": [ - "Unsupported", - "Repository Metadata", - "Packages", - "Repository Metadata and Packages" - ], - "default": "Unsupported" - } - } - }, - "FormatSupport": { - "description": "A set of what the package format supports", - "required": [ - "dependencies", - "distributions", - "file_lists", - "metadata", - "upstreams", - "versioning" - ], - "type": "object", - "properties": { - "dependencies": { - "title": "Dependencies", - "description": "If true the package format supports dependencies", - "type": "boolean" - }, - "distributions": { - "title": "Distributions", - "description": "If true the package format supports distributions", - "type": "boolean" - }, - "file_lists": { - "title": "File lists", - "description": "If true the package format supports file lists", - "type": "boolean" - }, - "metadata": { - "title": "Metadata", - "description": "If true the package format supports metadata", - "type": "boolean" - }, - "upstreams": { - "$ref": "#/components/schemas/FormatSupportUpstream" - }, - "versioning": { - "title": "Versioning", - "description": "If true the package format supports versioning", - "type": "boolean" - } - } - }, - "Format": { - "required": [ - "description", - "extensions", - "name", - "premium", - "slug", - "supports" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "Description of the package format", - "type": "string", - "minLength": 1 - }, - "distributions": { - "description": "The distributions supported by this package format", - "type": "array", - "items": { - "$ref": "#/components/schemas/Distribution" - }, - "nullable": true - }, - "extensions": { - "description": "A non-exhaustive list of extensions supported", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "name": { - "title": "Name", - "description": "Name for the package format", - "type": "string", - "minLength": 1 - }, - "premium": { - "title": "Premium", - "description": "If true the package format is a premium-only feature", - "type": "boolean" - }, - "premium_plan_id": { - "title": "Premium plan id", - "description": "The minimum plan id required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "premium_plan_name": { - "title": "Premium plan name", - "description": "The minimum plan name required for this package format", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug": { - "title": "Slug", - "description": "Slug for the package format", - "type": "string", - "minLength": 1 - }, - "supports": { - "$ref": "#/components/schemas/FormatSupport" - } - } - }, - "CommonBandwidthMetricsValue": { - "description": "Average bandwidth usage in the specified period, e.g. a day", - "required": [ - "display", - "value" - ], - "type": "object", - "properties": { - "display": { - "title": "Display", - "description": "Bandwidth usage value", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "units": { - "title": "Units", - "description": "Unit of measurement e.g. bytes", - "type": "string", - "default": "bytes", - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "Human readable version of display value", - "type": "integer" - } - } - }, - "CommonBandwidthMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonBandwidthMetricsValue" - } - } - }, - "CommonDownloadsMetricsValue": { - "required": [ - "value" - ], - "type": "object", - "properties": { - "value": { - "title": "Value", - "type": "integer" - } - } - }, - "CommonDownloadsMetrics": { - "required": [ - "average", - "highest", - "lowest", - "total" - ], - "type": "object", - "properties": { - "average": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "highest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "lowest": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - }, - "total": { - "$ref": "#/components/schemas/CommonDownloadsMetricsValue" - } - } - }, - "CommonMetrics": { - "required": [ - "bandwidth", - "downloads" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "Number of packages with at least 1 download", - "type": "integer", - "default": 0 - }, - "bandwidth": { - "$ref": "#/components/schemas/CommonBandwidthMetrics" - }, - "downloads": { - "$ref": "#/components/schemas/CommonDownloadsMetrics" - }, - "inactive": { - "title": "Inactive", - "description": "Packages with zero downloads", - "type": "integer", - "default": 0 - }, - "total": { - "title": "Total", - "description": "Total number of packages in repo", - "type": "integer", - "default": 0 - } - } - }, - "EntitlementUsageMetrics": { - "required": [ - "tokens" - ], - "type": "object", - "properties": { - "tokens": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "PackageUsageMetrics": { - "required": [ - "packages" - ], - "type": "object", - "properties": { - "packages": { - "$ref": "#/components/schemas/CommonMetrics" - } - } - }, - "Namespace": { - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "type_name": { - "title": "Type name", - "type": "string", - "readOnly": true - } - } - }, - "Organization": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "country": { - "title": "Country", - "type": "string", - "readOnly": true, - "maxLength": 32, - "minLength": 1, - "nullable": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "location": { - "title": "Location", - "description": "The city/town/area your organization is based in.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "A short public descriptive for your organization.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "PackageDenyPolicy": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Block downloads" - ], - "readOnly": true, - "default": "Block downloads" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "In Progress" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "PackageDenyPolicyRequest": { - "required": [ - "package_query_string" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "PackageDenyPolicyRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "nullable": true - }, - "enabled": { - "title": "Enabled", - "description": "Whether this rule is enabled or disabled.", - "type": "boolean" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "nullable": true - }, - "package_query_string": { - "title": "Package query string", - "description": "Packages that match this query will trigger this deny rule.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamInvite": { - "required": [ - "team" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user in the team.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "OrganizationInvite": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "OrganizationInviteRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationInviteUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteUpdate": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - } - } - }, - "OrganizationInviteExtend": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "The email of the user to be invited.", - "type": "string", - "format": "email", - "minLength": 1 - }, - "expires_at": { - "title": "Expires at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "inviter": { - "title": "Inviter", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "inviter_url": { - "title": "Inviter url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "org": { - "title": "Org", - "type": "string", - "readOnly": true - }, - "role": { - "title": "Role", - "description": "The role to be assigned to the invited user.", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm of the invite to be extended.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamInvite" - } - }, - "user": { - "title": "User", - "description": "The slug of the user to be invited.", - "type": "string", - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - } - } - }, - "PackageVulnerability": { - "required": [ - "identifier" - ], - "type": "object", - "properties": { - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "NestedLicensePolicy": { - "required": [ - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageLicensePolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "OrganizationPackageLicensePolicy": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageLicensePolicyRequest": { - "required": [ - "name", - "spdx_identifiers" - ], - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "PackageLicensePolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedLicensePolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageLicensePolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageLicensePolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_licenses": { - "title": "Allow unknown licenses", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "spdx_identifiers": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationMembership": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "is_active": { - "title": "Is active", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipRequestPatch": { - "type": "object", - "properties": {} - }, - "OrganizationMembershipRoleUpdateRequestPatch": { - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - } - } - }, - "OrganizationMembershipRoleUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "readOnly": true, - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdateRequestPatch": { - "type": "object", - "properties": { - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "OrganizationMembershipVisibilityUpdate": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "has_two_factor": { - "title": "Has two factor", - "type": "boolean", - "readOnly": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "last_login_at": { - "title": "Last login at", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "last_login_method": { - "title": "Last login method", - "type": "string", - "enum": [ - "Unknown", - "Password", - "Social", - "SAML" - ], - "readOnly": true, - "default": "Unknown" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Owner", - "Manager", - "Member", - "Collaborator" - ], - "readOnly": true, - "default": "Owner" - }, - "user": { - "title": "User", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_id": { - "title": "User id", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_name": { - "title": "User name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "user_url": { - "title": "User url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Public", - "Private" - ], - "default": "Public" - } - } - }, - "ProviderSettings": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - }, - "slug": { - "title": "Slug", - "description": "The slug of the provider settings", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "description": "The unique, immutable identifier of the provider settings.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - } - } - }, - "ProviderSettingsRequest": { - "required": [ - "claims", - "enabled", - "name", - "provider_url", - "service_accounts" - ], - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "ProviderSettingsRequestPatch": { - "type": "object", - "properties": { - "claims": { - "title": "Claims", - "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", - "type": "object" - }, - "enabled": { - "title": "Enabled", - "description": "Whether the provider settings should be used for incoming OIDC requests.", - "type": "boolean" - }, - "name": { - "title": "Name", - "description": "The name of the provider settings are being configured for", - "type": "string", - "minLength": 1 - }, - "provider_url": { - "title": "Provider url", - "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "service_accounts": { - "description": "The service accounts associated with these provider settings", - "type": "array", - "items": { - "description": "The service accounts associated with these provider settings", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "OrganizationSAMLAuth": { - "required": [ - "saml_auth_enabled", - "saml_auth_enforced" - ], - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationSAMLAuthRequestPatch": { - "type": "object", - "properties": { - "saml_auth_enabled": { - "title": "Saml auth enabled", - "type": "boolean" - }, - "saml_auth_enforced": { - "title": "Saml auth enforced", - "type": "boolean" - }, - "saml_metadata_inline": { - "title": "Inline SAML metadata", - "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", - "type": "string", - "maxLength": 32000 - }, - "saml_metadata_url": { - "title": "Saml metadata url", - "description": "If configured, SAML metadata be retrieved from a remote URL.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - } - } - }, - "OrganizationGroupSync": { - "required": [ - "idp_key", - "idp_value", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncRequest": { - "required": [ - "idp_key", - "idp_value", - "organization", - "team" - ], - "type": "object", - "properties": { - "idp_key": { - "title": "Idp key", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "idp_value": { - "title": "Idp value", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "organization": { - "title": "Organization", - "type": "string" - }, - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "team": { - "title": "Team", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - } - } - }, - "OrganizationGroupSyncStatus": { - "type": "object", - "properties": { - "saml_group_sync_status": { - "title": "Saml group sync status", - "type": "boolean", - "readOnly": true - } - } - }, - "ServiceTeams": { - "required": [ - "slug" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "description": "The team role associated with the service", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Manager" - }, - "slug": { - "title": "Slug", - "description": "The teams associated with the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "Service": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "key": { - "title": "Key", - "description": "The API key of the service", - "type": "string", - "readOnly": true - }, - "key_expires_at": { - "title": "Key expires at", - "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "slug": { - "title": "Slug", - "description": "The slug of the service", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "ServiceRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the service", - "type": "string", - "maxLength": 1024, - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of the service", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "role": { - "title": "Role", - "description": "The role of the service.", - "type": "string", - "enum": [ - "Manager", - "Member" - ], - "default": "Member" - }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ServiceTeams" - } - } - } - }, - "OrganizationTeam": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamRequestPatch": { - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 140, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "visibility": { - "title": "Visibility", - "type": "string", - "enum": [ - "Visible", - "Hidden" - ], - "default": "Visible" - } - } - }, - "OrganizationTeamMembership": { - "description": "The team members", - "required": [ - "role", - "user" - ], - "type": "object", - "properties": { - "role": { - "title": "Role", - "type": "string", - "enum": [ - "Manager", - "Member" - ] - }, - "user": { - "title": "User", - "type": "string", - "minLength": 1 - } - } - }, - "OrganizationTeamMembers": { - "required": [ - "members" - ], - "type": "object", - "properties": { - "members": { - "description": "The team members", - "type": "array", - "items": { - "$ref": "#/components/schemas/OrganizationTeamMembership" - } - } - } - }, - "NestedVulnerabilityPolicy": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean", - "readOnly": true - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NestedVulnerabilityScanResults": { - "required": [ - "identifier", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyViolationLog": { - "required": [ - "package", - "policy", - "reasons", - "vulnerability_scan_results" - ], - "type": "object", - "properties": { - "event_at": { - "title": "Event at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "reasons": { - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - }, - "vulnerability_scan_results": { - "$ref": "#/components/schemas/NestedVulnerabilityScanResults" - } - } - }, - "OrganizationPackageVulnerabilityPolicy": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - } - } - }, - "OrganizationPackageVulnerabilityPolicyRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequest": { - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "evaluation_count": { - "title": "Evaluation count", - "type": "integer", - "readOnly": true - }, - "policy": { - "$ref": "#/components/schemas/NestedVulnerabilityPolicy" - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "status": { - "title": "Status", - "type": "string", - "enum": [ - "Pending", - "In Progress", - "Complete", - "Cancelled", - "Errored" - ], - "readOnly": true, - "default": "Pending" - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "violation_count": { - "title": "Violation count", - "type": "integer", - "readOnly": true - } - } - }, - "PackageVulnerabilityPolicyEvaluationRequestRequest": { - "type": "object", - "properties": {} - }, - "OrganizationPackageVulnerabilityPolicyRequestPatch": { - "type": "object", - "properties": { - "allow_unknown_severity": { - "title": "Allow unknown severity", - "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", - "type": "boolean" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 250, - "minLength": 1, - "nullable": true - }, - "min_severity": { - "title": "Min severity", - "type": "string", - "enum": [ - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Critical" - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 100, - "minLength": 1 - }, - "on_violation_quarantine": { - "title": "On violation quarantine", - "type": "boolean" - }, - "package_query_string": { - "title": "Package query string", - "type": "string", - "minLength": 1, - "nullable": true - } - } - }, - "Architecture": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "description": { - "title": "Description", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "PackageFile": { - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true, - "nullable": true - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_primary": { - "title": "Is primary", - "type": "boolean", - "readOnly": true - }, - "is_synchronised": { - "title": "Is synchronised", - "type": "boolean", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the file.", - "type": "integer", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "tag": { - "title": "Tag", - "description": "Freeform descriptor that describes what the file is.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "Tags": { - "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", - "type": "object", - "properties": {} - }, - "Package": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageGroup": { - "required": [ - "count", - "last_push", - "num_downloads", - "size" - ], - "type": "object", - "properties": { - "backend_kind": { - "title": "Backend kind", - "type": "integer" - }, - "count": { - "title": "Count", - "type": "integer", - "nullable": true - }, - "last_push": { - "title": "Last push", - "type": "string", - "format": "date-time", - "nullable": true - }, - "name": { - "title": "Name", - "type": "string", - "minLength": 1 - }, - "num_downloads": { - "title": "Num downloads", - "type": "integer", - "nullable": true - }, - "size": { - "title": "Size", - "type": "integer", - "nullable": true - } - } - }, - "AlpinePackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "AlpinePackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CargoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CargoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CocoapodsPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CocoapodsPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ComposerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ComposerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "ConanPackageUploadRequest": { - "required": [ - "info_file", - "manifest_file", - "metadata_file", - "package_file" - ], - "type": "object", - "properties": { - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "info_file": { - "title": "Info file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "manifest_file": { - "title": "Manifest file", - "description": "The info file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "metadata_file": { - "title": "Metadata file", - "description": "The conan file is an python file containing the package metadata.", - "type": "string", - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "ConanPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "conan_channel": { - "title": "Conan channel", - "description": "Conan channel.", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "conan_prefix": { - "title": "Conan prefix", - "description": "Conan prefix (User).", - "type": "string", - "maxLength": 128, - "minLength": 1, - "nullable": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CondaPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CondaPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "CranPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "architecture": { - "title": "Architecture", - "description": "Binary package uploads for macOS should specify the architecture they were built for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "CranPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "r_version": { - "title": "R version", - "description": "Binary package uploads should specify the version of R they were built for.", - "type": "string", - "maxLength": 16, - "minLength": 1, - "nullable": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DartPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DartPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DebPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "changes_file": { - "title": "Changes file", - "description": "The changes archive containing the changes made to the source and debian packaging files", - "type": "string", - "minLength": 1, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", - "type": "string", - "pattern": "^[-_.\\w]+$", - "default": "main", - "maxLength": 64, - "minLength": 1 - }, - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sources_file": { - "title": "Sources file", - "description": "The sources archive containing the source code for the binary", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DebPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "DockerPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "DockerPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "GoPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "GoPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HelmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provenance_file": { - "title": "Provenance file", - "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HelmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "HexPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "HexPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "LuarocksPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "LuarocksPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "MavenPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "extra_files": { - "description": "Extra files to include in the package. This can be a single file or multiple files.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "ivy_file": { - "title": "Ivy file", - "description": "The ivy file is an XML file describing the dependencies of the project.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "javadoc_file": { - "title": "Javadoc file", - "description": "Adds bundled Java documentation to the Maven package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "pom_file": { - "title": "Pom file", - "description": "The POM file is an XML file containing the Maven coordinates.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "sources_file": { - "title": "Sources file", - "description": "Adds bundled Java source code to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "tests_file": { - "title": "Tests file", - "description": "Adds bundled Java tests to the Maven package.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "MavenPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "artifact_id": { - "title": "Artifact id", - "description": "The ID of the artifact.", - "type": "string", - "minLength": 1, - "nullable": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "group_id": { - "title": "Group id", - "description": "Artifact's group ID.", - "type": "string", - "maxLength": 2083, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "packaging": { - "title": "Packaging", - "description": "Artifact's Maven packaging type.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "sbt_version": { - "title": "Sbt version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "scala_version": { - "title": "Scala version", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NpmPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "npm_dist_tag": { - "title": "Npm dist tag", - "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", - "type": "string", - "default": "latest", - "maxLength": 255, - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "NugetPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "symbols_file": { - "title": "Symbols file", - "description": "Uploads a symbols file as a separate package", - "type": "string", - "minLength": 1, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "NugetPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "P2PackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "P2PackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PythonPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "PythonPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RawPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "content_type": { - "title": "Content/Media Type", - "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - } - } - }, - "RawPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "maxLength": 12288, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "maxLength": 255, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RpmPackageUploadRequest": { - "required": [ - "distribution", - "package_file" - ], - "type": "object", - "properties": { - "distribution": { - "title": "Distribution", - "description": "The distribution to store the package for.", - "type": "string", - "minLength": 1 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RpmPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "RubyPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "RubyPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "SwiftPackageUploadRequest": { - "required": [ - "name", - "package_file", - "scope", - "version" - ], - "type": "object", - "properties": { - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "SwiftPackageUpload": { - "required": [ - "name", - "scope", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "author_name": { - "title": "Author name", - "description": "The name of the author of the package.", - "type": "string", - "minLength": 1 - }, - "author_org": { - "title": "Author org", - "description": "The organization of the author.", - "type": "string", - "minLength": 1 - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "license_url": { - "title": "License url", - "description": "The license URL of this package.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "readme_url": { - "title": "Readme url", - "description": "The URL of the readme for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "description": "The URL of the SCM repository for the package.", - "type": "string", - "format": "uri", - "minLength": 1 - }, - "scope": { - "title": "Scope", - "description": "A scope provides a namespace for related packages within the package registry.", - "type": "string", - "maxLength": 39, - "minLength": 1 - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "TerraformPackageUploadRequest": { - "required": [ - "package_file" - ], - "type": "object", - "properties": { - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - } - } - }, - "TerraformPackageUpload": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VagrantPackageUploadRequest": { - "required": [ - "name", - "package_file", - "provider", - "version" - ], - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "package_file": { - "title": "Package file", - "description": "The primary file for the package.", - "type": "string", - "minLength": 1 - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - }, - "tags": { - "title": "Tags", - "description": "A comma-separated values list of tags to add to the package.", - "type": "string", - "maxLength": 1024, - "minLength": 1, - "nullable": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - } - } - }, - "VagrantPackageUpload": { - "required": [ - "name", - "provider", - "version" - ], - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "maxLength": 200 - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "provider": { - "title": "Provider", - "description": "The virtual machine provider for the box.", - "type": "string", - "minLength": 1 - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "maxLength": 128 - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageCopyRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - }, - "republish": { - "title": "Republish", - "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", - "type": "boolean" - } - } - }, - "PackageCopy": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be copied to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageDependency": { - "type": "object", - "properties": { - "dep_type": { - "title": "Dep type", - "type": "string", - "enum": [ - "Depends", - "Pre-Depends", - "Recommends", - "Suggests", - "Enhances", - "Replaces", - "Breaks", - "Built-Using", - "Build-Depends", - "Build-Depends-Indep", - "Build-Conflicts", - "Build-Conflicts-Indep", - "Conflicts", - "Provides", - "Obsoletes", - "Requires", - "Runtime", - "Development", - "Compile", - "Provided", - "Test", - "System", - "Import", - "Excluded", - "Build-Requires", - "Python-Requires" - ], - "readOnly": true, - "default": "Depends" - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "maxLength": 255, - "minLength": 1 - }, - "operator": { - "title": "Operator", - "type": "string", - "enum": [ - "=", - "!=", - "<", - "<<", - "<=", - ">", - ">>", - ">=", - "~=", - "~>", - "matches" - ], - "readOnly": true, - "default": "=", - "nullable": true - }, - "version": { - "title": "Version", - "type": "string", - "readOnly": true, - "maxLength": 128, - "minLength": 1, - "nullable": true - } - } - }, - "PackageDependencies": { - "required": [ - "dependencies" - ], - "type": "object", - "properties": { - "dependencies": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageDependency" - } - } - } - }, - "PackageMoveRequest": { - "required": [ - "destination" - ], - "type": "object", - "properties": { - "destination": { - "title": "Destination", - "type": "string", - "minLength": 1 - } - } - }, - "PackageMove": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "description": "The repository the package will be moved to.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageQuarantineRequest": { - "type": "object", - "properties": { - "release": { - "title": "Release", - "description": "If true, the package is released from quarantine.", - "type": "boolean" - }, - "restore": { - "title": "Restore", - "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", - "type": "boolean" - } - } - }, - "PackageQuarantine": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageResync": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags": { - "$ref": "#/components/schemas/Tags" - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "PackageStatus": { - "type": "object", - "properties": { - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - } - } - }, - "PackageTagRequest": { - "type": "object", - "properties": { - "action": { - "title": "Action", - "type": "string", - "enum": [ - "Add", - "Clear", - "Replace", - "Remove" - ], - "default": "Add", - "nullable": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "tags": { - "description": "A list of tags to apply the action to. Not required for clears.", - "type": "array", - "items": { - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "default": [], - "nullable": true - } - } - }, - "PackageTag": { - "type": "object", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Architecture" - }, - "readOnly": true - }, - "cdn_url": { - "title": "Cdn url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "checksum_md5": { - "title": "Checksum md5", - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "title": "Checksum sha1", - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "title": "Checksum sha256", - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "title": "Checksum sha512", - "type": "string", - "readOnly": true - }, - "dependencies_checksum_md5": { - "title": "Dependencies checksum md5", - "description": "A checksum of all of the package's dependencies.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "dependencies_url": { - "title": "Dependencies url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "description": { - "title": "Description", - "description": "A textual description of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "display_name": { - "title": "Display name", - "type": "string", - "readOnly": true - }, - "distro": { - "$ref": "#/components/schemas/Distribution" - }, - "distro_version": { - "$ref": "#/components/schemas/DistributionVersion" - }, - "downloads": { - "title": "Downloads", - "type": "integer", - "readOnly": true - }, - "epoch": { - "title": "Epoch", - "description": "The epoch of the package version (if any).", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "extended_metadata": { - "title": "Extended metadata", - "description": "The extended metadata for the package, if any.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "extension": { - "title": "Extension", - "type": "string", - "readOnly": true - }, - "filename": { - "title": "Filename", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PackageFile" - }, - "readOnly": true - }, - "format": { - "title": "Format", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "format_url": { - "title": "Format url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "freeable_storage": { - "title": "Freeable storage", - "description": "Amount of storage that will be freed if this package is deleted", - "type": "integer", - "readOnly": true - }, - "fully_qualified_name": { - "title": "Fully qualified name", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "identifier_perm": { - "title": "Identifier perm", - "description": "Unique and permanent identifier for the package.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "identifiers": { - "title": "Identifiers", - "description": "Return a map of identifier field names and their values.", - "type": "object", - "additionalProperties": { - "type": "string", - "nullable": true - }, - "readOnly": true - }, - "indexed": { - "title": "Indexed", - "type": "boolean", - "readOnly": true - }, - "is_cancellable": { - "title": "Is cancellable", - "type": "boolean", - "readOnly": true - }, - "is_copyable": { - "title": "Is copyable", - "type": "boolean", - "readOnly": true - }, - "is_deleteable": { - "title": "Is deleteable", - "type": "boolean", - "readOnly": true - }, - "is_downloadable": { - "title": "Is downloadable", - "type": "boolean", - "readOnly": true - }, - "is_immutable": { - "title": "Is immutable", - "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", - "type": "boolean", - "default": false - }, - "is_moveable": { - "title": "Is moveable", - "type": "boolean", - "readOnly": true - }, - "is_quarantinable": { - "title": "Is quarantinable", - "type": "boolean", - "readOnly": true - }, - "is_quarantined": { - "title": "Is quarantined", - "type": "boolean", - "readOnly": true - }, - "is_resyncable": { - "title": "Is resyncable", - "type": "boolean", - "readOnly": true - }, - "is_security_scannable": { - "title": "Is security scannable", - "type": "boolean", - "readOnly": true - }, - "is_sync_awaiting": { - "title": "Is sync awaiting", - "type": "boolean", - "readOnly": true - }, - "is_sync_completed": { - "title": "Is sync completed", - "type": "boolean", - "readOnly": true - }, - "is_sync_failed": { - "title": "Is sync failed", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_flight": { - "title": "Is sync in flight", - "type": "boolean", - "readOnly": true - }, - "is_sync_in_progress": { - "title": "Is sync in progress", - "type": "boolean", - "readOnly": true - }, - "license": { - "title": "License", - "description": "The license of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The name of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "namespace": { - "title": "Namespace", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "namespace_url": { - "title": "Namespace url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "num_files": { - "title": "Num files", - "type": "integer", - "readOnly": true - }, - "origin_repository": { - "title": "Origin repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "origin_repository_url": { - "title": "Origin repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "package_type": { - "title": "Package type", - "description": "The type of package contents.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 9 - ], - "readOnly": true - }, - "policy_violated": { - "title": "Policy violated", - "description": "Whether or not the package has violated any policy.", - "type": "boolean", - "readOnly": true - }, - "release": { - "title": "Release", - "description": "The release of the package version (if any).", - "type": "string", - "readOnly": true, - "nullable": true - }, - "repository": { - "title": "Repository", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "repository_url": { - "title": "Repository url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "security_scan_completed_at": { - "title": "Security scan completed at", - "description": "The datetime the security scanning was completed.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_started_at": { - "title": "Security scan started at", - "description": "The datetime the security scanning was started.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "security_scan_status": { - "title": "Security scan status", - "type": "string", - "enum": [ - "Awaiting Security Scan", - "Security Scanning in Progress", - "Scan Detected Vulnerabilities", - "Scan Detected No Vulnerabilities", - "Security Scanning Disabled", - "Security Scanning Failed", - "Security Scanning Skipped", - "Security Scanning Not Supported" - ], - "readOnly": true, - "default": "Awaiting Security Scan", - "nullable": true - }, - "security_scan_status_updated_at": { - "title": "Security scan status updated at", - "description": "The datetime the security scanning status was updated.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "self_html_url": { - "title": "Self html url", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "signature_url": { - "title": "Signature url", - "type": "string", - "readOnly": true, - "nullable": true - }, - "size": { - "title": "Size", - "description": "The calculated size of the package.", - "type": "integer", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The public unique identifier for the package.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "stage": { - "title": "Stage", - "description": "The synchronisation (in progress) stage of the package.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12 - ], - "readOnly": true - }, - "stage_str": { - "title": "Stage str", - "type": "string", - "readOnly": true - }, - "stage_updated_at": { - "title": "Stage updated at", - "description": "The datetime the package stage was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status": { - "title": "Status", - "description": "The synchronisation status of the package.", - "type": "integer", - "enum": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7 - ], - "readOnly": true - }, - "status_reason": { - "title": "Status reason", - "description": "A textual description for the synchronous status reason (if any", - "type": "string", - "readOnly": true, - "nullable": true - }, - "status_str": { - "title": "Status str", - "type": "string", - "readOnly": true - }, - "status_updated_at": { - "title": "Status updated at", - "description": "The datetime the package status was updated at.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "status_url": { - "title": "Status url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "subtype": { - "title": "Subtype", - "type": "string", - "readOnly": true - }, - "summary": { - "title": "Summary", - "description": "A one-liner synopsis of this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "sync_finished_at": { - "title": "Sync finished at", - "description": "The datetime the package sync was finished at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "sync_progress": { - "title": "Sync progress", - "description": "Synchronisation progress (from 0-100)", - "type": "integer", - "readOnly": true - }, - "tags_immutable": { - "$ref": "#/components/schemas/Tags" - }, - "type_display": { - "title": "Type display", - "type": "string", - "readOnly": true - }, - "uploaded_at": { - "title": "Uploaded at", - "description": "The date this package was uploaded.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "uploader": { - "title": "Uploader", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "uploader_url": { - "title": "Uploader url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "version": { - "title": "Version", - "description": "The raw version for this package.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "version_orig": { - "title": "Version orig", - "type": "string", - "readOnly": true - }, - "vulnerability_scan_results_url": { - "title": "Vulnerability scan results url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "Usage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageUsage": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage": { - "title": "Percentage", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "HistoryFieldset": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/Usage" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsage" - }, - "uploaded": { - "$ref": "#/components/schemas/Usage" - } - } - }, - "UsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageUsageRaw": { - "type": "object", - "properties": { - "limit": { - "title": "Limit", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage": { - "title": "Percentage", - "type": "string", - "format": "decimal" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "HistoryFieldsetRaw": { - "required": [ - "downloaded", - "storage_used", - "uploaded" - ], - "type": "object", - "properties": { - "downloaded": { - "$ref": "#/components/schemas/UsageRaw" - }, - "storage_used": { - "$ref": "#/components/schemas/StorageUsageRaw" - }, - "uploaded": { - "$ref": "#/components/schemas/UsageRaw" - } - } - }, - "History": { - "required": [ - "display", - "end", - "plan", - "raw", - "start" - ], - "type": "object", - "properties": { - "days": { - "title": "Days", - "type": "integer", - "default": 0 - }, - "display": { - "$ref": "#/components/schemas/HistoryFieldset" - }, - "end": { - "title": "End", - "type": "string", - "format": "date-time" - }, - "plan": { - "title": "Plan", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "raw": { - "$ref": "#/components/schemas/HistoryFieldsetRaw" - }, - "start": { - "title": "Start", - "type": "string", - "format": "date-time" - } - } - }, - "QuotaHistory": { - "required": [ - "history" - ], - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/components/schemas/History" - } - } - } - }, - "AllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "StorageAllocatedLimit": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "peak": { - "title": "Peak", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "maxLength": 10, - "minLength": 1 - }, - "plan_limit": { - "title": "Plan limit", - "type": "string", - "maxLength": 32, - "minLength": 1 - }, - "used": { - "title": "Used", - "type": "string", - "maxLength": 32, - "minLength": 1 - } - } - }, - "UsageLimits": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimit" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimit" - } - } - }, - "AllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "StorageAllocatedLimitRaw": { - "type": "object", - "properties": { - "configured": { - "title": "Configured", - "type": "integer" - }, - "peak": { - "title": "Peak", - "type": "integer" - }, - "percentage_used": { - "title": "Percentage used", - "type": "string", - "format": "decimal" - }, - "plan_limit": { - "title": "Plan limit", - "type": "integer" - }, - "used": { - "title": "Used", - "type": "integer" - } - } - }, - "UsageLimitsRaw": { - "required": [ - "bandwidth", - "storage" - ], - "type": "object", - "properties": { - "bandwidth": { - "$ref": "#/components/schemas/AllocatedLimitRaw" - }, - "storage": { - "$ref": "#/components/schemas/StorageAllocatedLimitRaw" - } - } - }, - "UsageFieldset": { - "required": [ - "display", - "raw" - ], - "type": "object", - "properties": { - "display": { - "$ref": "#/components/schemas/UsageLimits" - }, - "raw": { - "$ref": "#/components/schemas/UsageLimitsRaw" - } - } - }, - "Quota": { - "required": [ - "usage" - ], - "type": "object", - "properties": { - "usage": { - "$ref": "#/components/schemas/UsageFieldset" - } - } - }, - "RateCheck": { - "type": "object", - "properties": { - "interval": { - "title": "Interval", - "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", - "type": "number", - "readOnly": true - }, - "limit": { - "title": "Limit", - "description": "The maximum number of requests that you are permitted to send per hour", - "type": "integer", - "readOnly": true - }, - "remaining": { - "title": "Remaining", - "description": "The number of requests that are remaining in the current rate limit window", - "type": "integer", - "readOnly": true - }, - "reset": { - "title": "Reset", - "description": "The UTC epoch timestamp at which the current rate limit window will reset", - "type": "integer", - "readOnly": true - }, - "reset_iso_8601": { - "title": "Reset iso 8601", - "description": "The ISO 8601 datetime at which the current rate limit window will reset", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "throttled": { - "title": "Throttled", - "description": "If true, throttling is currently being enforced.", - "type": "boolean", - "readOnly": true - } - } - }, - "ResourcesRateCheck": { - "type": "object", - "properties": { - "resources": { - "title": "Resources", - "description": "Rate limit values per resource", - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/RateCheck" - }, - "readOnly": true - } - } - }, - "RepositoryEcdsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by ECDSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryGpgKey": { - "required": [ - "comment" - ], - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "comment": { - "title": "Comment", - "type": "string", - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by GPG for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "Repository": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "readOnly": true, - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreateRequest": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryCreate": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "cdn_url": { - "title": "Cdn url", - "description": "Base URL from which packages and other artifacts are downloaded.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "deleted_at": { - "title": "Deleted at", - "description": "The datetime the repository was manually deleted at.", - "type": "string", - "format": "date-time", - "readOnly": true, - "nullable": true - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryEcdsaKey" - }, - "readOnly": true - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGpgKey" - }, - "readOnly": true - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "is_open_source": { - "title": "Is open source", - "type": "boolean", - "readOnly": true - }, - "is_private": { - "title": "Is private", - "type": "boolean", - "readOnly": true - }, - "is_public": { - "title": "Is public", - "type": "boolean", - "readOnly": true - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "namespace": { - "title": "Namespace", - "description": "Namespace to which this repository belongs.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true - }, - "namespace_url": { - "title": "Namespace url", - "description": "API endpoint where data about this namespace can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "num_downloads": { - "title": "Num downloads", - "description": "The number of downloads for packages in the repository.", - "type": "integer", - "readOnly": true - }, - "num_policy_violated_packages": { - "title": "Num policy violated packages", - "description": "Number of packages with policy violations in a repository.", - "type": "integer", - "readOnly": true - }, - "num_quarantined_packages": { - "title": "Num quarantined packages", - "description": "Number of quarantined packages in a repository.", - "type": "integer", - "readOnly": true - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "package_count": { - "title": "Package count", - "description": "The number of packages in the repository.", - "type": "integer", - "readOnly": true - }, - "package_group_count": { - "title": "Package group count", - "description": "The number of groups in the repository.", - "type": "integer", - "readOnly": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type": { - "title": "Repository Type", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", - "type": "integer", - "enum": [ - 1, - 2, - 3 - ], - "readOnly": true - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "self_html_url": { - "title": "Self html url", - "description": "Website URL for this repository.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "self_url": { - "title": "Self url", - "description": "API endpoint where data about this repository can be retrieved.", - "type": "string", - "format": "uri", - "readOnly": true - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "size": { - "title": "Size", - "description": "The calculated size of the repository.", - "type": "integer", - "readOnly": true - }, - "size_str": { - "title": "Size str", - "description": "The calculated size of the repository (human readable).", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryRequestPatch": { - "type": "object", - "properties": { - "content_kind": { - "title": "Content kind", - "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", - "type": "string", - "enum": [ - "Standard", - "Distribution", - "Upstream" - ], - "default": "Standard" - }, - "contextual_auth_realm": { - "title": "Contextual Authentication Realm?", - "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", - "type": "boolean" - }, - "copy_own": { - "title": "Users Can Copy Own Packages", - "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "copy_packages": { - "title": "Copy packages", - "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "cosign_signing_enabled": { - "title": "Cosign Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", - "type": "boolean" - }, - "default_privilege": { - "title": "Default privilege", - "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read", - "None" - ], - "default": "None" - }, - "delete_own": { - "title": "Users Can Delete Own Packages", - "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "delete_packages": { - "title": "Delete packages", - "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "description": { - "title": "Description", - "description": "A description of the repository's purpose/contents.", - "type": "string" - }, - "distributes": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "array", - "items": { - "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "uniqueItems": true - }, - "docker_refresh_tokens_enabled": { - "title": "Docker Auth Refresh Enabled?", - "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", - "type": "boolean" - }, - "enforce_eula": { - "title": "Require EULA acceptance for downloads?", - "description": "If checked, downloads will explicitly require acceptance of an EULA.", - "type": "boolean" - }, - "index_files": { - "title": "Index Files?", - "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", - "type": "boolean" - }, - "manage_entitlements_privilege": { - "title": "Manage entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "move_own": { - "title": "Users Can Move Own Packages", - "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "move_packages": { - "title": "Move packages", - "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Admin" - }, - "name": { - "title": "Name", - "description": "A descriptive name for the repository.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50, - "minLength": 1 - }, - "nuget_native_signing_enabled": { - "title": "Nuget Native Signing Enabled?", - "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", - "type": "boolean" - }, - "open_source_license": { - "title": "Open source license", - "description": "The SPDX identifier of the open source license.", - "type": "string", - "nullable": true - }, - "open_source_project_url": { - "title": "Open-Source Project URL", - "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", - "type": "string", - "format": "uri", - "maxLength": 200, - "nullable": true - }, - "proxy_npmjs": { - "title": "Proxy Npm Packages?", - "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "proxy_pypi": { - "title": "Proxy Python Packages?", - "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", - "type": "boolean" - }, - "raw_package_index_enabled": { - "title": "Serve index for raw packages?", - "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", - "type": "boolean" - }, - "raw_package_index_signatures_enabled": { - "title": "Display generated GPG signatures for the raw package index?", - "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", - "type": "boolean" - }, - "replace_packages": { - "title": "Replace packages", - "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Write" - }, - "replace_packages_by_default": { - "title": "Replace packages by default", - "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", - "type": "boolean" - }, - "repository_type_str": { - "title": "Repository type str", - "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", - "type": "string", - "enum": [ - "Public", - "Private", - "Open-Source" - ], - "default": "Public" - }, - "resync_own": { - "title": "Users Can Resync Own Packages", - "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "resync_packages": { - "title": "Resync packages", - "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", - "type": "string", - "enum": [ - "Admin", - "Write" - ], - "default": "Admin" - }, - "scan_own": { - "title": "Users Can Scan Own Packages", - "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", - "type": "boolean" - }, - "scan_packages": { - "title": "Scan packages", - "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "show_setup_all": { - "title": "Always show Set Me Up for all formats?", - "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", - "type": "boolean" - }, - "slug": { - "title": "Slug", - "description": "The slug identifies the repository in URIs.", - "type": "string" - }, - "strict_npm_validation": { - "title": "Strict Npm Validation?", - "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", - "type": "boolean" - }, - "tag_pre_releases_as_latest": { - "title": "Apply Latest Tag for Pre-Release Versions?", - "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", - "type": "boolean" - }, - "use_debian_labels": { - "title": "Use Debian Labels?", - "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", - "type": "boolean" - }, - "use_default_cargo_upstream": { - "title": "Use crates.io as default Cargo upstream?", - "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", - "type": "boolean" - }, - "use_entitlements_privilege": { - "title": "Use entitlements privilege", - "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - }, - "use_noarch_packages": { - "title": "Use/Configure NoArch Packages?", - "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", - "type": "boolean" - }, - "use_source_packages": { - "title": "Use/Configure Source Packages?", - "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", - "type": "boolean" - }, - "use_vulnerability_scanning": { - "title": "Use Vulnerability Scanning?", - "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", - "type": "boolean" - }, - "user_entitlements_enabled": { - "title": "User Entitlements Enabled", - "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", - "type": "boolean" - }, - "view_statistics": { - "title": "View statistics", - "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ], - "default": "Read" - } - } - }, - "RepositoryEcdsaKeyCreate": { - "required": [ - "ecdsa_private_key" - ], - "type": "object", - "properties": { - "ecdsa_passphrase": { - "title": "Ecdsa passphrase", - "description": "The ECDSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "ecdsa_private_key": { - "title": "Ecdsa private key", - "description": "The ECDSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpCidr": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed CIDRs for this repository", - "type": "array", - "items": { - "description": "The allowed CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied CIDRs for this repository", - "type": "array", - "items": { - "description": "The denied CIDRs for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpCountryCode": { - "required": [ - "allow", - "deny" - ], - "type": "object", - "properties": { - "allow": { - "description": "The allowed country codes for this repository", - "type": "array", - "items": { - "description": "The allowed country codes for this repository", - "type": "string" - }, - "uniqueItems": true - }, - "deny": { - "description": "The denied country codes for this repository", - "type": "array", - "items": { - "description": "The denied country codes for this repository", - "type": "string" - }, - "uniqueItems": true - } - } - }, - "RepositoryGeoIpRules": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequest": { - "required": [ - "cidr", - "country_code" - ], - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RepositoryGeoIpRulesRequestPatch": { - "type": "object", - "properties": { - "cidr": { - "$ref": "#/components/schemas/RepositoryGeoIpCidr" - }, - "country_code": { - "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" - } - } - }, - "RespositoryGeoIpEnableDisableRequest": { - "type": "object", - "properties": {} - }, - "RespositoryGeoIpEnableDisable": { - "type": "object", - "properties": {} - }, - "RepositoryGeoIpStatus": { - "type": "object", - "properties": { - "geoip_enabled": { - "title": "Geo/IP Restriction Enabled?", - "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", - "type": "boolean", - "readOnly": true - } - } - }, - "RepositoryGeoIpTestAddress": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP addresses to test against this repository", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - } - } - } - }, - "RepositoryGeoIpTestAddressResponseDict": { - "required": [ - "allowed", - "country_code", - "ip_address", - "reason" - ], - "type": "object", - "properties": { - "allowed": { - "title": "Allowed", - "description": "The result of the IP test", - "type": "boolean" - }, - "country_code": { - "title": "Country code", - "description": "The country code of the tested IP address", - "type": "string", - "minLength": 1, - "nullable": true - }, - "ip_address": { - "title": "Ip address", - "description": "The IP address that was tested", - "type": "string", - "minLength": 1 - }, - "reason": { - "title": "Reason", - "description": "The reason for the result", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryGeoIpTestAddressResponse": { - "required": [ - "addresses" - ], - "type": "object", - "properties": { - "addresses": { - "description": "The IP address test results ordered by allowed", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" - } - } - } - }, - "RepositoryGpgKeyCreate": { - "required": [ - "gpg_private_key" - ], - "type": "object", - "properties": { - "gpg_passphrase": { - "title": "Gpg passphrase", - "description": "The GPG passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "gpg_private_key": { - "title": "Gpg private key", - "description": "The GPG private key.", - "type": "string", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeDict": { - "required": [ - "privilege" - ], - "type": "object", - "properties": { - "privilege": { - "title": "Privilege", - "description": "The level of privilege that the user or team should be granted to the specified repository.", - "type": "string", - "enum": [ - "Admin", - "Write", - "Read" - ] - }, - "service": { - "title": "Service", - "description": "The service identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "team": { - "title": "Team", - "description": "The team identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - }, - "user": { - "title": "User", - "description": "The user identifier (slug).", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "minLength": 1 - } - } - }, - "RepositoryPrivilegeInput": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequest": { - "required": [ - "privileges" - ], - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryPrivilegeInputRequestPatch": { - "type": "object", - "properties": { - "privileges": { - "description": "List of objects with explicit privileges to the repository.", - "type": "array", - "items": { - "$ref": "#/components/schemas/RepositoryPrivilegeDict" - } - } - } - }, - "RepositoryRsaKey": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "fingerprint": { - "title": "Fingerprint", - "description": "The long identifier used by RSA for this key.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "fingerprint_short": { - "title": "Fingerprint short", - "type": "string", - "readOnly": true - }, - "public_key": { - "title": "Public key", - "description": "The public key given to repository users.", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "ssh_fingerprint": { - "title": "Ssh fingerprint", - "description": "The SSH fingerprint used by RSA for this key.", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "RepositoryRsaKeyCreate": { - "required": [ - "rsa_private_key" - ], - "type": "object", - "properties": { - "rsa_passphrase": { - "title": "Rsa passphrase", - "description": "The RSA passphrase used for signing.", - "type": "string", - "minLength": 1 - }, - "rsa_private_key": { - "title": "Rsa private key", - "description": "The RSA private key.", - "type": "string", - "minLength": 1 - } - } - }, - "CargoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CargoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "ComposerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "CranUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DartUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstream": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequest": { - "required": [ - "distro_versions", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DebUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "component": { - "title": "Component", - "description": "The component to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1 - }, - "distro_versions": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "array", - "items": { - "description": "The distribution version that packages found on this upstream could be associated with.", - "type": "string" - }, - "uniqueItems": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When true, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_distribution": { - "title": "Upstream distribution", - "description": "The distribution to fetch from the upstream", - "type": "string", - "maxLength": 64, - "minLength": 1, - "nullable": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "DockerUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_certificate": { - "title": "Auth certificate", - "description": "X.509 Certificate to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_certificate_key": { - "title": "Auth certificate key", - "description": "Certificate key to use for mTLS authentication against the upstream", - "type": "string", - "minLength": 1 - }, - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Certificate and Key" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "GoUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HelmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "HexUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "MavenUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy", - "Cache Only" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password", - "Token" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "NugetUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "PythonUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstream": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verification_status": { - "title": "Verification status", - "description": "The signature verification status for this upstream.", - "type": "string", - "enum": [ - "Unknown", - "Invalid", - "Valid", - "Invalid (No Key)" - ], - "readOnly": true, - "default": "Unknown" - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequest": { - "required": [ - "distro_version", - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RpmUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "distro_version": { - "title": "Distro version", - "description": "The distribution version that packages found on this upstream will be associated with.", - "type": "string" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "gpg_key_inline": { - "title": "GPG Key", - "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "nullable": true - }, - "gpg_key_url": { - "title": "GPG Key URL", - "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", - "type": "string", - "format": "uri", - "maxLength": 254, - "nullable": true - }, - "gpg_verification": { - "title": "Gpg verification", - "description": "The GPG signature verification mode for this upstream.", - "type": "string", - "enum": [ - "Allow All", - "Warn on Invalid", - "Reject Invalid" - ], - "default": "Allow All" - }, - "include_sources": { - "title": "Source Packages", - "description": "When checked, source packages will be available from this upstream.", - "type": "boolean" - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RubyUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstream": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "created_at": { - "title": "Created at", - "description": "The datetime the upstream source was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "string", - "enum": [ - "N/A", - "Upstream points to its own repository", - "Missing upstream source", - "Upstream was disabled by request of user" - ], - "readOnly": true, - "default": "N/A" - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "pending_validation": { - "title": "Pending validation", - "description": "When true, this upstream source is pending validation.", - "type": "boolean", - "readOnly": true - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequest": { - "required": [ - "name", - "upstream_url" - ], - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "SwiftUpstreamRequestPatch": { - "type": "object", - "properties": { - "auth_mode": { - "title": "Auth mode", - "description": "The authentication mode to use when accessing this upstream. ", - "type": "string", - "enum": [ - "None", - "Username and Password" - ], - "default": "None" - }, - "auth_secret": { - "title": "Secret", - "description": "Secret to provide with requests to upstream.", - "type": "string", - "maxLength": 4096, - "nullable": true - }, - "auth_username": { - "title": "Username", - "description": "Username to provide with requests to upstream.", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "extra_header_1": { - "title": "Header #1", - "description": "The key for extra header #1 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_header_2": { - "title": "Header #2", - "description": "The key for extra header #2 to send to upstream.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "extra_value_1": { - "title": "Value #1", - "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "extra_value_2": { - "title": "Value #2", - "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 128, - "nullable": true - }, - "is_active": { - "title": "Is active", - "description": "Whether or not this upstream is active and ready for requests.", - "type": "boolean" - }, - "mode": { - "title": "Mode", - "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", - "type": "string", - "enum": [ - "Proxy Only", - "Cache and Proxy" - ], - "default": "Proxy Only" - }, - "name": { - "title": "Name", - "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", - "type": "string", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 64, - "minLength": 1 - }, - "priority": { - "title": "Priority", - "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", - "type": "integer", - "maximum": 32767, - "minimum": 1 - }, - "upstream_url": { - "title": "Upstream URL", - "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", - "type": "string", - "format": "uri", - "maxLength": 200, - "minLength": 1 - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", - "type": "boolean" - } - } - }, - "RepositoryX509EcdsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryX509RsaCertificate": { - "type": "object", - "properties": { - "active": { - "title": "Active", - "description": "If selected this is the active key for this repository.", - "type": "boolean", - "readOnly": true - }, - "certificate": { - "title": "Certificate", - "description": "The issued certificate.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain": { - "title": "Certificate chain", - "description": "Base64 encoded CA certificate chain.", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_chain_fingerprint": { - "title": "Certificate chain fingerprint", - "type": "string", - "readOnly": true - }, - "certificate_chain_fingerprint_short": { - "title": "Certificate chain fingerprint short", - "type": "string", - "readOnly": true - }, - "certificate_fingerprint": { - "title": "Certificate fingerprint", - "description": "The SHA-256 long identifier used", - "type": "string", - "readOnly": true, - "nullable": true - }, - "certificate_fingerprint_short": { - "title": "Certificate fingerprint short", - "type": "string", - "readOnly": true - }, - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "default": { - "title": "Default", - "description": "If selected this is the default key for this repository.", - "type": "boolean", - "readOnly": true - }, - "issuing_status": { - "title": "Issuing status", - "type": "string", - "enum": [ - "Certificate is pending to be issued", - "Certificate successfully issued", - "Error issuing certificate" - ], - "default": "Certificate is pending to be issued" - } - } - }, - "RepositoryRetentionRules": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryRetentionRulesRequestPatch": { - "type": "object", - "properties": { - "retention_count_limit": { - "title": "Retention count limit", - "description": "The maximum X number of packages to retain.", - "type": "integer", - "maximum": 10000, - "minimum": 0 - }, - "retention_days_limit": { - "title": "Retention days limit", - "description": "The X number of days of packages to retain.", - "type": "integer", - "maximum": 180, - "minimum": 0 - }, - "retention_enabled": { - "title": "Retention Enabled?", - "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", - "type": "boolean" - }, - "retention_group_by_format": { - "title": "Retention group by format", - "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", - "type": "boolean" - }, - "retention_group_by_name": { - "title": "Retention Group By Name?", - "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", - "type": "boolean" - }, - "retention_group_by_package_type": { - "title": "Retention Group By Package Type?", - "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", - "type": "boolean" - }, - "retention_package_query_string": { - "title": "Retention package query string", - "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", - "type": "string", - "nullable": true - }, - "retention_size_limit": { - "title": "Retention size limit", - "description": "The maximum X total size (in bytes) of packages to retain.", - "type": "integer", - "maximum": 21474836480, - "minimum": 0 - } - } - }, - "RepositoryTransferRegionRequest": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "RepositoryTransferRegion": { - "type": "object", - "properties": { - "storage_region": { - "title": "Storage region", - "description": "The Cloudsmith region in which package files are stored.", - "type": "string", - "default": "default" - } - } - }, - "StatusBasic": { - "type": "object", - "properties": { - "detail": { - "title": "Detail", - "description": "The message describing the state of the API.", - "type": "string", - "readOnly": true, - "default": "Cloudsmith API is operational.", - "minLength": 1 - }, - "version": { - "title": "Version", - "description": "The current version for the Cloudsmith service.", - "type": "string", - "readOnly": true, - "default": "1.729.1", - "minLength": 1 - } - } - }, - "StorageRegion": { - "required": [ - "label", - "slug" - ], - "type": "object", - "properties": { - "label": { - "title": "Label", - "description": "Name of the storage region", - "type": "string", - "minLength": 1 - }, - "slug": { - "title": "Slug", - "description": "Slug for the storage region", - "type": "string", - "minLength": 1 - } - } - }, - "UserBrief": { - "type": "object", - "properties": { - "authenticated": { - "title": "Authenticated", - "description": "If true then you're logged in as a user.", - "type": "boolean", - "readOnly": true - }, - "email": { - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "type": "string", - "format": "email", - "maxLength": 254, - "minLength": 1, - "nullable": true - }, - "name": { - "title": "Name", - "description": "The full name of the user (if any).", - "type": "string", - "readOnly": true, - "minLength": 1, - "nullable": true - }, - "profile_url": { - "title": "Profile url", - "description": "The URL for the full profile of the user.", - "type": "string", - "format": "uri", - "readOnly": true, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "readOnly": true - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true, - "nullable": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true, - "nullable": true - } - } - }, - "UserAuthTokenRequest": { - "type": "object", - "properties": { - "email": { - "title": "Email", - "description": "Email address to authenticate with", - "type": "string", - "format": "email", - "minLength": 1 - }, - "password": { - "title": "Password", - "description": "Password to authenticate with", - "type": "string", - "minLength": 1 - }, - "totp_token": { - "title": "Two-factor code", - "description": "Two-factor authentication code", - "type": "string", - "minLength": 1 - } - } - }, - "UserAuthToken": { - "type": "object", - "properties": { - "token": { - "title": "Token", - "description": "API token for the authenticated user", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "two_factor_required": { - "title": "Two factor required", - "description": "Flag indicating whether a 2FA code is required to complete authentication", - "type": "boolean", - "readOnly": true - }, - "two_factor_token": { - "title": "Two factor token", - "description": "Token to use when providing 2FA code", - "type": "string", - "readOnly": true, - "minLength": 1 - } - } - }, - "UserAuthenticationToken": { - "type": "object", - "properties": { - "created": { - "title": "Created", - "description": "The time at which the API key was created.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "key": { - "title": "Key", - "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "description": "The slug_perm for token.", - "type": "string", - "readOnly": true - } - } - }, - "UserProfile": { - "required": [ - "first_name", - "last_name" - ], - "type": "object", - "properties": { - "company": { - "title": "Company", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "first_name": { - "title": "First name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "job_title": { - "title": "Job title", - "type": "string", - "maxLength": 64, - "nullable": true - }, - "joined_at": { - "title": "Joined at", - "type": "string", - "format": "date-time" - }, - "last_name": { - "title": "Last name", - "type": "string", - "maxLength": 120, - "minLength": 1 - }, - "name": { - "title": "Name", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "slug": { - "title": "Slug", - "type": "string", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "readOnly": true - }, - "tagline": { - "title": "Tagline", - "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "url": { - "title": "Url", - "type": "string", - "format": "uri", - "readOnly": true - } - } - }, - "VulnerabilityScanResultsList": { - "required": [ - "identifier", - "package", - "scan_id" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - } - } - }, - "VulnerabilityScanVersion": { - "required": [ - "major", - "minor", - "patch" - ], - "type": "object", - "properties": { - "major": { - "title": "Major", - "type": "integer" - }, - "minor": { - "title": "Minor", - "type": "integer" - }, - "operator": { - "title": "Operator", - "type": "string", - "default": "", - "maxLength": 32, - "minLength": 1 - }, - "patch": { - "title": "Patch", - "type": "integer" - }, - "raw_version": { - "title": "Raw version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 + "tags": ["distros"] + }, + "parameters": [] + }, + "/distros/{slug}/": { + "get": { + "operationId": "distros_read", + "summary": "View for viewing/listing distributions.", + "description": "View for viewing/listing distributions.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DistributionFull" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["distros"] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "entitlements_list", + "summary": "Get a list of all entitlements in a repository.", + "description": "Get a list of all entitlements in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names of entitlements.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "active", + "in": "query", + "description": "If true, only include active tokens", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of entitlement tokens", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "post": { + "operationId": "entitlements_create", + "summary": "Create a specific entitlement in a repository.", + "description": "Create a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/sync/": { + "post": { + "operationId": "entitlements_sync", + "summary": "Synchronise tokens from a source repository.", + "description": "Synchronise tokens from a source repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSyncRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The tokens have been synchronised from the source repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "entitlements_read", + "summary": "Get a specific entitlement in a repository.", + "description": "Get a specific entitlement in a repository.", + "parameters": [ + { + "name": "fuzzy", + "in": "query", + "description": "If true, entitlement identifiers including name will be fuzzy matched.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Retrieved the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "Couldn't retrieve the specified token because the request contains an error.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "patch": { + "operationId": "entitlements_partial_update", + "summary": "Update a specific entitlement in a repository.", + "description": "Update a specific entitlement in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified entitlement", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryToken" + } + } + } + }, + "400": { + "description": "The entitlement cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "delete": { + "operationId": "entitlements_delete", + "summary": "Delete a specific entitlement in a repository.", + "description": "Delete a specific entitlement in a repository.", + "responses": { + "204": { + "description": "Soft-deleted the specified entitlement token successfully." + }, + "400": { + "description": "The entitlement cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/disable/": { + "post": { + "operationId": "entitlements_disable", + "summary": "Disable an entitlement token in a repository.", + "description": "Disable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been disabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/enable/": { + "post": { + "operationId": "entitlements_enable", + "summary": "Enable an entitlement token in a repository.", + "description": "Enable an entitlement token in a repository.", + "responses": { + "204": { + "description": "The entitlement token has been enabled." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/refresh/": { + "post": { + "operationId": "entitlements_refresh", + "summary": "Refresh an entitlement token in a repository.", + "description": "Refresh an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefreshRequest" + } + } + } + }, + "responses": { + "200": { + "description": "The entitlement token has been refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTokenRefresh" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/entitlements/{owner}/{repo}/{identifier}/reset/": { + "post": { + "operationId": "entitlements_reset", + "summary": "Reset the statistics for an entitlement token in a repository.", + "description": "Reset the statistics for an entitlement token in a repository.", + "parameters": [ + { + "name": "show_tokens", + "in": "query", + "description": "Show entitlement token strings in results", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "204": { + "description": "The entitlement token statistics have been reset." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["entitlements"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/": { + "post": { + "operationId": "files_create", + "summary": "Request URL(s) to upload new package file upload(s) to.", + "description": "Request URL(s) to upload new package file upload(s) to.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "202": { + "description": "The upload request was accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["files"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/validate/": { + "post": { + "operationId": "files_validate", + "summary": "Validate parameters used for create.", + "description": "Validate parameters used for create.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["files"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/abort/": { + "post": { + "operationId": "files_abort", + "summary": "Abort a multipart file upload.", + "description": "Abort a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "204": { + "description": "The multipart upload was aborted successfully." + }, + "400": { + "description": "The multipart upload could not be aborted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["files"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/complete/": { + "post": { + "operationId": "files_complete", + "summary": "Complete a multipart file upload.", + "description": "Complete a multipart file upload.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageFileUploadRequest" + }, + "responses": { + "201": { + "description": "The multipart upload was completed successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUpload" + } + } + } + }, + "400": { + "description": "The multipart upload could not be completed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["files"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/files/{owner}/{repo}/{identifier}/info/": { + "get": { + "operationId": "files_info", + "summary": "Get upload information to perform a multipart file upload.", + "description": "Get upload information to perform a multipart file upload.", + "parameters": [ + { + "name": "filename", + "in": "query", + "description": "The filename of the file being uploaded", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "part_number", + "in": "query", + "description": "The part number to be uploaded next", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Information for multipart uploaded retrieved successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFilePartsUpload" + } + } + } + }, + "400": { + "description": "The provided upload file was not a multipart upload.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner), repository or upload file not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["files"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/formats/": { + "get": { + "operationId": "formats_list", + "summary": "Get a list of all supported package formats.", + "description": "Get a list of all supported package formats.", + "responses": { + "200": { + "description": "Available package formats retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Format" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["formats"] + }, + "parameters": [] + }, + "/formats/{slug}/": { + "get": { + "operationId": "formats_read", + "summary": "Get a specific supported package format.", + "description": "Get a specific supported package format.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Format" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["formats"] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/entitlements/{owner}/": { + "get": { + "operationId": "metrics_entitlements_account_list", + "summary": "View for listing entitlement token metrics, across an account.", + "description": "View for listing entitlement token metrics, across an account.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["metrics"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/entitlements/{owner}/{repo}/": { + "get": { + "operationId": "metrics_entitlements_repo_list", + "summary": "View for listing entitlement token metrics, for a repository.", + "description": "View for listing entitlement token metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "tokens", + "in": "query", + "description": "A comma seperated list of tokens (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for entitlements.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EntitlementUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["metrics"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/metrics/packages/{owner}/{repo}/": { + "get": { + "operationId": "metrics_packages_list", + "summary": "View for listing package usage metrics, for a repository.", + "description": "View for listing package usage metrics, for a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "finish", + "in": "query", + "description": "Include metrics upto and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "packages", + "in": "query", + "description": "A comma seperated list of packages (slug perm) to include in the results.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Include metrics from and including this UTC date or UTC datetime. For example '2020-12-31' or '2021-12-13T00:00:00Z'.", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the metrics for packages.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageUsageMetrics" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["metrics"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/namespaces/": { + "get": { + "operationId": "namespaces_list", + "summary": "Get a list of all namespaces the user belongs to.", + "description": "Get a list of all namespaces the user belongs to.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Namespace" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["namespaces"] + }, + "parameters": [] + }, + "/namespaces/{slug}/": { + "get": { + "operationId": "namespaces_read", + "summary": "Get a specific namespace that the user belongs to.", + "description": "Get a specific namespace that the user belongs to.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Namespace" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["namespaces"] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/": { + "get": { + "operationId": "orgs_list", + "summary": "Get a list of all the organizations you are associated with.", + "description": "Get a list of all the organizations you are associated with.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organization" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [] + }, + "/orgs/{org}/": { + "get": { + "operationId": "orgs_read", + "summary": "Get the details for the specific organization.", + "description": "Get the details for the specific organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_delete", + "summary": "Delete the specified organization.", + "description": "Delete the specified organization.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/": { + "get": { + "operationId": "orgs_deny-policy_list", + "summary": "Get a list of all package deny policies.", + "description": "Get a list of all package deny policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_deny-policy_create", + "summary": "Create a package deny policy.", + "description": "Create a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/deny-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_deny-policy_read", + "summary": "Get a package deny policy.", + "description": "Get a package deny policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "put": { + "operationId": "orgs_deny-policy_update", + "summary": "Update a package deny policy.", + "description": "Update a package deny policy.", + "requestBody": { + "$ref": "#/components/requestBodies/PackageDenyPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_deny-policy_partial_update", + "summary": "Partially update a package deny policy.", + "description": "Partially update a package deny policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_deny-policy_delete", + "summary": "Delete a package deny policy.", + "description": "Delete a package deny policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/": { + "get": { + "operationId": "orgs_invites_list", + "summary": "Get a list of all invites for an organization.", + "description": "Get a list of all invites for an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization invites", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization invites not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_invites_create", + "summary": "Create an organization invite for a specific user", + "description": "Create an organization invite for a specific user", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Invite sent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/": { + "patch": { + "operationId": "orgs_invites_partial_update", + "summary": "Update a specific organization invite.", + "description": "Update a specific organization invite.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Invite updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInvite" + } + } + } + }, + "400": { + "description": "The invite cannot be updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_invites_delete", + "summary": "Delete a specific organization invite", + "description": "Delete a specific organization invite", + "responses": { + "204": { + "description": "Deleted the organization invite successfully." + }, + "400": { + "description": "The organization invite cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/extend/": { + "post": { + "operationId": "orgs_invites_extend", + "summary": "Extend an organization invite.", + "description": "Extend an organization invite.", + "responses": { + "200": { + "description": "The invite has been extended", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/invites/{slug_perm}/resend/": { + "post": { + "operationId": "orgs_invites_resend", + "summary": "Resend an organization invite.", + "description": "Resend an organization invite.", + "responses": { + "200": { + "description": "The invite has been resent", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationInviteExtend" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Invite not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy-violation/": { + "get": { + "operationId": "orgs_license-policy-violation_list", + "summary": "List all current license policy violations for this Organization.", + "description": "List all current license policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": ["results"], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true }, - "version": { - "title": "Version", - "type": "string", - "default": "", - "maxLength": 1024, - "minLength": 1 + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyViolationLog" + } } + }, + "title": "PackageLicensePolicyViolationLogCursorPage" } - }, - "Vulnerability": { - "required": [ - "affected_version", - "description", - "fixed_version", - "package_name", - "references", - "severity_source", - "title", - "vulnerability_id" - ], - "type": "object", - "properties": { - "affected_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "description": { - "title": "Description", - "type": "string", - "maxLength": 1028, - "minLength": 1 - }, - "fixed_version": { - "$ref": "#/components/schemas/VulnerabilityScanVersion" - }, - "package_name": { - "title": "Package name", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "references": { - "type": "array", - "items": { - "type": "string", - "maxLength": 2048, - "minLength": 1 - } - }, - "severity": { - "title": "Severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "severity_source": { - "title": "Severity source", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "title": { - "title": "Title", - "type": "string", - "maxLength": 512, - "minLength": 1 + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/": { + "get": { + "operationId": "orgs_license-policy_list", + "summary": "Get a list of all package license policies.", + "description": "Get a list of all package license policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_license-policy_create", + "summary": "Create a package license policy.", + "description": "Create a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_license-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_license-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageLicensePolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/license-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_license-policy_read", + "summary": "Get a package license policy.", + "description": "Get a package license policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "put": { + "operationId": "orgs_license-policy_update", + "summary": "Update a package license policy.", + "description": "Update a package license policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageLicensePolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_license-policy_partial_update", + "summary": "Partially update a package license policy.", + "description": "Partially update a package license policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_license-policy_delete", + "summary": "Delete a package license policy.", + "description": "Delete a package license policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/": { + "get": { + "operationId": "orgs_members_list", + "summary": "Get the details for all organization members.", + "description": "Get the details for all organization members.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "is_active", + "in": "query", + "description": "Filter for active/inactive users.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of members within an Organization.Available options are: email, org, user, userslug, inactive, user_name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-user_name`). Available options: user_name, role.", + "required": false, + "schema": { + "type": "string", + "default": "user_name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of organization's members", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/": { + "get": { + "operationId": "orgs_members_read", + "summary": "Get the details for a specific organization member.", + "description": "Get the details for a specific organization member.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_members_partial_update", + "summary": "Views for working with organization members.", + "description": "Views for working with organization members.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembership" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_members_delete", + "summary": "Removes a member from the organization.", + "description": "Removes a member from the organization.", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/refresh/": { + "post": { + "operationId": "orgs_members_refresh", + "summary": "Refresh a member of the organization's API key.", + "description": "Refresh a member of the organization's API key.", + "responses": { + "204": { + "description": "Org member API key has been refreshed." + }, + "400": { + "description": "The org member's API key cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org member not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/remove/": { + "get": { + "operationId": "orgs_members_remove", + "summary": "Removes a member from the organization (deprecated, use DELETE instead).", + "description": "Removes a member from the organization (deprecated, use DELETE instead).", + "responses": { + "204": { + "description": "Removed the organization member successfully." + }, + "400": { + "description": "The organization member cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-role/": { + "patch": { + "operationId": "orgs_members_update_role", + "summary": "Update a member's role in the organization.", + "description": "Update a member's role in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipRoleUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/members/{member}/update-visibility/": { + "patch": { + "operationId": "orgs_members_update_visibility", + "summary": "Update a member's visibility in the organization.", + "description": "Update a member's visibility in the organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdateRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMembershipVisibilityUpdate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "member", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/": { + "get": { + "operationId": "orgs_openid-connect_list", + "summary": "Retrieve the list of OpenID Connect provider settings for the org.", + "description": "Retrieve the list of OpenID Connect provider settings for the org.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of OpenID Connect (OIDC) provider settings.Available options are: name, provider_url, service_account", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_openid-connect_create", + "summary": "Create the OpenID Connect provider settings for the org.", + "description": "Create the OpenID Connect provider settings for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "201": { + "description": "Created the OpenID Connect provider settings for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/openid-connect/{slug_perm}/": { + "get": { + "operationId": "orgs_openid-connect_read", + "summary": "Retrieve a specific OpenID Connect provider setting for the org.", + "description": "Retrieve a specific OpenID Connect provider setting for the org.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "put": { + "operationId": "orgs_openid-connect_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "$ref": "#/components/requestBodies/ProviderSettingsRequest" + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_openid-connect_partial_update", + "summary": "Update a specific OpenID Connect provider setting for the org.", + "description": "Update a specific OpenID Connect provider setting for the org.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified OpenID Connect provider setting for the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettings" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_openid-connect_delete", + "summary": "Delete a specific OpenID Connect provider setting for the org.", + "description": "Delete a specific OpenID Connect provider setting for the org.", + "responses": { + "204": { + "description": "Deleted the specified OpenID Connect provider setting successfully." + }, + "400": { + "description": "The specified OpenID Connect provider setting cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-authentication": { + "get": { + "operationId": "orgs_saml-authentication_read", + "summary": "Retrieve the SAML Authentication settings for this Organization.", + "description": "Retrieve the SAML Authentication settings for this Organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_saml-authentication_partial_update", + "summary": "Update the SAML Authentication settings for this Organization.", + "description": "Update the SAML Authentication settings for this Organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuthRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the SAML Authentication settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationSAMLAuth" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "SAML Authentication is not available; please upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/": { + "get": { + "operationId": "orgs_saml-group-sync_list", + "summary": "Get the details of all SAML Group Sync mapping within an organization.", + "description": "Get the details of all SAML Group Sync mapping within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of all SAML Group Sync mappings for this org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_saml-group-sync_create", + "summary": "Create a new SAML Group Sync mapping within an organization.", + "description": "Create a new SAML Group Sync mapping within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The SAML Group Sync mapping was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSync" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/disable/": { + "post": { + "operationId": "orgs_saml-group-sync_disable", + "summary": "Disable SAML Group Sync for this organization.", + "description": "Disable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been disabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/enable/": { + "post": { + "operationId": "orgs_saml-group-sync_enable", + "summary": "Enable SAML Group Sync for this organization.", + "description": "Enable SAML Group Sync for this organization.", + "responses": { + "204": { + "description": "SAML Group Sync has been enabled for this organization." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/status/": { + "get": { + "operationId": "orgs_saml-group-sync_status", + "summary": "Retrieve the SAML Group Sync status for this organization.", + "description": "Retrieve the SAML Group Sync status for this organization.", + "responses": { + "200": { + "description": "Retrieved the SAML Group Sync status for this organization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationGroupSyncStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/saml-group-sync/{slug_perm}/": { + "delete": { + "operationId": "orgs_saml-group-sync_delete", + "summary": "Delete a SAML Group Sync mapping from an organization.", + "description": "Delete a SAML Group Sync mapping from an organization.", + "responses": { + "204": { + "description": "Mapping removed successfully" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/": { + "get": { + "operationId": "orgs_services_list", + "summary": "Get a list of all services within an organization.", + "description": "Get a list of all services within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of services within an Organization.Available options are: name, role", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-created_at`). Available options: created_at, name, role.", + "required": false, + "schema": { + "type": "string", + "default": "created_at" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of services within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Service" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_services_create", + "summary": "Create a service within an organization.", + "description": "Create a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Created the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/": { + "get": { + "operationId": "orgs_services_read", + "summary": "Retrieve details of a single service within an organization.", + "description": "Retrieve details of a single service within an organization.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_services_partial_update", + "summary": "Update a service within an organization.", + "description": "Update a service within an organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the service within the org", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_services_delete", + "summary": "Delete a specific service", + "description": "Delete a specific service", + "responses": { + "204": { + "description": "Deleted the service successfully." + }, + "400": { + "description": "The service cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/services/{service}/refresh/": { + "post": { + "operationId": "orgs_services_refresh", + "summary": "Refresh service API token.", + "description": "Refresh service API token.", + "responses": { + "200": { + "description": "Refreshed the service token successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Service" + } + } + } + }, + "400": { + "description": "The service token cannot be refreshed.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "service", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/": { + "get": { + "operationId": "orgs_teams_list", + "summary": "Get the details of all teams within an organization.", + "description": "Get the details of all teams within an organization.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "for_user", + "in": "query", + "description": "Filter for teams that you are a member of.", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying of teams within an Organization.Available options are: name, slug, user, userslug", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, members.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of teams within the org", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Org namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_teams_create", + "summary": "Create a team for this organization.", + "description": "Create a team for this organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Team created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/": { + "get": { + "operationId": "orgs_teams_read", + "summary": "Get the details of a specific team within an organization.", + "description": "Get the details of a specific team within an organization.", + "responses": { + "200": { + "description": "Retrieved the details of the requested team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_teams_partial_update", + "summary": "Update a specific team in a organization.", + "description": "Update a specific team in a organization.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeam" + } + } + } + }, + "400": { + "description": "The team cannot be edited.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_teams_delete", + "summary": "Delete a specific team in a organization.", + "description": "Delete a specific team in a organization.", + "responses": { + "204": { + "description": "Deleted the team successfully." + }, + "400": { + "description": "The team cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/teams/{team}/members": { + "get": { + "operationId": "orgs_teams_members_list", + "summary": "List all members for the team.", + "description": "List all members for the team.", + "responses": { + "200": { + "description": "Retrieved users for the specified team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_teams_members_create", + "summary": "Add users to a team.", + "description": "Add users to a team.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "201": { + "description": "The users were added to the team.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "put": { + "operationId": "orgs_teams_members_update", + "summary": "Replace all team members.", + "description": "Replace all team members.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationTeamMembers" + }, + "responses": { + "204": { + "description": "The team members were replaced.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Team not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "team", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy-violation/": { + "get": { + "operationId": "orgs_vulnerability-policy-violation_list", + "summary": "List all current vulnerability policy violations for this Organization.", + "description": "List all current vulnerability policy violations for this Organization.", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor value.", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "required": ["results"], + "type": "object", + "properties": { + "next": { + "type": "string", + "format": "uri", + "nullable": true + }, + "previous": { + "type": "string", + "format": "uri", + "nullable": true }, - "vulnerability_id": { - "title": "Vulnerability id", - "type": "string", - "maxLength": 13, - "minLength": 1 - } - } - }, - "VulnerabilityScan": { - "required": [ - "results", - "target", - "type" - ], - "type": "object", - "properties": { "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Vulnerability" - } - }, - "target": { - "title": "Target", - "type": "string", - "minLength": 1 - }, - "type": { - "title": "Type", - "type": "string", - "minLength": 1 - } - } - }, - "VulnerabilityScanResults": { - "required": [ - "identifier", - "package", - "scan_id", - "scans" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "description": "The time this scan result was stored.", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "has_vulnerabilities": { - "title": "Has vulnerabilities", - "description": "Do the results contain any known vulnerabilities?", - "type": "boolean", - "readOnly": true - }, - "identifier": { - "title": "Identifier", - "type": "string", - "minLength": 1 - }, - "max_severity": { - "title": "Max severity", - "type": "string", - "enum": [ - "Unknown", - "Low", - "Medium", - "High", - "Critical" - ], - "default": "Unknown" - }, - "num_vulnerabilities": { - "title": "Num vulnerabilities", - "type": "integer", - "default": 0 - }, - "package": { - "$ref": "#/components/schemas/PackageVulnerability" - }, - "scan_id": { - "title": "Scan id", - "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", - "type": "integer", - "nullable": true - }, - "scans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VulnerabilityScan" - } - } - } - }, - "WebhookTemplate": { - "required": [ - "event" - ], - "type": "object", - "properties": { - "event": { - "title": "Event", - "type": "string", - "maxLength": 128, - "minLength": 1 - }, - "template": { - "title": "Template", - "type": "string", - "maxLength": 4096, - "nullable": true - } - }, - "nullable": true - }, - "RepositoryWebhook": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "created_at": { - "title": "Created at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "created_by": { - "title": "Created by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "created_by_url": { - "title": "Created by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "disable_reason": { - "title": "Disable reason", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 - ], - "readOnly": true - }, - "disable_reason_str": { - "title": "Disable reason str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "identifier": { - "title": "Identifier", - "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", - "type": "integer", - "readOnly": true, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "is_last_response_bad": { - "title": "Is last response bad", - "type": "boolean", - "readOnly": true - }, - "last_response_status": { - "title": "Last response status", - "type": "integer", - "readOnly": true - }, - "last_response_status_str": { - "title": "Last response status str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "num_sent": { - "title": "Num sent", - "type": "integer", - "readOnly": true - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_format_str": { - "title": "Request body format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_body_template_format_str": { - "title": "Request body template format str", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "self_url": { - "title": "Self url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "slug_perm": { - "title": "Slug perm", - "type": "string", - "format": "slug", - "pattern": "^[-a-zA-Z0-9_]+$", - "readOnly": true, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "updated_at": { - "title": "Updated at", - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updated_by": { - "title": "Updated by", - "type": "string", - "readOnly": true, - "minLength": 1 - }, - "updated_by_url": { - "title": "Updated by url", - "type": "string", - "format": "uri", - "readOnly": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyViolationLog" + } } + }, + "title": "PackageVulnerabilityPolicyViolationLogCursorPage" } - }, - "RepositoryWebhookRequest": { - "required": [ - "events", - "target_url", - "templates" - ], - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/": { + "get": { + "operationId": "orgs_vulnerability-policy_list", + "summary": "Get a list of all package vulnerability policies.", + "description": "Get a list of all package vulnerability policies.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_vulnerability-policy_create", + "summary": "Create a package vulnerability policy.", + "description": "Create a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_list", + "summary": "List evaluation requests for this policy.", + "description": "List evaluation requests for this policy.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "post": { + "operationId": "orgs_vulnerability-policy_evaluation_create", + "summary": "Create an evaluation request for this policy.", + "description": "Create an evaluation request for this policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequestRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{policy_slug_perm}/evaluation/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_evaluation_read", + "summary": "Retrieve an evaluation request for this policy.", + "description": "Retrieve an evaluation request for this policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageVulnerabilityPolicyEvaluationRequest" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "policy_slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/orgs/{org}/vulnerability-policy/{slug_perm}/": { + "get": { + "operationId": "orgs_vulnerability-policy_read", + "summary": "Get a package vulnerability policy.", + "description": "Get a package vulnerability policy.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "put": { + "operationId": "orgs_vulnerability-policy_update", + "summary": "Update a package vulnerability policy.", + "description": "Update a package vulnerability policy.", + "requestBody": { + "$ref": "#/components/requestBodies/OrganizationPackageVulnerabilityPolicyRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "patch": { + "operationId": "orgs_vulnerability-policy_partial_update", + "summary": "Partially update a package vulnerability policy.", + "description": "Partially update a package vulnerability policy.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicy" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "delete": { + "operationId": "orgs_vulnerability-policy_delete", + "summary": "Delete a package vulnerability policy.", + "description": "Delete a package vulnerability policy.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["orgs"] + }, + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/": { + "get": { + "operationId": "packages_list", + "summary": "Get a list of all packages associated with repository.", + "description": "Get a list of all packages associated with repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order.", + "required": false, + "schema": { + "type": "string", + "default": "-date" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of packages", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Package" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/groups/": { + "get": { + "operationId": "packages_groups_list", + "summary": "Return a list of Package Groups in a repository.", + "description": "Return a list of Package Groups in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "group_by", + "in": "query", + "description": "A field to group packages by. Available options: name, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + }, + { + "name": "query", + "in": "query", + "description": "A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "sort", + "in": "query", + "description": "A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.", + "required": false, + "schema": { + "type": "string", + "default": "name" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of package groups.", + "content": { + "application/json": { + "schema": { + "required": ["results"], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageGroup" + } } + } } - }, - "RepositoryWebhookRequestPatch": { - "type": "object", - "properties": { - "events": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "*", - "package.created", - "package.deleted", - "package.downloaded", - "package.failed", - "package.quarantined", - "package.released", - "package.restored", - "package.security_scanned", - "package.synced", - "package.syncing", - "package.tags_updated" - ] - }, - "nullable": true - }, - "is_active": { - "title": "Webhook Active", - "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", - "type": "boolean" - }, - "package_query": { - "title": "Package query", - "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", - "type": "string", - "maxLength": 1024, - "nullable": true - }, - "request_body_format": { - "title": "Payload Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", - "type": "integer", - "enum": [ - 0, - 1, - 2, - 3 - ] - }, - "request_body_template_format": { - "title": "Payload Template Format", - "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", - "type": "integer", - "enum": [ - 0, - 1, - 2 - ] - }, - "request_content_type": { - "title": "Content Type Header Value", - "description": "The value that will be sent for the 'Content Type' header. ", - "type": "string", - "maxLength": 128, - "nullable": true - }, - "secret_header": { - "title": "Secret Header", - "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[-\\w]+$", - "maxLength": 64, - "nullable": true - }, - "secret_value": { - "title": "Secret Value", - "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", - "type": "string", - "pattern": "^[^\\n\\r]+$", - "maxLength": 512, - "nullable": true - }, - "signature_key": { - "title": "HMAC Signature Key", - "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", - "type": "string", - "maxLength": 512, - "minLength": 1 - }, - "target_url": { - "title": "Payload URL", - "description": "The destination URL that webhook payloads will be POST'ed to.", - "type": "string", - "format": "uri", - "maxLength": 255, - "minLength": 1 - }, - "templates": { - "type": "array", - "items": { - "$ref": "#/components/schemas/WebhookTemplate" - }, - "nullable": true - }, - "verify_ssl": { - "title": "Verify SSL Certificates", - "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", - "type": "boolean" + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/alpine/": { + "post": { + "operationId": "packages_upload_alpine", + "summary": "Create a new Alpine package", + "description": "Create a new Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cargo/": { + "post": { + "operationId": "packages_upload_cargo", + "summary": "Create a new Cargo package", + "description": "Create a new Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cocoapods/": { + "post": { + "operationId": "packages_upload_cocoapods", + "summary": "Create a new CocoaPods package", + "description": "Create a new CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/composer/": { + "post": { + "operationId": "packages_upload_composer", + "summary": "Create a new Composer package", + "description": "Create a new Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conan/": { + "post": { + "operationId": "packages_upload_conan", + "summary": "Create a new Conan package", + "description": "Create a new Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/conda/": { + "post": { + "operationId": "packages_upload_conda", + "summary": "Create a new Conda package", + "description": "Create a new Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/cran/": { + "post": { + "operationId": "packages_upload_cran", + "summary": "Create a new CRAN package", + "description": "Create a new CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/dart/": { + "post": { + "operationId": "packages_upload_dart", + "summary": "Create a new Dart package", + "description": "Create a new Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/deb/": { + "post": { + "operationId": "packages_upload_deb", + "summary": "Create a new Debian package", + "description": "Create a new Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/docker/": { + "post": { + "operationId": "packages_upload_docker", + "summary": "Create a new Docker package", + "description": "Create a new Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/go/": { + "post": { + "operationId": "packages_upload_go", + "summary": "Create a new Go package", + "description": "Create a new Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/helm/": { + "post": { + "operationId": "packages_upload_helm", + "summary": "Create a new Helm package", + "description": "Create a new Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/hex/": { + "post": { + "operationId": "packages_upload_hex", + "summary": "Create a new Hex package", + "description": "Create a new Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/luarocks/": { + "post": { + "operationId": "packages_upload_luarocks", + "summary": "Create a new LuaRocks package", + "description": "Create a new LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/maven/": { + "post": { + "operationId": "packages_upload_maven", + "summary": "Create a new Maven package", + "description": "Create a new Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/npm/": { + "post": { + "operationId": "packages_upload_npm", + "summary": "Create a new npm package", + "description": "Create a new npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/nuget/": { + "post": { + "operationId": "packages_upload_nuget", + "summary": "Create a new NuGet package", + "description": "Create a new NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/p2/": { + "post": { + "operationId": "packages_upload_p2", + "summary": "Create a new P2 package", + "description": "Create a new P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/python/": { + "post": { + "operationId": "packages_upload_python", + "summary": "Create a new Python package", + "description": "Create a new Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/raw/": { + "post": { + "operationId": "packages_upload_raw", + "summary": "Create a new Raw package", + "description": "Create a new Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/rpm/": { + "post": { + "operationId": "packages_upload_rpm", + "summary": "Create a new RedHat package", + "description": "Create a new RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/ruby/": { + "post": { + "operationId": "packages_upload_ruby", + "summary": "Create a new Ruby package", + "description": "Create a new Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/swift/": { + "post": { + "operationId": "packages_upload_swift", + "summary": "Create a new Swift package", + "description": "Create a new Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/terraform/": { + "post": { + "operationId": "packages_upload_terraform", + "summary": "Create a new Terraform package", + "description": "Create a new Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/upload/vagrant/": { + "post": { + "operationId": "packages_upload_vagrant", + "summary": "Create a new Vagrant package", + "description": "Create a new Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "201": { + "description": "Upload acknowledged and queued for synchronization.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUpload" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/alpine/": { + "post": { + "operationId": "packages_validate-upload_alpine", + "summary": "Validate parameters for create Alpine package", + "description": "Validate parameters for create Alpine package", + "requestBody": { + "$ref": "#/components/requestBodies/AlpinePackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cargo/": { + "post": { + "operationId": "packages_validate-upload_cargo", + "summary": "Validate parameters for create Cargo package", + "description": "Validate parameters for create Cargo package", + "requestBody": { + "$ref": "#/components/requestBodies/CargoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cocoapods/": { + "post": { + "operationId": "packages_validate-upload_cocoapods", + "summary": "Validate parameters for create CocoaPods package", + "description": "Validate parameters for create CocoaPods package", + "requestBody": { + "$ref": "#/components/requestBodies/CocoapodsPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/composer/": { + "post": { + "operationId": "packages_validate-upload_composer", + "summary": "Validate parameters for create Composer package", + "description": "Validate parameters for create Composer package", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conan/": { + "post": { + "operationId": "packages_validate-upload_conan", + "summary": "Validate parameters for create Conan package", + "description": "Validate parameters for create Conan package", + "requestBody": { + "$ref": "#/components/requestBodies/ConanPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/conda/": { + "post": { + "operationId": "packages_validate-upload_conda", + "summary": "Validate parameters for create Conda package", + "description": "Validate parameters for create Conda package", + "requestBody": { + "$ref": "#/components/requestBodies/CondaPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/cran/": { + "post": { + "operationId": "packages_validate-upload_cran", + "summary": "Validate parameters for create CRAN package", + "description": "Validate parameters for create CRAN package", + "requestBody": { + "$ref": "#/components/requestBodies/CranPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/dart/": { + "post": { + "operationId": "packages_validate-upload_dart", + "summary": "Validate parameters for create Dart package", + "description": "Validate parameters for create Dart package", + "requestBody": { + "$ref": "#/components/requestBodies/DartPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/deb/": { + "post": { + "operationId": "packages_validate-upload_deb", + "summary": "Validate parameters for create Debian package", + "description": "Validate parameters for create Debian package", + "requestBody": { + "$ref": "#/components/requestBodies/DebPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/docker/": { + "post": { + "operationId": "packages_validate-upload_docker", + "summary": "Validate parameters for create Docker package", + "description": "Validate parameters for create Docker package", + "requestBody": { + "$ref": "#/components/requestBodies/DockerPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/go/": { + "post": { + "operationId": "packages_validate-upload_go", + "summary": "Validate parameters for create Go package", + "description": "Validate parameters for create Go package", + "requestBody": { + "$ref": "#/components/requestBodies/GoPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/helm/": { + "post": { + "operationId": "packages_validate-upload_helm", + "summary": "Validate parameters for create Helm package", + "description": "Validate parameters for create Helm package", + "requestBody": { + "$ref": "#/components/requestBodies/HelmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/hex/": { + "post": { + "operationId": "packages_validate-upload_hex", + "summary": "Validate parameters for create Hex package", + "description": "Validate parameters for create Hex package", + "requestBody": { + "$ref": "#/components/requestBodies/HexPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/luarocks/": { + "post": { + "operationId": "packages_validate-upload_luarocks", + "summary": "Validate parameters for create LuaRocks package", + "description": "Validate parameters for create LuaRocks package", + "requestBody": { + "$ref": "#/components/requestBodies/LuarocksPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/maven/": { + "post": { + "operationId": "packages_validate-upload_maven", + "summary": "Validate parameters for create Maven package", + "description": "Validate parameters for create Maven package", + "requestBody": { + "$ref": "#/components/requestBodies/MavenPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/npm/": { + "post": { + "operationId": "packages_validate-upload_npm", + "summary": "Validate parameters for create npm package", + "description": "Validate parameters for create npm package", + "requestBody": { + "$ref": "#/components/requestBodies/NpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/nuget/": { + "post": { + "operationId": "packages_validate-upload_nuget", + "summary": "Validate parameters for create NuGet package", + "description": "Validate parameters for create NuGet package", + "requestBody": { + "$ref": "#/components/requestBodies/NugetPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/p2/": { + "post": { + "operationId": "packages_validate-upload_p2", + "summary": "Validate parameters for create P2 package", + "description": "Validate parameters for create P2 package", + "requestBody": { + "$ref": "#/components/requestBodies/P2PackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/python/": { + "post": { + "operationId": "packages_validate-upload_python", + "summary": "Validate parameters for create Python package", + "description": "Validate parameters for create Python package", + "requestBody": { + "$ref": "#/components/requestBodies/PythonPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/raw/": { + "post": { + "operationId": "packages_validate-upload_raw", + "summary": "Validate parameters for create Raw package", + "description": "Validate parameters for create Raw package", + "requestBody": { + "$ref": "#/components/requestBodies/RawPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/rpm/": { + "post": { + "operationId": "packages_validate-upload_rpm", + "summary": "Validate parameters for create RedHat package", + "description": "Validate parameters for create RedHat package", + "requestBody": { + "$ref": "#/components/requestBodies/RpmPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/ruby/": { + "post": { + "operationId": "packages_validate-upload_ruby", + "summary": "Validate parameters for create Ruby package", + "description": "Validate parameters for create Ruby package", + "requestBody": { + "$ref": "#/components/requestBodies/RubyPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/swift/": { + "post": { + "operationId": "packages_validate-upload_swift", + "summary": "Validate parameters for create Swift package", + "description": "Validate parameters for create Swift package", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/terraform/": { + "post": { + "operationId": "packages_validate-upload_terraform", + "summary": "Validate parameters for create Terraform package", + "description": "Validate parameters for create Terraform package", + "requestBody": { + "$ref": "#/components/requestBodies/TerraformPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/validate-upload/vagrant/": { + "post": { + "operationId": "packages_validate-upload_vagrant", + "summary": "Validate parameters for create Vagrant package", + "description": "Validate parameters for create Vagrant package", + "requestBody": { + "$ref": "#/components/requestBodies/VagrantPackageUploadRequest" + }, + "responses": { + "204": { + "description": "Validation was successful, parameters are OK." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Namespace (owner) or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "packages_read", + "summary": "Get a specific package in a repository.", + "description": "Get a specific package in a repository.", + "responses": { + "200": { + "description": "Retrieved the specified package successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "delete": { + "operationId": "packages_delete", + "summary": "Delete a specific package in a repository.", + "description": "Delete a specific package in a repository.", + "responses": { + "204": { + "description": "Deleted the specified package successfully." + }, + "400": { + "description": "The package cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/copy/": { + "post": { + "operationId": "packages_copy", + "summary": "Copy a package to another repository.", + "description": "Copy a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopyRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Copied specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageCopy" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/dependencies/": { + "get": { + "operationId": "packages_dependencies", + "summary": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "description": "Get the list of dependencies for a package. Transitive dependencies are included where supported.", + "responses": { + "200": { + "description": "Retrieved stored dependencies for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDependencies" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/move/": { + "post": { + "operationId": "packages_move", + "summary": "Move a package to another repository.", + "description": "Move a package to another repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMoveRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Moved specified package to destination repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageMove" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/quarantine/": { + "post": { + "operationId": "packages_quarantine", + "summary": "Quarantine or release a package.", + "description": "Quarantine or release a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantineRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Changed the package's quarantine status.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageQuarantine" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/resync/": { + "post": { + "operationId": "packages_resync", + "summary": "Schedule a package for resynchronisation.", + "description": "Schedule a package for resynchronisation.", + "responses": { + "200": { + "description": "Scheduled the package for resynchronisation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageResync" + } + } + } + }, + "400": { + "description": "The package is in the wrong state for the requested operation.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/scan/": { + "post": { + "operationId": "packages_scan", + "summary": "Schedule a package for scanning.", + "description": "Schedule a package for scanning.", + "responses": { + "200": { + "description": "Scheduled the package for scanning.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/status/": { + "get": { + "operationId": "packages_status", + "summary": "Get the synchronization status for a package.", + "description": "Get the synchronization status for a package.", + "responses": { + "200": { + "description": "Retrieved status for specified package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/packages/{owner}/{repo}/{identifier}/tag/": { + "post": { + "operationId": "packages_tag", + "summary": "Add/Replace/Remove tags for a package.", + "description": "Add/Replace/Remove tags for a package.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageTagRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Modified tags for the package.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Package" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["packages"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/history/{owner}/": { + "get": { + "operationId": "quota_history_read", + "summary": "Quota history for a given namespace.", + "description": "Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["quota"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/history/{owner}/": { + "get": { + "operationId": "quota_oss_history_read", + "summary": "Open-source Quota history for a given namespace.", + "description": "Open-source Quota history for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QuotaHistory" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["quota"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/oss/{owner}/": { + "get": { + "operationId": "quota_oss_read", + "summary": "Open-source Quota usage for a given namespace.", + "description": "Open-source Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["quota"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/quota/{owner}/": { + "get": { + "operationId": "quota_read", + "summary": "Quota usage for a given namespace.", + "description": "Quota usage for a given namespace.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quota" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["quota"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/rates/limits/": { + "get": { + "operationId": "rates_limits_list", + "summary": "Endpoint to check rate limits for current user.", + "description": "Endpoint to check rate limits for current user.", + "responses": { + "200": { + "description": "Rate check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResourcesRateCheck" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["rates"] + }, + "parameters": [] + }, + "/repos/": { + "get": { + "operationId": "repos_user_list", + "summary": "Get a list of all repositories associated with current user.", + "description": "Get a list of all repositories associated with current user.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [] + }, + "/repos/{owner}/": { + "get": { + "operationId": "repos_namespace_list", + "summary": "Get a list of all repositories within a namespace.", + "description": "Get a list of all repositories within a namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of repositories", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Repository" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_create", + "summary": "Create a new repository in a given namespace.", + "description": "Create a new repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreateRequest" + } + } + } + }, + "responses": { + "201": { + "description": "The repository was created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryCreate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/": { + "get": { + "operationId": "repos_read", + "summary": "Get a specific repository.", + "description": "Get a specific repository.", + "responses": { + "200": { + "description": "Retrieved the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_partial_update", + "summary": "Update details about a repository in a given namespace.", + "description": "Update details about a repository in a given namespace.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "The repository was updated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Repository" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_delete", + "summary": "Delete a repository in a given namespace.", + "description": "Delete a repository in a given namespace.", + "responses": { + "200": { + "description": "The repository has been scheduled for deletion." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Unable to find repository with that name in the provided namespace.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/": { + "get": { + "operationId": "repos_ecdsa_list", + "summary": "Retrieve the active ECDSA key for the Repository.", + "description": "Retrieve the active ECDSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_ecdsa_create", + "summary": "Set the active ECDSA key for the Repository.", + "description": "Set the active ECDSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided ECDSA key is the same as the current ECDSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "201": { + "description": "The provided ECDSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "The provided ECDSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom ECDSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/ecdsa/regenerate/": { + "post": { + "operationId": "repos_ecdsa_regenerate", + "summary": "Regenerate ECDSA Key for the Repository.", + "description": "Regenerate ECDSA Key for the Repository.", + "responses": { + "200": { + "description": "An ECDSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip": { + "get": { + "operationId": "repos_geoip_read", + "summary": "List all repository geoip rules.", + "description": "List all repository geoip rules.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_geoip_update", + "summary": "Replace repository geoip rules.", + "description": "Replace repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequest" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_geoip_partial_update", + "summary": "Partially update repository geoip rules.", + "description": "Partially update repository geoip rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/disable/": { + "post": { + "operationId": "repos_geoip_disable", + "summary": "Disable GeoIP for this repository.", + "description": "Disable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been disabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/enable/": { + "post": { + "operationId": "repos_geoip_enable", + "summary": "Enable GeoIP for this repository.", + "description": "Enable GeoIP for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RespositoryGeoIpEnableDisableRequest" + }, + "responses": { + "200": { + "description": "GeoIP has been enabled for this repository." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/status/": { + "get": { + "operationId": "api_repos_geoip_status", + "summary": "Retrieve the GeoIP status for this repository.", + "description": "Retrieve the GeoIP status for this repository.", + "responses": { + "200": { + "description": "Retrieved the GeoIP status for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpStatus" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/geoip/test/": { + "post": { + "operationId": "repos_geoip_test", + "summary": "Test a list of IP addresses against the repository's current GeoIP rules.", + "description": "Test a list of IP addresses against the repository's current GeoIP rules.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddress" + } + } + } + }, + "responses": { + "201": { + "description": "Successfuly tested addresses against the repository's GeoIP rules", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponse" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Geo/IP restrictions are not available; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/": { + "get": { + "operationId": "repos_gpg_list", + "summary": "Retrieve the active GPG key for the Repository.", + "description": "Retrieve the active GPG key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_gpg_create", + "summary": "Set the active GPG key for the Repository.", + "description": "Set the active GPG key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided GPG key is the same as the current GPG key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "201": { + "description": "The provided GPG key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "The provided GPG key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom GPG keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/gpg/regenerate/": { + "post": { + "operationId": "repos_gpg_regenerate", + "summary": "Regenerate GPG Key for the Repository.", + "description": "Regenerate GPG Key for the Repository.", + "responses": { + "200": { + "description": "A GPG key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryGpgKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/privileges": { + "get": { + "operationId": "repos_privileges_list", + "summary": "List all explicity created privileges for the repository.", + "description": "List all explicity created privileges for the repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved privileges for the specified repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInput" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_privileges_update", + "summary": "Replace all existing repository privileges with those specified.", + "description": "Replace all existing repository privileges with those specified.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequest" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges replaced" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_privileges_partial_update", + "summary": "Modify privileges for the repository.", + "description": "Modify privileges for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryPrivilegeInputRequestPatch" + } + } + } + }, + "responses": { + "204": { + "description": "Repository privileges updated" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/": { + "get": { + "operationId": "repos_rsa_list", + "summary": "Retrieve the active RSA key for the Repository.", + "description": "Retrieve the active RSA key for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_rsa_create", + "summary": "Set the active RSA key for the Repository.", + "description": "Set the active RSA key for the Repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKeyCreate" + } + } + } + }, + "responses": { + "200": { + "description": "The provided RSA key is the same as the current RSA key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "201": { + "description": "The provided RSA key was assigned to the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "The provided RSA key is not valid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom RSA keys are not active; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Organization/Repository does not exist, or you do not have permissions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/rsa/regenerate/": { + "post": { + "operationId": "repos_rsa_regenerate", + "summary": "Regenerate RSA Key for the Repository.", + "description": "Regenerate RSA Key for the Repository.", + "responses": { + "200": { + "description": "An RSA key was generated for the Repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRsaKey" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/": { + "get": { + "operationId": "repos_upstream_cargo_list", + "summary": "List Cargo upstream configs for this repository.", + "description": "List Cargo upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_cargo_create", + "summary": "Create a Cargo upstream config for this repository.", + "description": "Create a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cargo/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cargo_read", + "summary": "Retrieve a Cargo upstream config for this repository.", + "description": "Retrieve a Cargo upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_cargo_update", + "summary": "Update a Cargo upstream config for this repository.", + "description": "Update a Cargo upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CargoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_cargo_partial_update", + "summary": "Partially update a Cargo upstream config for this repository.", + "description": "Partially update a Cargo upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_cargo_delete", + "summary": "Delete a Cargo upstream config for this repository.", + "description": "Delete a Cargo upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/": { + "get": { + "operationId": "repos_upstream_composer_list", + "summary": "List Composer upstream configs for this repository.", + "description": "List Composer upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_composer_create", + "summary": "Create a Composer upstream config for this repository.", + "description": "Create a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/composer/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_composer_read", + "summary": "Retrieve a Composer upstream config for this repository.", + "description": "Retrieve a Composer upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_composer_update", + "summary": "Update a Composer upstream config for this repository.", + "description": "Update a Composer upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/ComposerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_composer_partial_update", + "summary": "Partially update a Composer upstream config for this repository.", + "description": "Partially update a Composer upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_composer_delete", + "summary": "Delete a Composer upstream config for this repository.", + "description": "Delete a Composer upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/": { + "get": { + "operationId": "repos_upstream_cran_list", + "summary": "List CRAN upstream configs for this repository.", + "description": "List CRAN upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_cran_create", + "summary": "Create a CRAN upstream config for this repository.", + "description": "Create a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/cran/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_cran_read", + "summary": "Retrieve a CRAN upstream config for this repository.", + "description": "Retrieve a CRAN upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_cran_update", + "summary": "Update a CRAN upstream config for this repository.", + "description": "Update a CRAN upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/CranUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_cran_partial_update", + "summary": "Partially update a CRAN upstream config for this repository.", + "description": "Partially update a CRAN upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_cran_delete", + "summary": "Delete a CRAN upstream config for this repository.", + "description": "Delete a CRAN upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/": { + "get": { + "operationId": "repos_upstream_dart_list", + "summary": "List Dart upstream configs for this repository.", + "description": "List Dart upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_dart_create", + "summary": "Create a Dart upstream config for this repository.", + "description": "Create a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/dart/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_dart_read", + "summary": "Retrieve a Dart upstream config for this repository.", + "description": "Retrieve a Dart upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_dart_update", + "summary": "Update a Dart upstream config for this repository.", + "description": "Update a Dart upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DartUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_dart_partial_update", + "summary": "Partially update a Dart upstream config for this repository.", + "description": "Partially update a Dart upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_dart_delete", + "summary": "Delete a Dart upstream config for this repository.", + "description": "Delete a Dart upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/": { + "get": { + "operationId": "repos_upstream_deb_list", + "summary": "List Debian upstream configs for this repository.", + "description": "List Debian upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_deb_create", + "summary": "Create a Debian upstream config for this repository.", + "description": "Create a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/deb/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_deb_read", + "summary": "Retrieve a Debian upstream config for this repository.", + "description": "Retrieve a Debian upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_deb_update", + "summary": "Update a Debian upstream config for this repository.", + "description": "Update a Debian upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DebUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_deb_partial_update", + "summary": "Partially update a Debian upstream config for this repository.", + "description": "Partially update a Debian upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_deb_delete", + "summary": "Delete a Debian upstream config for this repository.", + "description": "Delete a Debian upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/": { + "get": { + "operationId": "repos_upstream_docker_list", + "summary": "List Docker upstream configs for this repository.", + "description": "List Docker upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_docker_create", + "summary": "Create a Docker upstream config for this repository.", + "description": "Create a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/docker/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_docker_read", + "summary": "Retrieve a Docker upstream config for this repository.", + "description": "Retrieve a Docker upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_docker_update", + "summary": "Update a Docker upstream config for this repository.", + "description": "Update a Docker upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/DockerUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_docker_partial_update", + "summary": "Partially update a Docker upstream config for this repository.", + "description": "Partially update a Docker upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_docker_delete", + "summary": "Delete a Docker upstream config for this repository.", + "description": "Delete a Docker upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/": { + "get": { + "operationId": "repos_upstream_go_list", + "summary": "List Go upstream configs for this repository.", + "description": "List Go upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_go_create", + "summary": "Create a Go upstream config for this repository.", + "description": "Create a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/go/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_go_read", + "summary": "Retrieve a Go upstream config for this repository.", + "description": "Retrieve a Go upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_go_update", + "summary": "Update a Go upstream config for this repository.", + "description": "Update a Go upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/GoUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_go_partial_update", + "summary": "Partially update a Go upstream config for this repository.", + "description": "Partially update a Go upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_go_delete", + "summary": "Delete a Go upstream config for this repository.", + "description": "Delete a Go upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/": { + "get": { + "operationId": "repos_upstream_helm_list", + "summary": "List Helm upstream configs for this repository.", + "description": "List Helm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_helm_create", + "summary": "Create a Helm upstream config for this repository.", + "description": "Create a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/helm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_helm_read", + "summary": "Retrieve a Helm upstream config for this repository.", + "description": "Retrieve a Helm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_helm_update", + "summary": "Update a Helm upstream config for this repository.", + "description": "Update a Helm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HelmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_helm_partial_update", + "summary": "Partially update a Helm upstream config for this repository.", + "description": "Partially update a Helm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_helm_delete", + "summary": "Delete a Helm upstream config for this repository.", + "description": "Delete a Helm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/": { + "get": { + "operationId": "repos_upstream_hex_list", + "summary": "List Hex upstream configs for this repository.", + "description": "List Hex upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_hex_create", + "summary": "Create a Hex upstream config for this repository.", + "description": "Create a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/hex/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_hex_read", + "summary": "Retrieve a Hex upstream config for this repository.", + "description": "Retrieve a Hex upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_hex_update", + "summary": "Update a Hex upstream config for this repository.", + "description": "Update a Hex upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/HexUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_hex_partial_update", + "summary": "Partially update a Hex upstream config for this repository.", + "description": "Partially update a Hex upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_hex_delete", + "summary": "Delete a Hex upstream config for this repository.", + "description": "Delete a Hex upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/": { + "get": { + "operationId": "repos_upstream_maven_list", + "summary": "List Maven upstream configs for this repository.", + "description": "List Maven upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_maven_create", + "summary": "Create a Maven upstream config for this repository.", + "description": "Create a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/maven/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_maven_read", + "summary": "Retrieve a Maven upstream config for this repository.", + "description": "Retrieve a Maven upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_maven_update", + "summary": "Update a Maven upstream config for this repository.", + "description": "Update a Maven upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/MavenUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_maven_partial_update", + "summary": "Partially update a Maven upstream config for this repository.", + "description": "Partially update a Maven upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_maven_delete", + "summary": "Delete a Maven upstream config for this repository.", + "description": "Delete a Maven upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/": { + "get": { + "operationId": "repos_upstream_npm_list", + "summary": "List npm upstream configs for this repository.", + "description": "List npm upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_npm_create", + "summary": "Create a npm upstream config for this repository.", + "description": "Create a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/npm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_npm_read", + "summary": "Retrieve a npm upstream config for this repository.", + "description": "Retrieve a npm upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_npm_update", + "summary": "Update a npm upstream config for this repository.", + "description": "Update a npm upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_npm_partial_update", + "summary": "Partially update a npm upstream config for this repository.", + "description": "Partially update a npm upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_npm_delete", + "summary": "Delete a npm upstream config for this repository.", + "description": "Delete a npm upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/": { + "get": { + "operationId": "repos_upstream_nuget_list", + "summary": "List NuGet upstream configs for this repository.", + "description": "List NuGet upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_nuget_create", + "summary": "Create a NuGet upstream config for this repository.", + "description": "Create a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/nuget/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_nuget_read", + "summary": "Retrieve a NuGet upstream config for this repository.", + "description": "Retrieve a NuGet upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_nuget_update", + "summary": "Update a NuGet upstream config for this repository.", + "description": "Update a NuGet upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/NugetUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_nuget_partial_update", + "summary": "Partially update a NuGet upstream config for this repository.", + "description": "Partially update a NuGet upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_nuget_delete", + "summary": "Delete a NuGet upstream config for this repository.", + "description": "Delete a NuGet upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/": { + "get": { + "operationId": "repos_upstream_python_list", + "summary": "List Python upstream configs for this repository.", + "description": "List Python upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_python_create", + "summary": "Create a Python upstream config for this repository.", + "description": "Create a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/python/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_python_read", + "summary": "Retrieve a Python upstream config for this repository.", + "description": "Retrieve a Python upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_python_update", + "summary": "Update a Python upstream config for this repository.", + "description": "Update a Python upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/PythonUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_python_partial_update", + "summary": "Partially update a Python upstream config for this repository.", + "description": "Partially update a Python upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_python_delete", + "summary": "Delete a Python upstream config for this repository.", + "description": "Delete a Python upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/": { + "get": { + "operationId": "repos_upstream_rpm_list", + "summary": "List RedHat upstream configs for this repository.", + "description": "List RedHat upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_rpm_create", + "summary": "Create a RedHat upstream config for this repository.", + "description": "Create a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/rpm/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_rpm_read", + "summary": "Retrieve a RedHat upstream config for this repository.", + "description": "Retrieve a RedHat upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_rpm_update", + "summary": "Update a RedHat upstream config for this repository.", + "description": "Update a RedHat upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RpmUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_rpm_partial_update", + "summary": "Partially update a RedHat upstream config for this repository.", + "description": "Partially update a RedHat upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_rpm_delete", + "summary": "Delete a RedHat upstream config for this repository.", + "description": "Delete a RedHat upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/": { + "get": { + "operationId": "repos_upstream_ruby_list", + "summary": "List Ruby upstream configs for this repository.", + "description": "List Ruby upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_ruby_create", + "summary": "Create a Ruby upstream config for this repository.", + "description": "Create a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/ruby/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_ruby_read", + "summary": "Retrieve a Ruby upstream config for this repository.", + "description": "Retrieve a Ruby upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_ruby_update", + "summary": "Update a Ruby upstream config for this repository.", + "description": "Update a Ruby upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/RubyUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_ruby_partial_update", + "summary": "Partially update a Ruby upstream config for this repository.", + "description": "Partially update a Ruby upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_ruby_delete", + "summary": "Delete a Ruby upstream config for this repository.", + "description": "Delete a Ruby upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/": { + "get": { + "operationId": "repos_upstream_swift_list", + "summary": "List Swift upstream configs for this repository.", + "description": "List Swift upstream configs for this repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "post": { + "operationId": "repos_upstream_swift_create", + "summary": "Create a Swift upstream config for this repository.", + "description": "Create a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/upstream/swift/{slug_perm}/": { + "get": { + "operationId": "repos_upstream_swift_read", + "summary": "Retrieve a Swift upstream config for this repository.", + "description": "Retrieve a Swift upstream config for this repository.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "put": { + "operationId": "repos_upstream_swift_update", + "summary": "Update a Swift upstream config for this repository.", + "description": "Update a Swift upstream config for this repository.", + "requestBody": { + "$ref": "#/components/requestBodies/SwiftUpstreamRequest" + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repos_upstream_swift_partial_update", + "summary": "Partially update a Swift upstream config for this repository.", + "description": "Partially update a Swift upstream config for this repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstream" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "delete": { + "operationId": "repos_upstream_swift_delete", + "summary": "Delete a Swift upstream config for this repository.", + "description": "Delete a Swift upstream config for this repository.", + "responses": { + "204": { + "description": "No Content" + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-ecdsa/": { + "get": { + "operationId": "repos_x509_ecdsa_list", + "summary": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "description": "Retrieve the active X.509 ECDSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 ECDSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509EcdsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{identifier}/x509-rsa/": { + "get": { + "operationId": "repos_x509_rsa_list", + "summary": "Retrieve the active X.509 RSA certificate for the Repository.", + "description": "Retrieve the active X.509 RSA certificate for the Repository.", + "responses": { + "200": { + "description": "Retrieved the active X.509 RSA Certificate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryX509RsaCertificate" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/retention/": { + "get": { + "operationId": "repo_retention_read", + "summary": "Retrieve the retention rules for the repository.", + "description": "Retrieve the retention rules for the repository.", + "responses": { + "200": { + "description": "Retrieved the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "patch": { + "operationId": "repo_retention_partial_update", + "summary": "Update the retention rules for the repository.", + "description": "Update the retention rules for the repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRulesRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the retention rules for the repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryRetentionRules" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/repos/{owner}/{repo}/transfer-region/": { + "post": { + "operationId": "repos_transfer_region", + "summary": "Transfer a repository to a different region.", + "description": "Transfer a repository to a different region.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryTransferRegionRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Repository region transfer initiated." + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "402": { + "description": "Custom storage regions not available on plan; upgrade your account!", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner, namespace or repository not found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["repos"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/status/check/basic/": { + "get": { + "operationId": "status_check_basic", + "summary": "Endpoint to check basic API connectivity.", + "description": "Endpoint to check basic API connectivity.", + "responses": { + "200": { + "description": "Status check was successful", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatusBasic" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["status"], + "security": [] + }, + "parameters": [] + }, + "/storage-regions/": { + "get": { + "operationId": "storage-regions_list", + "summary": "Get a list of all available storage regions.", + "description": "Get a list of all available storage regions.", + "responses": { + "200": { + "description": "Available storage regions retrieved", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["storage-regions"] + }, + "parameters": [] + }, + "/storage-regions/{slug}/": { + "get": { + "operationId": "storage-regions_read", + "summary": "Get a specific storage region.", + "description": "Get a specific storage region.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StorageRegion" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["storage-regions"] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/user/self/": { + "get": { + "operationId": "user_self", + "summary": "Provide a brief for the current user (if any).", + "description": "Provide a brief for the current user (if any).", + "responses": { + "200": { + "description": "Retrieved brief for the current user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserBrief" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["user"] + }, + "parameters": [] + }, + "/user/token/": { + "post": { + "operationId": "user_token_create", + "summary": "Create or retrieve API token for a user.", + "description": "Handles both:\n- Users authenticating with basic credentials to get a token\n- Two-factor authentication flow", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthTokenRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Retrieved/created user API token/key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "403": { + "description": "Locked out.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Failed to authenticate.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["user"], + "security": [ + { + "basic": [] + } + ] + }, + "parameters": [] + }, + "/user/tokens/": { + "get": { + "operationId": "user_tokens_list", + "summary": "Retrieve the API key assigned to the user that is currently authenticated.", + "description": "Retrieve the API key assigned to the user that is currently authenticated.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "required": ["results"], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } } + } } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["user"] + }, + "post": { + "operationId": "user_tokens_create", + "summary": "Create an API key for the user that is currently authenticated.", + "description": "Create an API key for the user that is currently authenticated.", + "responses": { + "201": { + "description": "Created an API key for the user that is currently authenticated.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "User has already created an API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["user"] + }, + "parameters": [] + }, + "/user/tokens/{slug_perm}/refresh/": { + "put": { + "operationId": "user_tokens_refresh", + "summary": "Refresh the specified API key for the user that is currently authenticated.", + "description": "Refresh the specified API key for the user that is currently authenticated.", + "responses": { + "200": { + "description": "Successfully refreshed the API key.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAuthenticationToken" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "The specified API key cannot be found.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["user"] + }, + "parameters": [ + { + "name": "slug_perm", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/users/profile/{slug}/": { + "get": { + "operationId": "users_profile_read", + "summary": "Provide a brief for the specified user (if any).", + "description": "Provide a brief for the specified user (if any).", + "responses": { + "200": { + "description": "Retrieved details for the specified user (or current user, if none was specified)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfile" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["users"] + }, + "parameters": [ + { + "name": "slug", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/": { + "get": { + "operationId": "vulnerabilities_namespace_list", + "summary": "Lists scan results for a specific namespace.", + "description": "Lists scan results for a specific namespace.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["vulnerabilities"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/": { + "get": { + "operationId": "vulnerabilities_repo_list", + "summary": "Lists scan results for a specific repository.", + "description": "Lists scan results for a specific repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["vulnerabilities"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/": { + "get": { + "operationId": "vulnerabilities_package_list", + "summary": "Lists scan results for a specific package.", + "description": "Lists scan results for a specific package.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScanResultsList" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["vulnerabilities"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/vulnerabilities/{owner}/{repo}/{package}/{identifier}/": { + "get": { + "operationId": "vulnerabilities_read", + "summary": "Get a scan result.", + "description": "Get a scan result.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VulnerabilityScanResults" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["vulnerabilities"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/": { + "get": { + "operationId": "webhooks_list", + "summary": "Get a list of all webhooks in a repository.", + "description": "Get a list of all webhooks in a repository.", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "A page number within the paginated result set.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Number of results to return per page.", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Retrieved the list of webhooks", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["webhooks"] + }, + "post": { + "operationId": "webhooks_create", + "summary": "Create a specific webhook in a repository.", + "description": "Create a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequest" + } + } + } + }, + "responses": { + "201": { + "description": "Created the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["webhooks"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/webhooks/{owner}/{repo}/{identifier}/": { + "get": { + "operationId": "webhooks_read", + "summary": "Views for working with repository webhooks.", + "description": "Views for working with repository webhooks.", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["webhooks"] + }, + "patch": { + "operationId": "webhooks_partial_update", + "summary": "Update a specific webhook in a repository.", + "description": "Update a specific webhook in a repository.", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhookRequestPatch" + } + } + } + }, + "responses": { + "200": { + "description": "Updated the specified webhook", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RepositoryWebhook" + } + } + } + }, + "400": { + "description": "Request could not be processed (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "404": { + "description": "Owner namespace or repository not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["webhooks"] + }, + "delete": { + "operationId": "webhooks_delete", + "summary": "Delete a specific webhook in a repository.", + "description": "Delete a specific webhook in a repository.", + "responses": { + "204": { + "description": "Deleted the specified webhook successfully." + }, + "400": { + "description": "The webhook cannot be deleted.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + }, + "422": { + "description": "Missing or invalid parameters (see detail).", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + } + } + } + } + }, + "tags": ["webhooks"] + }, + "parameters": [ + { + "name": "owner", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "repo", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io" + } + ], + "components": { + "requestBodies": { + "OrganizationPackageLicensePolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageLicensePolicyRequest" + } + } + } + }, + "GoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoPackageUploadRequest" + } + } + } + }, + "CargoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoUpstreamRequest" + } + } + } + }, + "PythonUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonUpstreamRequest" + } + } + } + }, + "SwiftUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftUpstreamRequest" + } + } + } + }, + "NpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmUpstreamRequest" + } + } + } + }, + "SwiftPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SwiftPackageUploadRequest" + } + } + } + }, + "HexUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexUpstreamRequest" + } + } + } + }, + "RubyPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyPackageUploadRequest" + } + } + } + }, + "CargoPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CargoPackageUploadRequest" + } + } + } + }, + "RubyUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RubyUpstreamRequest" + } + } + } + }, + "RpmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmUpstreamRequest" + } + } + } + }, + "MavenUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenUpstreamRequest" + } + } + } + }, + "OrganizationTeamMembers": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationTeamMembers" + } + } + } + }, + "VagrantPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VagrantPackageUploadRequest" + } + } + } + }, + "GoUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoUpstreamRequest" + } + } + } + }, + "ConanPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConanPackageUploadRequest" + } + } + } + }, + "RawPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RawPackageUploadRequest" + } + } + } + }, + "HelmUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmUpstreamRequest" + } + } + } + }, + "NugetUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetUpstreamRequest" + } + } + } + }, + "TerraformPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TerraformPackageUploadRequest" + } + } + } + }, + "PackageFileUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageFileUploadRequest" + } + } + } + }, + "PackageDenyPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PackageDenyPolicyRequest" + } + } + } + }, + "ProviderSettingsRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProviderSettingsRequest" + } + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationPackageVulnerabilityPolicyRequest" + } + } + } + }, + "AlpinePackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlpinePackageUploadRequest" + } + } + } + }, + "CocoapodsPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CocoapodsPackageUploadRequest" + } + } + } + }, + "ComposerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerPackageUploadRequest" + } + } + } + }, + "CondaPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CondaPackageUploadRequest" + } + } + } + }, + "CranPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranPackageUploadRequest" + } + } + } + }, + "DartPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartPackageUploadRequest" + } + } + } + }, + "DebPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebPackageUploadRequest" + } + } + } + }, + "DockerPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerPackageUploadRequest" + } + } + } + }, + "HelmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HelmPackageUploadRequest" + } + } + } + }, + "HexPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HexPackageUploadRequest" + } + } + } + }, + "LuarocksPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LuarocksPackageUploadRequest" + } + } + } + }, + "MavenPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MavenPackageUploadRequest" + } + } + } + }, + "NpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NpmPackageUploadRequest" + } + } + } + }, + "NugetPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NugetPackageUploadRequest" + } + } + } + }, + "P2PackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/P2PackageUploadRequest" + } + } + } + }, + "PythonPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PythonPackageUploadRequest" + } + } + } + }, + "RpmPackageUploadRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RpmPackageUploadRequest" + } + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RespositoryGeoIpEnableDisableRequest" + } + } + } + }, + "ComposerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComposerUpstreamRequest" + } + } + } + }, + "CranUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CranUpstreamRequest" + } + } + } + }, + "DartUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DartUpstreamRequest" + } + } + } + }, + "DebUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DebUpstreamRequest" + } + } + } + }, + "DockerUpstreamRequest": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DockerUpstreamRequest" + } + } + } + } + }, + "securitySchemes": { + "apikey": { + "type": "apiKey", + "name": "X-Api-Key", + "in": "header" + }, + "basic": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "ErrorDetail": { + "required": ["detail"], + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "An extended message for the response.", + "type": "string", + "minLength": 1 + }, + "fields": { + "title": "Fields", + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "GeoIpLocation": { + "required": ["city", "continent", "country", "postal_code"], + "type": "object", + "properties": { + "city": { + "title": "City", + "type": "string", + "minLength": 1, + "nullable": true + }, + "continent": { + "title": "Continent", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country": { + "title": "Country", + "type": "string", + "minLength": 1, + "nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "readOnly": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "format": "decimal", + "nullable": true + }, + "postal_code": { + "title": "Postal code", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "NamespaceAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm", + "target", + "target_kind" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "target_kind": { + "title": "Target kind", + "type": "string", + "minLength": 1 + }, + "target_slug_perm": { + "title": "Target slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 24, + "nullable": true + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "RepositoryAuditLog": { + "required": [ + "actor", + "actor_ip_address", + "actor_location", + "actor_slug_perm", + "context", + "event", + "event_at", + "object", + "object_kind", + "object_slug_perm" + ], + "type": "object", + "properties": { + "actor": { + "title": "Actor", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_ip_address": { + "title": "Actor ip address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_kind": { + "title": "Actor kind", + "type": "string", + "readOnly": true + }, + "actor_location": { + "$ref": "#/components/schemas/GeoIpLocation" + }, + "actor_slug_perm": { + "title": "Actor slug perm", + "type": "string", + "minLength": 1, + "nullable": true + }, + "actor_url": { + "title": "Actor url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "context": { + "title": "Context", + "type": "string", + "minLength": 1 + }, + "event": { + "title": "Event", + "type": "string", + "minLength": 1 + }, + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time" + }, + "object": { + "title": "Object", + "type": "string", + "minLength": 1 + }, + "object_kind": { + "title": "Object kind", + "type": "string", + "minLength": 1 + }, + "object_slug_perm": { + "title": "Object slug perm", + "type": "string", + "minLength": 1 + }, + "uuid": { + "title": "Uuid", + "type": "string", + "format": "uuid", + "readOnly": true + } + } + }, + "PackageVersionBadge": { + "type": "object", + "properties": {} + }, + "DistributionVersion": { + "description": "A list of the versions for this distribution", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The textual name for this version.", + "type": "string", + "maxLength": 64 + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this version", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "DistributionFull": { + "required": ["name"], + "type": "object", + "properties": { + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "versions": { + "description": "A list of the versions for this distribution", + "type": "array", + "items": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "readOnly": true + } + } + }, + "Eula": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "A unique identifier that you can use for your own EULA tracking purposes. This might be a date, or a semantic version, etc. The only requirement is that it is unique across multiple EULAs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "maxLength": 16, + "nullable": true + }, + "number": { + "title": "Number", + "description": "A sequential identifier that increments by one for each new commit in a repository.", + "type": "integer", + "maximum": 2147483647, + "minimum": 0, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryToken": { + "required": ["name"], + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryTokenRequest": { + "required": ["name"], + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSyncRequest": { + "required": ["source"], + "type": "object", + "properties": { + "source": { + "title": "Source", + "description": "The source repository slug (in the same owner namespace).", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenSync": { + "type": "object", + "properties": { + "tokens": { + "description": "The entitlements that have been synchronised.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryToken" + }, + "readOnly": true + } + } + }, + "RepositoryTokenRequestPatch": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenAction": { + "type": "object", + "properties": {} + }, + "RepositoryTokenRefreshRequest": { + "type": "object", + "properties": { + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryTokenRefresh": { + "type": "object", + "properties": { + "clients": { + "title": "Clients", + "type": "integer", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default token for this repository.", + "type": "boolean", + "readOnly": true + }, + "disable_url": { + "title": "Disable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "enable_url": { + "title": "Enable url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "eula_accepted": { + "$ref": "#/components/schemas/Eula" + }, + "eula_accepted_at": { + "title": "Eula accepted at", + "description": "The datetime the EULA was accepted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "eula_accepted_from": { + "title": "Eula accepted from", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "eula_required": { + "title": "Eula required", + "description": "If checked, a EULA acceptance is required for this token.", + "type": "boolean" + }, + "has_limits": { + "title": "Has limits", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Token Active", + "description": "If enabled, the token will allow downloads based on configured restrictions (if any).", + "type": "boolean" + }, + "is_limited": { + "title": "Is limited", + "type": "boolean", + "readOnly": true + }, + "limit_bandwidth": { + "title": "Limit bandwidth", + "description": "The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. ", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_bandwidth_unit": { + "title": "Limit bandwidth unit", + "type": "string", + "enum": [ + "Byte", + "Kilobyte", + "Megabyte", + "Gigabyte", + "Terabyte", + "Petabyte", + "Exabyte", + "Zettabyte", + "Yottabyte" + ], + "default": "Byte", + "nullable": true + }, + "limit_date_range_from": { + "title": "Limit date range from", + "description": "The starting date/time the token is allowed to be used from.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_date_range_to": { + "title": "Limit date range to", + "description": "The ending date/time the token is allowed to be used until.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "limit_num_clients": { + "title": "Limit num clients", + "description": "The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_num_downloads": { + "title": "Limit num downloads", + "description": "The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.", + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "nullable": true + }, + "limit_package_query": { + "title": "Limit package query", + "description": "The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "limit_path_query": { + "title": "Limit path query", + "description": "THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "metadata": { + "title": "Metadata", + "type": "object", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "refresh_url": { + "title": "Refresh url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "reset_url": { + "title": "Reset url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "scheduled_reset_at": { + "title": "Scheduled reset at", + "description": "The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.", + "type": "string", + "format": "date-time", + "nullable": true + }, + "scheduled_reset_period": { + "title": "Scheduled reset period", + "type": "string", + "enum": [ + "Never Reset", + "Daily", + "Weekly", + "Fortnightly", + "Monthly", + "Bi-Monthly", + "Quarterly", + "Every 6 months", + "Annual" + ], + "default": "Never Reset", + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "token": { + "title": "Token", + "type": "string", + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "description": "The datetime the token was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "usage": { + "title": "Usage", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageFileUploadRequest": { + "required": ["filename"], + "type": "object", + "properties": { + "filename": { + "title": "Filename", + "description": "Filename for the package file upload.", + "type": "string", + "minLength": 1 + }, + "md5_checksum": { + "title": "Md5 checksum", + "description": "MD5 checksum for a POST-based package file upload.", + "type": "string", + "maxLength": 32, + "minLength": 32 + }, + "method": { + "title": "Method", + "description": "The method to use for package file upload.", + "type": "string", + "enum": ["put_parts", "put", "post", "presigned", "unsigned_put"], + "default": "post" + }, + "sha256_checksum": { + "title": "Sha256 checksum", + "description": "SHA256 checksum for a PUT-based package file upload.", + "type": "string", + "maxLength": 64, + "minLength": 64 + } + } + }, + "PackageFileUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use when creating packages", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_fields": { + "title": "Upload fields", + "description": "The dictionary of fields that must be sent with POST uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_headers": { + "title": "Upload headers", + "description": "The dictionary of headers that must be sent with uploads", + "type": "object", + "readOnly": true, + "nullable": true + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step POST or PUT upload", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step POST or PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "PackageFilePartsUpload": { + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "description": "The identifier for the file to use uploading parts.", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "upload_querystring": { + "title": "Upload querystring", + "description": "The querystring to use for the next-step PUT upload.", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "upload_url": { + "title": "Upload url", + "description": "The URL to use for the next-step PUT upload", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + } + } + }, + "Distribution": { + "description": "The distributions supported by this package format", + "required": ["name"], + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifier for this distribution", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "variants": { + "title": "Variants", + "type": "string", + "maxLength": 128, + "nullable": true + } + }, + "nullable": true + }, + "FormatSupportUpstream": { + "description": "The upstream support for the package format", + "required": ["auth_modes", "caching", "indexing", "proxying"], + "type": "object", + "properties": { + "auth_modes": { + "description": "The authentication modes supported by the upstream format", + "type": "array", + "items": { + "type": "string", + "enum": ["Username and Password", "Token", "Certificate and Key"], + "default": "Username and Password" + } + }, + "caching": { + "title": "Caching", + "description": "If true the upstream format supports caching", + "type": "boolean" + }, + "indexing": { + "title": "Indexing", + "description": "If true the upstream format supports indexing", + "type": "boolean" + }, + "indexing_behavior": { + "title": "Indexing behavior", + "description": "The behavior of the upstream when indexing", + "type": "string", + "enum": ["Unsupported", "Ahead-of-time (static) indexing", "Just-in-time (dynamic) indexing"], + "default": "Unsupported" + }, + "proxying": { + "title": "Proxying", + "description": "If true the upstream format supports proxying", + "type": "boolean" + }, + "signature_verification": { + "title": "Signature verification", + "description": "The signature verification supported by the upstream format", + "type": "string", + "enum": ["Unsupported", "Repository Metadata", "Packages", "Repository Metadata and Packages"], + "default": "Unsupported" + } + } + }, + "FormatSupport": { + "description": "A set of what the package format supports", + "required": ["dependencies", "distributions", "file_lists", "metadata", "upstreams", "versioning"], + "type": "object", + "properties": { + "dependencies": { + "title": "Dependencies", + "description": "If true the package format supports dependencies", + "type": "boolean" + }, + "distributions": { + "title": "Distributions", + "description": "If true the package format supports distributions", + "type": "boolean" + }, + "file_lists": { + "title": "File lists", + "description": "If true the package format supports file lists", + "type": "boolean" + }, + "metadata": { + "title": "Metadata", + "description": "If true the package format supports metadata", + "type": "boolean" + }, + "upstreams": { + "$ref": "#/components/schemas/FormatSupportUpstream" + }, + "versioning": { + "title": "Versioning", + "description": "If true the package format supports versioning", + "type": "boolean" + } + } + }, + "Format": { + "required": ["description", "extensions", "name", "premium", "slug", "supports"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "Description of the package format", + "type": "string", + "minLength": 1 + }, + "distributions": { + "description": "The distributions supported by this package format", + "type": "array", + "items": { + "$ref": "#/components/schemas/Distribution" + }, + "nullable": true + }, + "extensions": { + "description": "A non-exhaustive list of extensions supported", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "name": { + "title": "Name", + "description": "Name for the package format", + "type": "string", + "minLength": 1 + }, + "premium": { + "title": "Premium", + "description": "If true the package format is a premium-only feature", + "type": "boolean" + }, + "premium_plan_id": { + "title": "Premium plan id", + "description": "The minimum plan id required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "premium_plan_name": { + "title": "Premium plan name", + "description": "The minimum plan name required for this package format", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug": { + "title": "Slug", + "description": "Slug for the package format", + "type": "string", + "minLength": 1 + }, + "supports": { + "$ref": "#/components/schemas/FormatSupport" + } + } + }, + "CommonBandwidthMetricsValue": { + "description": "Average bandwidth usage in the specified period, e.g. a day", + "required": ["display", "value"], + "type": "object", + "properties": { + "display": { + "title": "Display", + "description": "Bandwidth usage value", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "units": { + "title": "Units", + "description": "Unit of measurement e.g. bytes", + "type": "string", + "default": "bytes", + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "Human readable version of display value", + "type": "integer" + } + } + }, + "CommonBandwidthMetrics": { + "required": ["average", "highest", "lowest", "total"], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonBandwidthMetricsValue" + } + } + }, + "CommonDownloadsMetricsValue": { + "required": ["value"], + "type": "object", + "properties": { + "value": { + "title": "Value", + "type": "integer" + } + } + }, + "CommonDownloadsMetrics": { + "required": ["average", "highest", "lowest", "total"], + "type": "object", + "properties": { + "average": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "highest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "lowest": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + }, + "total": { + "$ref": "#/components/schemas/CommonDownloadsMetricsValue" + } + } + }, + "CommonMetrics": { + "required": ["bandwidth", "downloads"], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "Number of packages with at least 1 download", + "type": "integer", + "default": 0 + }, + "bandwidth": { + "$ref": "#/components/schemas/CommonBandwidthMetrics" + }, + "downloads": { + "$ref": "#/components/schemas/CommonDownloadsMetrics" + }, + "inactive": { + "title": "Inactive", + "description": "Packages with zero downloads", + "type": "integer", + "default": 0 + }, + "total": { + "title": "Total", + "description": "Total number of packages in repo", + "type": "integer", + "default": 0 + } + } + }, + "EntitlementUsageMetrics": { + "required": ["tokens"], + "type": "object", + "properties": { + "tokens": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "PackageUsageMetrics": { + "required": ["packages"], + "type": "object", + "properties": { + "packages": { + "$ref": "#/components/schemas/CommonMetrics" + } + } + }, + "Namespace": { + "type": "object", + "properties": { + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "type_name": { + "title": "Type name", + "type": "string", + "readOnly": true + } + } + }, + "Organization": { + "required": ["name"], + "type": "object", + "properties": { + "country": { + "title": "Country", + "type": "string", + "readOnly": true, + "maxLength": 32, + "minLength": 1, + "nullable": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "location": { + "title": "Location", + "description": "The city/town/area your organization is based in.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "A short public descriptive for your organization.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "PackageDenyPolicy": { + "required": ["package_query_string"], + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": ["Block downloads"], + "readOnly": true, + "default": "Block downloads" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], + "readOnly": true, + "default": "In Progress" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "PackageDenyPolicyRequest": { + "required": ["package_query_string"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "PackageDenyPolicyRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "nullable": true + }, + "enabled": { + "title": "Enabled", + "description": "Whether this rule is enabled or disabled.", + "type": "boolean" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "nullable": true + }, + "package_query_string": { + "title": "Package query string", + "description": "Packages that match this query will trigger this deny rule.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamInvite": { + "required": ["team"], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user in the team.", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "OrganizationInvite": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "OrganizationInviteRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationInviteUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Member" + } + } + }, + "OrganizationInviteUpdate": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Member" + } + } + }, + "OrganizationInviteExtend": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "The email of the user to be invited.", + "type": "string", + "format": "email", + "minLength": 1 + }, + "expires_at": { + "title": "Expires at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "inviter": { + "title": "Inviter", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "inviter_url": { + "title": "Inviter url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "org": { + "title": "Org", + "type": "string", + "readOnly": true + }, + "role": { + "title": "Role", + "description": "The role to be assigned to the invited user.", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm of the invite to be extended.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamInvite" + } + }, + "user": { + "title": "User", + "description": "The slug of the user to be invited.", + "type": "string", + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + } + } + }, + "PackageVulnerability": { + "required": ["identifier"], + "type": "object", + "properties": { + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "NestedLicensePolicy": { + "required": ["spdx_identifiers"], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageLicensePolicyViolationLog": { + "required": ["package", "policy", "reasons"], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "OrganizationPackageLicensePolicy": { + "required": ["name", "spdx_identifiers"], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageLicensePolicyRequest": { + "required": ["name", "spdx_identifiers"], + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "PackageLicensePolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedLicensePolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageLicensePolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageLicensePolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_licenses": { + "title": "Allow unknown licenses", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "spdx_identifiers": { + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationMembership": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "is_active": { + "title": "Is active", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": ["Unknown", "Password", "Social", "SAML"], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Public", "Private"], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipRequestPatch": { + "type": "object", + "properties": {} + }, + "OrganizationMembershipRoleUpdateRequestPatch": { + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Owner" + } + } + }, + "OrganizationMembershipRoleUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": ["Unknown", "Password", "Social", "SAML"], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Public", "Private"], + "readOnly": true, + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdateRequestPatch": { + "type": "object", + "properties": { + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Public", "Private"], + "default": "Public" + } + } + }, + "OrganizationMembershipVisibilityUpdate": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "has_two_factor": { + "title": "Has two factor", + "type": "boolean", + "readOnly": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_login_at": { + "title": "Last login at", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "last_login_method": { + "title": "Last login method", + "type": "string", + "enum": ["Unknown", "Password", "Social", "SAML"], + "readOnly": true, + "default": "Unknown" + }, + "role": { + "title": "Role", + "type": "string", + "enum": ["Owner", "Manager", "Member", "Collaborator"], + "readOnly": true, + "default": "Owner" + }, + "user": { + "title": "User", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_id": { + "title": "User id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_name": { + "title": "User name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "user_url": { + "title": "User url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Public", "Private"], + "default": "Public" + } + } + }, + "ProviderSettings": { + "required": ["claims", "enabled", "name", "provider_url", "service_accounts"], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + }, + "slug": { + "title": "Slug", + "description": "The slug of the provider settings", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "description": "The unique, immutable identifier of the provider settings.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + } + } + }, + "ProviderSettingsRequest": { + "required": ["claims", "enabled", "name", "provider_url", "service_accounts"], + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "ProviderSettingsRequestPatch": { + "type": "object", + "properties": { + "claims": { + "title": "Claims", + "description": "The set of claims that any received tokens from the provider must contain to authenticate as the configured service account.", + "type": "object" + }, + "enabled": { + "title": "Enabled", + "description": "Whether the provider settings should be used for incoming OIDC requests.", + "type": "boolean" + }, + "name": { + "title": "Name", + "description": "The name of the provider settings are being configured for", + "type": "string", + "minLength": 1 + }, + "provider_url": { + "title": "Provider url", + "description": "The URL from the provider that serves as the base for the OpenID configuration.\nFor example, if the OpenID configuration is available at https://token.actions.githubusercontent.com/.well-known/openid-configuration, the provider URL would be https://token.actions.githubusercontent.com/", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "service_accounts": { + "description": "The service accounts associated with these provider settings", + "type": "array", + "items": { + "description": "The service accounts associated with these provider settings", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "OrganizationSAMLAuth": { + "required": ["saml_auth_enabled", "saml_auth_enforced"], + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationSAMLAuthRequestPatch": { + "type": "object", + "properties": { + "saml_auth_enabled": { + "title": "Saml auth enabled", + "type": "boolean" + }, + "saml_auth_enforced": { + "title": "Saml auth enforced", + "type": "boolean" + }, + "saml_metadata_inline": { + "title": "Inline SAML metadata", + "description": "If configured, SAML metadata will be used as entered instead of retrieved from a remote URL.", + "type": "string", + "maxLength": 32000 + }, + "saml_metadata_url": { + "title": "Saml metadata url", + "description": "If configured, SAML metadata be retrieved from a remote URL.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + } + } + }, + "OrganizationGroupSync": { + "required": ["idp_key", "idp_value", "team"], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "role": { + "title": "Role", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncRequest": { + "required": ["idp_key", "idp_value", "organization", "team"], + "type": "object", + "properties": { + "idp_key": { + "title": "Idp key", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "idp_value": { + "title": "Idp value", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "organization": { + "title": "Organization", + "type": "string" + }, + "role": { + "title": "Role", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "team": { + "title": "Team", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + } + } + }, + "OrganizationGroupSyncStatus": { + "type": "object", + "properties": { + "saml_group_sync_status": { + "title": "Saml group sync status", + "type": "boolean", + "readOnly": true + } + } + }, + "ServiceTeams": { + "required": ["slug"], + "type": "object", + "properties": { + "role": { + "title": "Role", + "description": "The team role associated with the service", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Manager" + }, + "slug": { + "title": "Slug", + "description": "The teams associated with the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "Service": { + "required": ["name"], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "key": { + "title": "Key", + "description": "The API key of the service", + "type": "string", + "readOnly": true + }, + "key_expires_at": { + "title": "Key expires at", + "description": "The time at which the API key will expire. This will only be populated if the Organization has an active API Key Policy.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "slug": { + "title": "Slug", + "description": "The slug of the service", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequest": { + "required": ["name"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "ServiceRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the service", + "type": "string", + "maxLength": 1024, + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of the service", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "role": { + "title": "Role", + "description": "The role of the service.", + "type": "string", + "enum": ["Manager", "Member"], + "default": "Member" + }, + "teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceTeams" + } + } + } + }, + "OrganizationTeam": { + "required": ["name"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Visible", "Hidden"], + "default": "Visible" + } + } + }, + "OrganizationTeamRequest": { + "required": ["name"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Visible", "Hidden"], + "default": "Visible" + } + } + }, + "OrganizationTeamRequestPatch": { + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 140, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "visibility": { + "title": "Visibility", + "type": "string", + "enum": ["Visible", "Hidden"], + "default": "Visible" + } + } + }, + "OrganizationTeamMembership": { + "description": "The team members", + "required": ["role", "user"], + "type": "object", + "properties": { + "role": { + "title": "Role", + "type": "string", + "enum": ["Manager", "Member"] + }, + "user": { + "title": "User", + "type": "string", + "minLength": 1 + } + } + }, + "OrganizationTeamMembers": { + "required": ["members"], + "type": "object", + "properties": { + "members": { + "description": "The team members", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationTeamMembership" + } + } + } + }, + "NestedVulnerabilityPolicy": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": ["Low", "Medium", "High", "Critical"], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean", + "readOnly": true + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NestedVulnerabilityScanResults": { + "required": ["identifier", "scan_id"], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": ["Unknown", "Low", "Medium", "High", "Critical"], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyViolationLog": { + "required": ["package", "policy", "reasons", "vulnerability_scan_results"], + "type": "object", + "properties": { + "event_at": { + "title": "Event at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "reasons": { + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + }, + "vulnerability_scan_results": { + "$ref": "#/components/schemas/NestedVulnerabilityScanResults" + } + } + }, + "OrganizationPackageVulnerabilityPolicy": { + "required": ["name"], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": ["Low", "Medium", "High", "Critical"], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "OrganizationPackageVulnerabilityPolicyRequest": { + "required": ["name"], + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": ["Low", "Medium", "High", "Critical"], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequest": { + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "evaluation_count": { + "title": "Evaluation count", + "type": "integer", + "readOnly": true + }, + "policy": { + "$ref": "#/components/schemas/NestedVulnerabilityPolicy" + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "status": { + "title": "Status", + "type": "string", + "enum": ["Pending", "In Progress", "Complete", "Cancelled", "Errored"], + "readOnly": true, + "default": "Pending" + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "violation_count": { + "title": "Violation count", + "type": "integer", + "readOnly": true + } + } + }, + "PackageVulnerabilityPolicyEvaluationRequestRequest": { + "type": "object", + "properties": {} + }, + "OrganizationPackageVulnerabilityPolicyRequestPatch": { + "type": "object", + "properties": { + "allow_unknown_severity": { + "title": "Allow unknown severity", + "description": "Denotes whether vulnerabilities detected by a security scan with an unknown severity are permitted by this policy.", + "type": "boolean" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 250, + "minLength": 1, + "nullable": true + }, + "min_severity": { + "title": "Min severity", + "type": "string", + "enum": ["Low", "Medium", "High", "Critical"], + "default": "Critical" + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 100, + "minLength": 1 + }, + "on_violation_quarantine": { + "title": "On violation quarantine", + "type": "boolean" + }, + "package_query_string": { + "title": "Package query string", + "type": "string", + "minLength": 1, + "nullable": true + } + } + }, + "Architecture": { + "required": ["name"], + "type": "object", + "properties": { + "description": { + "title": "Description", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "PackageFile": { + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true, + "nullable": true + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_primary": { + "title": "Is primary", + "type": "boolean", + "readOnly": true + }, + "is_synchronised": { + "title": "Is synchronised", + "type": "boolean", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the file.", + "type": "integer", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "tag": { + "title": "Tag", + "description": "Freeform descriptor that describes what the file is.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "Tags": { + "description": "All tags on the package, grouped by tag type. This includes immutable tags, but doesn't distinguish them from mutable. To see which tags are immutable specifically, see the tags_immutable field.", + "type": "object", + "properties": {} + }, + "Package": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageGroup": { + "required": ["count", "last_push", "num_downloads", "size"], + "type": "object", + "properties": { + "backend_kind": { + "title": "Backend kind", + "type": "integer" + }, + "count": { + "title": "Count", + "type": "integer", + "nullable": true + }, + "last_push": { + "title": "Last push", + "type": "string", + "format": "date-time", + "nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "minLength": 1 + }, + "num_downloads": { + "title": "Num downloads", + "type": "integer", + "nullable": true + }, + "size": { + "title": "Size", + "type": "integer", + "nullable": true + } + } + }, + "AlpinePackageUploadRequest": { + "required": ["distribution", "package_file"], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "AlpinePackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CargoPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CargoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CocoapodsPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CocoapodsPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ComposerPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ComposerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "ConanPackageUploadRequest": { + "required": ["info_file", "manifest_file", "metadata_file", "package_file"], + "type": "object", + "properties": { + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "info_file": { + "title": "Info file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "manifest_file": { + "title": "Manifest file", + "description": "The info file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "metadata_file": { + "title": "Metadata file", + "description": "The conan file is an python file containing the package metadata.", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "ConanPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "conan_channel": { + "title": "Conan channel", + "description": "Conan channel.", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "conan_prefix": { + "title": "Conan prefix", + "description": "Conan prefix (User).", + "type": "string", + "maxLength": 128, + "minLength": 1, + "nullable": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CondaPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CondaPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "CranPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "architecture": { + "title": "Architecture", + "description": "Binary package uploads for macOS should specify the architecture they were built for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "CranPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "r_version": { + "title": "R version", + "description": "Binary package uploads should specify the version of R they were built for.", + "type": "string", + "maxLength": 16, + "minLength": 1, + "nullable": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DartPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DartPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DebPackageUploadRequest": { + "required": ["distribution", "package_file"], + "type": "object", + "properties": { + "changes_file": { + "title": "Changes file", + "description": "The changes archive containing the changes made to the source and debian packaging files", + "type": "string", + "minLength": 1, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component (channel) for the package (e.g. 'main', 'unstable', etc.)", + "type": "string", + "pattern": "^[-_.\\w]+$", + "default": "main", + "maxLength": 64, + "minLength": 1 + }, + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sources_file": { + "title": "Sources file", + "description": "The sources archive containing the source code for the binary", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DebPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "DockerPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "DockerPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "GoPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "GoPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HelmPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provenance_file": { + "title": "Provenance file", + "description": "The provenance file containing the signature for the chart. If one is not provided, it will be generated automatically.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HelmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "HexPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "HexPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "LuarocksPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "LuarocksPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "MavenPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "extra_files": { + "description": "Extra files to include in the package. This can be a single file or multiple files.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "ivy_file": { + "title": "Ivy file", + "description": "The ivy file is an XML file describing the dependencies of the project.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "javadoc_file": { + "title": "Javadoc file", + "description": "Adds bundled Java documentation to the Maven package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "pom_file": { + "title": "Pom file", + "description": "The POM file is an XML file containing the Maven coordinates.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "sources_file": { + "title": "Sources file", + "description": "Adds bundled Java source code to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "tests_file": { + "title": "Tests file", + "description": "Adds bundled Java tests to the Maven package.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "MavenPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "artifact_id": { + "title": "Artifact id", + "description": "The ID of the artifact.", + "type": "string", + "minLength": 1, + "nullable": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "group_id": { + "title": "Group id", + "description": "Artifact's group ID.", + "type": "string", + "maxLength": 2083, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "packaging": { + "title": "Packaging", + "description": "Artifact's Maven packaging type.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "sbt_version": { + "title": "Sbt version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "scala_version": { + "title": "Scala version", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NpmPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "npm_dist_tag": { + "title": "Npm dist tag", + "description": "The default npm dist-tag for this package/version - This will replace any other package/version if they are using the same tag.", + "type": "string", + "default": "latest", + "maxLength": 255, + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "NugetPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "symbols_file": { + "title": "Symbols file", + "description": "Uploads a symbols file as a separate package", + "type": "string", + "minLength": 1, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "NugetPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "P2PackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "P2PackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PythonPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "PythonPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RawPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "content_type": { + "title": "Content/Media Type", + "description": "A custom content/media (also known as MIME) type to be sent when downloading this file. By default Cloudsmith will attempt to detect the type, but if you need to override it, you can specify it here.", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + } + } + }, + "RawPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "maxLength": 12288, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "maxLength": 255, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RpmPackageUploadRequest": { + "required": ["distribution", "package_file"], + "type": "object", + "properties": { + "distribution": { + "title": "Distribution", + "description": "The distribution to store the package for.", + "type": "string", + "minLength": 1 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RpmPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "RubyPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "RubyPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "SwiftPackageUploadRequest": { + "required": ["name", "package_file", "scope", "version"], + "type": "object", + "properties": { + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "SwiftPackageUpload": { + "required": ["name", "scope", "version"], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "author_name": { + "title": "Author name", + "description": "The name of the author of the package.", + "type": "string", + "minLength": 1 + }, + "author_org": { + "title": "Author org", + "description": "The organization of the author.", + "type": "string", + "minLength": 1 + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "license_url": { + "title": "License url", + "description": "The license URL of this package.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "readme_url": { + "title": "Readme url", + "description": "The URL of the readme for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "description": "The URL of the SCM repository for the package.", + "type": "string", + "format": "uri", + "minLength": 1 + }, + "scope": { + "title": "Scope", + "description": "A scope provides a namespace for related packages within the package registry.", + "type": "string", + "maxLength": 39, + "minLength": 1 + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "TerraformPackageUploadRequest": { + "required": ["package_file"], + "type": "object", + "properties": { + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + } + } + }, + "TerraformPackageUpload": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VagrantPackageUploadRequest": { + "required": ["name", "package_file", "provider", "version"], + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "package_file": { + "title": "Package file", + "description": "The primary file for the package.", + "type": "string", + "minLength": 1 + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the uploaded package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + }, + "tags": { + "title": "Tags", + "description": "A comma-separated values list of tags to add to the package.", + "type": "string", + "maxLength": 1024, + "minLength": 1, + "nullable": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + } + } + }, + "VagrantPackageUpload": { + "required": ["name", "provider", "version"], + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "maxLength": 200 + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "provider": { + "title": "Provider", + "description": "The virtual machine provider for the box.", + "type": "string", + "minLength": 1 + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "maxLength": 128 + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageCopyRequest": { + "required": ["destination"], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + }, + "republish": { + "title": "Republish", + "description": "If true, the package will overwrite any others with the same attributes (e.g. same version); otherwise, it will be flagged as a duplicate.", + "type": "boolean" + } + } + }, + "PackageCopy": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be copied to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageDependency": { + "type": "object", + "properties": { + "dep_type": { + "title": "Dep type", + "type": "string", + "enum": [ + "Depends", + "Pre-Depends", + "Recommends", + "Suggests", + "Enhances", + "Replaces", + "Breaks", + "Built-Using", + "Build-Depends", + "Build-Depends-Indep", + "Build-Conflicts", + "Build-Conflicts-Indep", + "Conflicts", + "Provides", + "Obsoletes", + "Requires", + "Runtime", + "Development", + "Compile", + "Provided", + "Test", + "System", + "Import", + "Excluded", + "Build-Requires", + "Python-Requires" + ], + "readOnly": true, + "default": "Depends" + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "maxLength": 255, + "minLength": 1 + }, + "operator": { + "title": "Operator", + "type": "string", + "enum": ["=", "!=", "<", "<<", "<=", ">", ">>", ">=", "~=", "~>", "matches"], + "readOnly": true, + "default": "=", + "nullable": true + }, + "version": { + "title": "Version", + "type": "string", + "readOnly": true, + "maxLength": 128, + "minLength": 1, + "nullable": true + } + } + }, + "PackageDependencies": { + "required": ["dependencies"], + "type": "object", + "properties": { + "dependencies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageDependency" } + } + } + }, + "PackageMoveRequest": { + "required": ["destination"], + "type": "object", + "properties": { + "destination": { + "title": "Destination", + "type": "string", + "minLength": 1 + } + } + }, + "PackageMove": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "description": "The repository the package will be moved to.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageQuarantineRequest": { + "type": "object", + "properties": { + "release": { + "title": "Release", + "description": "If true, the package is released from quarantine.", + "type": "boolean" + }, + "restore": { + "title": "Restore", + "description": "If true, the package is released from quarantine. Note: This field is deprecated, please use 'release' instead.", + "type": "boolean" + } + } + }, + "PackageQuarantine": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageResync": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags": { + "$ref": "#/components/schemas/Tags" + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "PackageStatus": { + "type": "object", + "properties": { + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + } + } + }, + "PackageTagRequest": { + "type": "object", + "properties": { + "action": { + "title": "Action", + "type": "string", + "enum": ["Add", "Clear", "Replace", "Remove"], + "default": "Add", + "nullable": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "tags": { + "description": "A list of tags to apply the action to. Not required for clears.", + "type": "array", + "items": { + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "default": [], + "nullable": true + } + } + }, + "PackageTag": { + "type": "object", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Architecture" + }, + "readOnly": true + }, + "cdn_url": { + "title": "Cdn url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "checksum_md5": { + "title": "Checksum md5", + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "title": "Checksum sha1", + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "title": "Checksum sha256", + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "title": "Checksum sha512", + "type": "string", + "readOnly": true + }, + "dependencies_checksum_md5": { + "title": "Dependencies checksum md5", + "description": "A checksum of all of the package's dependencies.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "dependencies_url": { + "title": "Dependencies url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "description": { + "title": "Description", + "description": "A textual description of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "display_name": { + "title": "Display name", + "type": "string", + "readOnly": true + }, + "distro": { + "$ref": "#/components/schemas/Distribution" + }, + "distro_version": { + "$ref": "#/components/schemas/DistributionVersion" + }, + "downloads": { + "title": "Downloads", + "type": "integer", + "readOnly": true + }, + "epoch": { + "title": "Epoch", + "description": "The epoch of the package version (if any).", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "extended_metadata": { + "title": "Extended metadata", + "description": "The extended metadata for the package, if any.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "extension": { + "title": "Extension", + "type": "string", + "readOnly": true + }, + "filename": { + "title": "Filename", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PackageFile" + }, + "readOnly": true + }, + "format": { + "title": "Format", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "format_url": { + "title": "Format url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "freeable_storage": { + "title": "Freeable storage", + "description": "Amount of storage that will be freed if this package is deleted", + "type": "integer", + "readOnly": true + }, + "fully_qualified_name": { + "title": "Fully qualified name", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "identifier_perm": { + "title": "Identifier perm", + "description": "Unique and permanent identifier for the package.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "identifiers": { + "title": "Identifiers", + "description": "Return a map of identifier field names and their values.", + "type": "object", + "additionalProperties": { + "type": "string", + "nullable": true + }, + "readOnly": true + }, + "indexed": { + "title": "Indexed", + "type": "boolean", + "readOnly": true + }, + "is_cancellable": { + "title": "Is cancellable", + "type": "boolean", + "readOnly": true + }, + "is_copyable": { + "title": "Is copyable", + "type": "boolean", + "readOnly": true + }, + "is_deleteable": { + "title": "Is deleteable", + "type": "boolean", + "readOnly": true + }, + "is_downloadable": { + "title": "Is downloadable", + "type": "boolean", + "readOnly": true + }, + "is_immutable": { + "title": "Is immutable", + "description": "If true, created tags will be immutable. An immutable flag is a tag that cannot be removed from a package.", + "type": "boolean", + "default": false + }, + "is_moveable": { + "title": "Is moveable", + "type": "boolean", + "readOnly": true + }, + "is_quarantinable": { + "title": "Is quarantinable", + "type": "boolean", + "readOnly": true + }, + "is_quarantined": { + "title": "Is quarantined", + "type": "boolean", + "readOnly": true + }, + "is_resyncable": { + "title": "Is resyncable", + "type": "boolean", + "readOnly": true + }, + "is_security_scannable": { + "title": "Is security scannable", + "type": "boolean", + "readOnly": true + }, + "is_sync_awaiting": { + "title": "Is sync awaiting", + "type": "boolean", + "readOnly": true + }, + "is_sync_completed": { + "title": "Is sync completed", + "type": "boolean", + "readOnly": true + }, + "is_sync_failed": { + "title": "Is sync failed", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_flight": { + "title": "Is sync in flight", + "type": "boolean", + "readOnly": true + }, + "is_sync_in_progress": { + "title": "Is sync in progress", + "type": "boolean", + "readOnly": true + }, + "license": { + "title": "License", + "description": "The license of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The name of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "namespace": { + "title": "Namespace", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "namespace_url": { + "title": "Namespace url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "num_files": { + "title": "Num files", + "type": "integer", + "readOnly": true + }, + "origin_repository": { + "title": "Origin repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "origin_repository_url": { + "title": "Origin repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "package_type": { + "title": "Package type", + "description": "The type of package contents.", + "type": "integer", + "enum": [1, 2, 3, 9], + "readOnly": true + }, + "policy_violated": { + "title": "Policy violated", + "description": "Whether or not the package has violated any policy.", + "type": "boolean", + "readOnly": true + }, + "release": { + "title": "Release", + "description": "The release of the package version (if any).", + "type": "string", + "readOnly": true, + "nullable": true + }, + "repository": { + "title": "Repository", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "repository_url": { + "title": "Repository url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "security_scan_completed_at": { + "title": "Security scan completed at", + "description": "The datetime the security scanning was completed.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_started_at": { + "title": "Security scan started at", + "description": "The datetime the security scanning was started.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "security_scan_status": { + "title": "Security scan status", + "type": "string", + "enum": [ + "Awaiting Security Scan", + "Security Scanning in Progress", + "Scan Detected Vulnerabilities", + "Scan Detected No Vulnerabilities", + "Security Scanning Disabled", + "Security Scanning Failed", + "Security Scanning Skipped", + "Security Scanning Not Supported" + ], + "readOnly": true, + "default": "Awaiting Security Scan", + "nullable": true + }, + "security_scan_status_updated_at": { + "title": "Security scan status updated at", + "description": "The datetime the security scanning status was updated.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "self_html_url": { + "title": "Self html url", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "signature_url": { + "title": "Signature url", + "type": "string", + "readOnly": true, + "nullable": true + }, + "size": { + "title": "Size", + "description": "The calculated size of the package.", + "type": "integer", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The public unique identifier for the package.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "stage": { + "title": "Stage", + "description": "The synchronisation (in progress) stage of the package.", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], + "readOnly": true + }, + "stage_str": { + "title": "Stage str", + "type": "string", + "readOnly": true + }, + "stage_updated_at": { + "title": "Stage updated at", + "description": "The datetime the package stage was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "title": "Status", + "description": "The synchronisation status of the package.", + "type": "integer", + "enum": [1, 2, 3, 4, 5, 6, 7], + "readOnly": true + }, + "status_reason": { + "title": "Status reason", + "description": "A textual description for the synchronous status reason (if any", + "type": "string", + "readOnly": true, + "nullable": true + }, + "status_str": { + "title": "Status str", + "type": "string", + "readOnly": true + }, + "status_updated_at": { + "title": "Status updated at", + "description": "The datetime the package status was updated at.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status_url": { + "title": "Status url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "subtype": { + "title": "Subtype", + "type": "string", + "readOnly": true + }, + "summary": { + "title": "Summary", + "description": "A one-liner synopsis of this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "sync_finished_at": { + "title": "Sync finished at", + "description": "The datetime the package sync was finished at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "sync_progress": { + "title": "Sync progress", + "description": "Synchronisation progress (from 0-100)", + "type": "integer", + "readOnly": true + }, + "tags_immutable": { + "$ref": "#/components/schemas/Tags" + }, + "type_display": { + "title": "Type display", + "type": "string", + "readOnly": true + }, + "uploaded_at": { + "title": "Uploaded at", + "description": "The date this package was uploaded.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "uploader": { + "title": "Uploader", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "uploader_url": { + "title": "Uploader url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "version": { + "title": "Version", + "description": "The raw version for this package.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "version_orig": { + "title": "Version orig", + "type": "string", + "readOnly": true + }, + "vulnerability_scan_results_url": { + "title": "Vulnerability scan results url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "Usage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageUsage": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage": { + "title": "Percentage", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "HistoryFieldset": { + "required": ["downloaded", "storage_used", "uploaded"], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/Usage" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsage" + }, + "uploaded": { + "$ref": "#/components/schemas/Usage" + } + } + }, + "UsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageUsageRaw": { + "type": "object", + "properties": { + "limit": { + "title": "Limit", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage": { + "title": "Percentage", + "type": "string", + "format": "decimal" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "HistoryFieldsetRaw": { + "required": ["downloaded", "storage_used", "uploaded"], + "type": "object", + "properties": { + "downloaded": { + "$ref": "#/components/schemas/UsageRaw" + }, + "storage_used": { + "$ref": "#/components/schemas/StorageUsageRaw" + }, + "uploaded": { + "$ref": "#/components/schemas/UsageRaw" + } + } + }, + "History": { + "required": ["display", "end", "plan", "raw", "start"], + "type": "object", + "properties": { + "days": { + "title": "Days", + "type": "integer", + "default": 0 + }, + "display": { + "$ref": "#/components/schemas/HistoryFieldset" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time" + }, + "plan": { + "title": "Plan", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "raw": { + "$ref": "#/components/schemas/HistoryFieldsetRaw" + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + } + } + }, + "QuotaHistory": { + "required": ["history"], + "type": "object", + "properties": { + "history": { + "type": "array", + "items": { + "$ref": "#/components/schemas/History" + } + } + } + }, + "AllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "StorageAllocatedLimit": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "peak": { + "title": "Peak", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "maxLength": 10, + "minLength": 1 + }, + "plan_limit": { + "title": "Plan limit", + "type": "string", + "maxLength": 32, + "minLength": 1 + }, + "used": { + "title": "Used", + "type": "string", + "maxLength": 32, + "minLength": 1 + } + } + }, + "UsageLimits": { + "required": ["bandwidth", "storage"], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimit" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimit" + } + } + }, + "AllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "StorageAllocatedLimitRaw": { + "type": "object", + "properties": { + "configured": { + "title": "Configured", + "type": "integer" + }, + "peak": { + "title": "Peak", + "type": "integer" + }, + "percentage_used": { + "title": "Percentage used", + "type": "string", + "format": "decimal" + }, + "plan_limit": { + "title": "Plan limit", + "type": "integer" + }, + "used": { + "title": "Used", + "type": "integer" + } + } + }, + "UsageLimitsRaw": { + "required": ["bandwidth", "storage"], + "type": "object", + "properties": { + "bandwidth": { + "$ref": "#/components/schemas/AllocatedLimitRaw" + }, + "storage": { + "$ref": "#/components/schemas/StorageAllocatedLimitRaw" + } + } + }, + "UsageFieldset": { + "required": ["display", "raw"], + "type": "object", + "properties": { + "display": { + "$ref": "#/components/schemas/UsageLimits" + }, + "raw": { + "$ref": "#/components/schemas/UsageLimitsRaw" + } + } + }, + "Quota": { + "required": ["usage"], + "type": "object", + "properties": { + "usage": { + "$ref": "#/components/schemas/UsageFieldset" + } + } + }, + "RateCheck": { + "type": "object", + "properties": { + "interval": { + "title": "Interval", + "description": "The time in seconds that you are suggested to wait until the next request in order to avoid consuming too much within the rate limit window.", + "type": "number", + "readOnly": true + }, + "limit": { + "title": "Limit", + "description": "The maximum number of requests that you are permitted to send per hour", + "type": "integer", + "readOnly": true + }, + "remaining": { + "title": "Remaining", + "description": "The number of requests that are remaining in the current rate limit window", + "type": "integer", + "readOnly": true + }, + "reset": { + "title": "Reset", + "description": "The UTC epoch timestamp at which the current rate limit window will reset", + "type": "integer", + "readOnly": true + }, + "reset_iso_8601": { + "title": "Reset iso 8601", + "description": "The ISO 8601 datetime at which the current rate limit window will reset", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "throttled": { + "title": "Throttled", + "description": "If true, throttling is currently being enforced.", + "type": "boolean", + "readOnly": true + } + } + }, + "ResourcesRateCheck": { + "type": "object", + "properties": { + "resources": { + "title": "Resources", + "description": "Rate limit values per resource", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/RateCheck" + }, + "readOnly": true + } + } + }, + "RepositoryEcdsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by ECDSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryGpgKey": { + "required": ["comment"], + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by GPG for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "Repository": { + "required": ["name"], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": ["Standard", "Distribution", "Upstream"], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": ["Admin", "Write", "Read", "None"], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [1, 2, 3], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": ["Public", "Private", "Open-Source"], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "readOnly": true, + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + } + } + }, + "RepositoryCreateRequest": { + "required": ["name"], + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": ["Standard", "Distribution", "Upstream"], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": ["Admin", "Write", "Read", "None"], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": ["Public", "Private", "Open-Source"], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + } + } + }, + "RepositoryCreate": { + "required": ["name"], + "type": "object", + "properties": { + "cdn_url": { + "title": "Cdn url", + "description": "Base URL from which packages and other artifacts are downloaded.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": ["Standard", "Distribution", "Upstream"], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": ["Admin", "Write", "Read", "None"], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "deleted_at": { + "title": "Deleted at", + "description": "The datetime the repository was manually deleted at.", + "type": "string", + "format": "date-time", + "readOnly": true, + "nullable": true + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryEcdsaKey" + }, + "readOnly": true + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGpgKey" + }, + "readOnly": true + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "is_open_source": { + "title": "Is open source", + "type": "boolean", + "readOnly": true + }, + "is_private": { + "title": "Is private", + "type": "boolean", + "readOnly": true + }, + "is_public": { + "title": "Is public", + "type": "boolean", + "readOnly": true + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "namespace": { + "title": "Namespace", + "description": "Namespace to which this repository belongs.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true + }, + "namespace_url": { + "title": "Namespace url", + "description": "API endpoint where data about this namespace can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "num_downloads": { + "title": "Num downloads", + "description": "The number of downloads for packages in the repository.", + "type": "integer", + "readOnly": true + }, + "num_policy_violated_packages": { + "title": "Num policy violated packages", + "description": "Number of packages with policy violations in a repository.", + "type": "integer", + "readOnly": true + }, + "num_quarantined_packages": { + "title": "Num quarantined packages", + "description": "Number of quarantined packages in a repository.", + "type": "integer", + "readOnly": true + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "package_count": { + "title": "Package count", + "description": "The number of packages in the repository.", + "type": "integer", + "readOnly": true + }, + "package_group_count": { + "title": "Package group count", + "description": "The number of groups in the repository.", + "type": "integer", + "readOnly": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type": { + "title": "Repository Type", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Open-Source repositories are always visible to everyone and are restricted by licensing, but are free to use and come with generous bandwidth/storage. You can only select Open-Source at repository creation time.", + "type": "integer", + "enum": [1, 2, 3], + "readOnly": true + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": ["Public", "Private", "Open-Source"], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "self_html_url": { + "title": "Self html url", + "description": "Website URL for this repository.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "self_url": { + "title": "Self url", + "description": "API endpoint where data about this repository can be retrieved.", + "type": "string", + "format": "uri", + "readOnly": true + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "size": { + "title": "Size", + "description": "The calculated size of the repository.", + "type": "integer", + "readOnly": true + }, + "size_str": { + "title": "Size str", + "description": "The calculated size of the repository (human readable).", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + } + } + }, + "RepositoryRequestPatch": { + "type": "object", + "properties": { + "content_kind": { + "title": "Content kind", + "description": "The repository content kind determines whether this repository contains packages, or provides a distribution of packages from other repositories. You can only select the content kind at repository creation time.", + "type": "string", + "enum": ["Standard", "Distribution", "Upstream"], + "default": "Standard" + }, + "contextual_auth_realm": { + "title": "Contextual Authentication Realm?", + "description": "If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tooling such as SBT where the authentication realm is used to distinguish and disambiguate credentials.", + "type": "boolean" + }, + "copy_own": { + "title": "Users Can Copy Own Packages", + "description": "If checked, users can copy any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "copy_packages": { + "title": "Copy packages", + "description": "This defines the minimum level of privilege required for a user to copy packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific copy setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "cosign_signing_enabled": { + "title": "Cosign Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) OCI packages and artifacts will be signed using cosign with the repository's ECDSA key. This generates a distinct cosign signature artifact per artifact.", + "type": "boolean" + }, + "default_privilege": { + "title": "Default privilege", + "description": "This defines the default level of privilege that all of your organization members have for this repository. This does not include collaborators, but applies to any member of the org regardless of their own membership role (i.e. it applies to owners, managers and members). Be careful if setting this to admin, because any member will be able to change settings.", + "type": "string", + "enum": ["Admin", "Write", "Read", "None"], + "default": "None" + }, + "delete_own": { + "title": "Users Can Delete Own Packages", + "description": "If checked, users can delete any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "delete_packages": { + "title": "Delete packages", + "description": "This defines the minimum level of privilege required for a user to delete packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific delete setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "description": { + "title": "Description", + "description": "A description of the repository's purpose/contents.", + "type": "string" + }, + "distributes": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "array", + "items": { + "description": "The repositories distributed through this repo. Adding repos here is only valid if the content_kind is DISTRIBUTION.", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "uniqueItems": true + }, + "docker_refresh_tokens_enabled": { + "title": "Docker Auth Refresh Enabled?", + "description": "If checked, refresh tokens will be issued in addition to access tokens for Docker authentication. This allows unlimited extension of the lifetime of access tokens.", + "type": "boolean" + }, + "enforce_eula": { + "title": "Require EULA acceptance for downloads?", + "description": "If checked, downloads will explicitly require acceptance of an EULA.", + "type": "boolean" + }, + "index_files": { + "title": "Index Files?", + "description": "If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted.", + "type": "boolean" + }, + "manage_entitlements_privilege": { + "title": "Manage entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to manage entitlement tokens with private repositories. Management is the ability to create, alter, enable, disable or delete all tokens without a repository.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "move_own": { + "title": "Users Can Move Own Packages", + "description": "If checked, users can move any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "move_packages": { + "title": "Move packages", + "description": "This defines the minimum level of privilege required for a user to move packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific move setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Admin" + }, + "name": { + "title": "Name", + "description": "A descriptive name for the repository.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50, + "minLength": 1 + }, + "nuget_native_signing_enabled": { + "title": "Nuget Native Signing Enabled?", + "description": "When enabled, all pushed (or pulled from upstream) nuget packages and artifacts will be signed using the repository's X.509 RSA certificate. Additionally, the nuget RepositorySignature index will list all of the repository's signing certificates including the ones from configured upstreams.", + "type": "boolean" + }, + "open_source_license": { + "title": "Open source license", + "description": "The SPDX identifier of the open source license.", + "type": "string", + "nullable": true + }, + "open_source_project_url": { + "title": "Open-Source Project URL", + "description": "The URL to the Open-Source project, used for validating that the project meets the requirements for Open-Source.", + "type": "string", + "format": "uri", + "maxLength": 200, + "nullable": true + }, + "proxy_npmjs": { + "title": "Proxy Npm Packages?", + "description": "If checked, Npm packages that are not in the repository when requested by clients will automatically be proxied from the public npmjs.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "proxy_pypi": { + "title": "Proxy Python Packages?", + "description": "If checked, Python packages that are not in the repository when requested by clients will automatically be proxied from the public pypi.python.org registry. If there is at least one version for a package, others will not be proxied.", + "type": "boolean" + }, + "raw_package_index_enabled": { + "title": "Serve index for raw packages?", + "description": "If checked, HTML and JSON indexes will be generated that list all available raw packages in the repository.", + "type": "boolean" + }, + "raw_package_index_signatures_enabled": { + "title": "Display generated GPG signatures for the raw package index?", + "description": "If checked, the HTML and JSON indexes will display raw package GPG signatures alongside the index packages.", + "type": "boolean" + }, + "replace_packages": { + "title": "Replace packages", + "description": "This defines the minimum level of privilege required for a user to republish packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific republish setting. Please note that the user still requires the privilege to delete packages that will be replaced by the new package; otherwise the republish will fail.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Write" + }, + "replace_packages_by_default": { + "title": "Replace packages by default", + "description": "If checked, uploaded packages will overwrite/replace any others with the same attributes (e.g. same version) by default. This only applies if the user has the required privilege for the republishing AND has the required privilege to delete existing packages that they don't own.", + "type": "boolean" + }, + "repository_type_str": { + "title": "Repository type str", + "description": "The repository type changes how it is accessed and billed. Private repositories are visible only to you or authorized delegates. Public repositories are visible to all Cloudsmith users.", + "type": "string", + "enum": ["Public", "Private", "Open-Source"], + "default": "Public" + }, + "resync_own": { + "title": "Users Can Resync Own Packages", + "description": "If checked, users can resync any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "resync_packages": { + "title": "Resync packages", + "description": "This defines the minimum level of privilege required for a user to resync packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific resync setting.", + "type": "string", + "enum": ["Admin", "Write"], + "default": "Admin" + }, + "scan_own": { + "title": "Users Can Scan Own Packages", + "description": "If checked, users can scan any of their own packages that they have uploaded, assuming that they still have write privilege for the repository. This takes precedence over privileges configured in the 'Access Controls' section of the repository, and any inherited from the org.", + "type": "boolean" + }, + "scan_packages": { + "title": "Scan packages", + "description": "This defines the minimum level of privilege required for a user to scan packages. Unless the package was uploaded by that user, in which the permission may be overridden by the user-specific scan setting.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "show_setup_all": { + "title": "Always show Set Me Up for all formats?", + "description": "If checked, the Set Me Up help for all formats will always be shown, even if you don't have packages of that type uploaded. Otherwise, help will only be shown for packages that are in the repository. For example, if you have uploaded only NuGet packages, then the Set Me Up help for NuGet packages will be shown only.", + "type": "boolean" + }, + "slug": { + "title": "Slug", + "description": "The slug identifies the repository in URIs.", + "type": "string" + }, + "strict_npm_validation": { + "title": "Strict Npm Validation?", + "description": "If checked, npm packages will be validated strictly to ensure the package matches specifcation. You can turn this on if you want to guarantee that the packages will work with npm-cli and other tools correctly.", + "type": "boolean" + }, + "tag_pre_releases_as_latest": { + "title": "Apply Latest Tag for Pre-Release Versions?", + "description": "If checked, packages pushed with a pre-release component on that version will be marked with the 'latest' tag. Note that if unchecked, a repository containing ONLY pre-release versions, will have no version marked latest which may cause incompatibility with native tools ", + "type": "boolean" + }, + "use_debian_labels": { + "title": "Use Debian Labels?", + "description": "If checked, a 'Label' field will be present in Debian-based repositories. It will contain a string that identifies the entitlement token used to authenticate the repository, in the form of 'source=t-'; or 'source=none' if no token was used. You can use this to help with pinning.", + "type": "boolean" + }, + "use_default_cargo_upstream": { + "title": "Use crates.io as default Cargo upstream?", + "description": "If checked, dependencies of uploaded Cargo crates which do not set an explicit value for \"registry\" will be assumed to be available from crates.io. If unchecked, dependencies with unspecified \"registry\" values will be assumed to be available in the registry being uploaded to. Uncheck this if you want to ensure that dependencies are only ever installed from Cloudsmith unless explicitly specified as belong to another registry.", + "type": "boolean" + }, + "use_entitlements_privilege": { + "title": "Use entitlements privilege", + "description": "This defines the minimum level of privilege required for a user to see/use entitlement tokens with private repositories. If a user does not have the permission, they will only be able to download packages using other credentials, such as email/password via basic authentication. Use this if you want to force users to only use their user-based token, which is tied to their access (if removed, they can't use it).", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + }, + "use_noarch_packages": { + "title": "Use/Configure NoArch Packages?", + "description": "If checked, noarch packages (if supported) are enabled in installations/configurations. A noarch package is one that is not tied to specific system architecture (like i686).", + "type": "boolean" + }, + "use_source_packages": { + "title": "Use/Configure Source Packages?", + "description": "If checked, source packages (if supported) are enabled in installations/configurations. A source package is one that contains source code rather than built binaries.", + "type": "boolean" + }, + "use_vulnerability_scanning": { + "title": "Use Vulnerability Scanning?", + "description": "If checked, vulnerability scanning will be enabled for all supported packages within this repository.", + "type": "boolean" + }, + "user_entitlements_enabled": { + "title": "User Entitlements Enabled", + "description": "If checked, users can use and manage their own user-specific entitlement token for the repository (if private). Otherwise, user-specific entitlements are disabled for all users.", + "type": "boolean" + }, + "view_statistics": { + "title": "View statistics", + "description": "This defines the minimum level of privilege required for a user to view repository statistics, to include entitlement-based usage, if applicable. If a user does not have the permission, they won't be able to view any statistics, either via the UI, API or CLI.", + "type": "string", + "enum": ["Admin", "Write", "Read"], + "default": "Read" + } + } + }, + "RepositoryEcdsaKeyCreate": { + "required": ["ecdsa_private_key"], + "type": "object", + "properties": { + "ecdsa_passphrase": { + "title": "Ecdsa passphrase", + "description": "The ECDSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "ecdsa_private_key": { + "title": "Ecdsa private key", + "description": "The ECDSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpCidr": { + "required": ["allow", "deny"], + "type": "object", + "properties": { + "allow": { + "description": "The allowed CIDRs for this repository", + "type": "array", + "items": { + "description": "The allowed CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied CIDRs for this repository", + "type": "array", + "items": { + "description": "The denied CIDRs for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpCountryCode": { + "required": ["allow", "deny"], + "type": "object", + "properties": { + "allow": { + "description": "The allowed country codes for this repository", + "type": "array", + "items": { + "description": "The allowed country codes for this repository", + "type": "string" + }, + "uniqueItems": true + }, + "deny": { + "description": "The denied country codes for this repository", + "type": "array", + "items": { + "description": "The denied country codes for this repository", + "type": "string" + }, + "uniqueItems": true + } + } + }, + "RepositoryGeoIpRules": { + "required": ["cidr", "country_code"], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequest": { + "required": ["cidr", "country_code"], + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RepositoryGeoIpRulesRequestPatch": { + "type": "object", + "properties": { + "cidr": { + "$ref": "#/components/schemas/RepositoryGeoIpCidr" + }, + "country_code": { + "$ref": "#/components/schemas/RepositoryGeoIpCountryCode" + } + } + }, + "RespositoryGeoIpEnableDisableRequest": { + "type": "object", + "properties": {} + }, + "RespositoryGeoIpEnableDisable": { + "type": "object", + "properties": {} + }, + "RepositoryGeoIpStatus": { + "type": "object", + "properties": { + "geoip_enabled": { + "title": "Geo/IP Restriction Enabled?", + "description": "If checked, any access to the website or downloads for this repository is allowed/denied according to the configured Geo/IP restriction rules.", + "type": "boolean", + "readOnly": true + } + } + }, + "RepositoryGeoIpTestAddress": { + "required": ["addresses"], + "type": "object", + "properties": { + "addresses": { + "description": "The IP addresses to test against this repository", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + } + } + } + }, + "RepositoryGeoIpTestAddressResponseDict": { + "required": ["allowed", "country_code", "ip_address", "reason"], + "type": "object", + "properties": { + "allowed": { + "title": "Allowed", + "description": "The result of the IP test", + "type": "boolean" + }, + "country_code": { + "title": "Country code", + "description": "The country code of the tested IP address", + "type": "string", + "minLength": 1, + "nullable": true + }, + "ip_address": { + "title": "Ip address", + "description": "The IP address that was tested", + "type": "string", + "minLength": 1 + }, + "reason": { + "title": "Reason", + "description": "The reason for the result", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryGeoIpTestAddressResponse": { + "required": ["addresses"], + "type": "object", + "properties": { + "addresses": { + "description": "The IP address test results ordered by allowed", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryGeoIpTestAddressResponseDict" + } + } + } + }, + "RepositoryGpgKeyCreate": { + "required": ["gpg_private_key"], + "type": "object", + "properties": { + "gpg_passphrase": { + "title": "Gpg passphrase", + "description": "The GPG passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "gpg_private_key": { + "title": "Gpg private key", + "description": "The GPG private key.", + "type": "string", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeDict": { + "required": ["privilege"], + "type": "object", + "properties": { + "privilege": { + "title": "Privilege", + "description": "The level of privilege that the user or team should be granted to the specified repository.", + "type": "string", + "enum": ["Admin", "Write", "Read"] + }, + "service": { + "title": "Service", + "description": "The service identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "team": { + "title": "Team", + "description": "The team identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + }, + "user": { + "title": "User", + "description": "The user identifier (slug).", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "minLength": 1 + } + } + }, + "RepositoryPrivilegeInput": { + "required": ["privileges"], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequest": { + "required": ["privileges"], + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryPrivilegeInputRequestPatch": { + "type": "object", + "properties": { + "privileges": { + "description": "List of objects with explicit privileges to the repository.", + "type": "array", + "items": { + "$ref": "#/components/schemas/RepositoryPrivilegeDict" + } + } + } + }, + "RepositoryRsaKey": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "fingerprint": { + "title": "Fingerprint", + "description": "The long identifier used by RSA for this key.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "fingerprint_short": { + "title": "Fingerprint short", + "type": "string", + "readOnly": true + }, + "public_key": { + "title": "Public key", + "description": "The public key given to repository users.", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "ssh_fingerprint": { + "title": "Ssh fingerprint", + "description": "The SSH fingerprint used by RSA for this key.", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "RepositoryRsaKeyCreate": { + "required": ["rsa_private_key"], + "type": "object", + "properties": { + "rsa_passphrase": { + "title": "Rsa passphrase", + "description": "The RSA passphrase used for signing.", + "type": "string", + "minLength": 1 + }, + "rsa_private_key": { + "title": "Rsa private key", + "description": "The RSA private key.", + "type": "string", + "minLength": 1 + } + } + }, + "CargoUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CargoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "ComposerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "CranUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DartUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstream": { + "required": ["distro_versions", "name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequest": { + "required": ["distro_versions", "name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DebUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "component": { + "title": "Component", + "description": "The component to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1 + }, + "distro_versions": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "array", + "items": { + "description": "The distribution version that packages found on this upstream could be associated with.", + "type": "string" + }, + "uniqueItems": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When true, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_distribution": { + "title": "Upstream distribution", + "description": "The distribution to fetch from the upstream", + "type": "string", + "maxLength": 64, + "minLength": 1, + "nullable": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Certificate and Key"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Certificate and Key"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "DockerUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_certificate": { + "title": "Auth certificate", + "description": "X.509 Certificate to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_certificate_key": { + "title": "Auth certificate key", + "description": "Certificate key to use for mTLS authentication against the upstream", + "type": "string", + "minLength": 1 + }, + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Certificate and Key"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "GoUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HelmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "HexUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "MavenUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy", "Cache Only"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Token"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Token"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password", "Token"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "NugetUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "PythonUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstream": { + "required": ["distro_version", "name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verification_status": { + "title": "Verification status", + "description": "The signature verification status for this upstream.", + "type": "string", + "enum": ["Unknown", "Invalid", "Valid", "Invalid (No Key)"], + "readOnly": true, + "default": "Unknown" + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequest": { + "required": ["distro_version", "name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RpmUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "distro_version": { + "title": "Distro version", + "description": "The distribution version that packages found on this upstream will be associated with.", + "type": "string" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "gpg_key_inline": { + "title": "GPG Key", + "description": "A public GPG key to associate with packages found on this upstream. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "nullable": true + }, + "gpg_key_url": { + "title": "GPG Key URL", + "description": "When provided, Cloudsmith will fetch, validate, and associate a public GPG key found at the provided URL. When using the Cloudsmith setup script, this GPG key will be automatically imported on your deployment machines to allow upstream packages to validate and install.", + "type": "string", + "format": "uri", + "maxLength": 254, + "nullable": true + }, + "gpg_verification": { + "title": "Gpg verification", + "description": "The GPG signature verification mode for this upstream.", + "type": "string", + "enum": ["Allow All", "Warn on Invalid", "Reject Invalid"], + "default": "Allow All" + }, + "include_sources": { + "title": "Source Packages", + "description": "When checked, source packages will be available from this upstream.", + "type": "boolean" + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RubyUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstream": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "created_at": { + "title": "Created at", + "description": "The datetime the upstream source was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "string", + "enum": [ + "N/A", + "Upstream points to its own repository", + "Missing upstream source", + "Upstream was disabled by request of user" + ], + "readOnly": true, + "default": "N/A" + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "pending_validation": { + "title": "Pending validation", + "description": "When true, this upstream source is pending validation.", + "type": "boolean", + "readOnly": true + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequest": { + "required": ["name", "upstream_url"], + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "SwiftUpstreamRequestPatch": { + "type": "object", + "properties": { + "auth_mode": { + "title": "Auth mode", + "description": "The authentication mode to use when accessing this upstream. ", + "type": "string", + "enum": ["None", "Username and Password"], + "default": "None" + }, + "auth_secret": { + "title": "Secret", + "description": "Secret to provide with requests to upstream.", + "type": "string", + "maxLength": 4096, + "nullable": true + }, + "auth_username": { + "title": "Username", + "description": "Username to provide with requests to upstream.", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "extra_header_1": { + "title": "Header #1", + "description": "The key for extra header #1 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_header_2": { + "title": "Header #2", + "description": "The key for extra header #2 to send to upstream.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "extra_value_1": { + "title": "Value #1", + "description": "The value for extra header #1 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "extra_value_2": { + "title": "Value #2", + "description": "The value for extra header #2 to send to upstream. This is stored as plaintext, and is NOT encrypted.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 128, + "nullable": true + }, + "is_active": { + "title": "Is active", + "description": "Whether or not this upstream is active and ready for requests.", + "type": "boolean" + }, + "mode": { + "title": "Mode", + "description": "The mode that this upstream should operate in. Upstream sources can be used to proxy resolved packages, as well as operate in a proxy/cache or cache only mode.", + "type": "string", + "enum": ["Proxy Only", "Cache and Proxy"], + "default": "Proxy Only" + }, + "name": { + "title": "Name", + "description": "A descriptive name for this upstream source. A shortened version of this name will be used for tagging cached packages retrieved from this upstream.", + "type": "string", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 64, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "description": "Upstream sources are selected for resolving requests by sequential order (1..n), followed by creation date.", + "type": "integer", + "maximum": 32767, + "minimum": 1 + }, + "upstream_url": { + "title": "Upstream URL", + "description": "The URL for this upstream source. This must be a fully qualified URL including any path elements required to reach the root of the repository. ", + "type": "string", + "format": "uri", + "maxLength": 200, + "minLength": 1 + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates are verified when requests are made to this upstream. It's recommended to leave this enabled for all public sources to help mitigate Man-In-The-Middle (MITM) attacks. Please note this only applies to HTTPS upstreams.", + "type": "boolean" + } + } + }, + "RepositoryX509EcdsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryX509RsaCertificate": { + "type": "object", + "properties": { + "active": { + "title": "Active", + "description": "If selected this is the active key for this repository.", + "type": "boolean", + "readOnly": true + }, + "certificate": { + "title": "Certificate", + "description": "The issued certificate.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain": { + "title": "Certificate chain", + "description": "Base64 encoded CA certificate chain.", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_chain_fingerprint": { + "title": "Certificate chain fingerprint", + "type": "string", + "readOnly": true + }, + "certificate_chain_fingerprint_short": { + "title": "Certificate chain fingerprint short", + "type": "string", + "readOnly": true + }, + "certificate_fingerprint": { + "title": "Certificate fingerprint", + "description": "The SHA-256 long identifier used", + "type": "string", + "readOnly": true, + "nullable": true + }, + "certificate_fingerprint_short": { + "title": "Certificate fingerprint short", + "type": "string", + "readOnly": true + }, + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "default": { + "title": "Default", + "description": "If selected this is the default key for this repository.", + "type": "boolean", + "readOnly": true + }, + "issuing_status": { + "title": "Issuing status", + "type": "string", + "enum": [ + "Certificate is pending to be issued", + "Certificate successfully issued", + "Error issuing certificate" + ], + "default": "Certificate is pending to be issued" + } + } + }, + "RepositoryRetentionRules": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryRetentionRulesRequestPatch": { + "type": "object", + "properties": { + "retention_count_limit": { + "title": "Retention count limit", + "description": "The maximum X number of packages to retain.", + "type": "integer", + "maximum": 10000, + "minimum": 0 + }, + "retention_days_limit": { + "title": "Retention days limit", + "description": "The X number of days of packages to retain.", + "type": "integer", + "maximum": 180, + "minimum": 0 + }, + "retention_enabled": { + "title": "Retention Enabled?", + "description": "If checked, the retention lifecycle rules will be activated for the repository. Any packages that don't match will be deleted automatically, and the rest are retained.", + "type": "boolean" + }, + "retention_group_by_format": { + "title": "Retention group by format", + "description": "If checked, retention will apply to packages by package formats rather than across all package formats.For example, when retaining by a limit of 1 and you upload PythonPkg 1.0 and RubyPkg 1.0, no packages are deleted because they are different formats.", + "type": "boolean" + }, + "retention_group_by_name": { + "title": "Retention Group By Name?", + "description": "If checked, retention will apply to groups of packages by name rather than all packages.
    For example, when retaining by a limit of 1 and you upload PkgA 1.0, PkgB 1.0 and PkgB 1.1; only PkgB 1.0 is deleted because there are two (2) PkgBs and one (1) PkgA.", + "type": "boolean" + }, + "retention_group_by_package_type": { + "title": "Retention Group By Package Type?", + "description": "If checked, retention will apply to packages by package type (e.g. by binary, by source, etc.), rather than across all package types for one or more formats.
    For example, when retaining by a limit of 1 and you upload DebPackage 1.0 and DebSourcePackage 1.0, no packages are deleted because they are different package types, binary and source respectively.", + "type": "boolean" + }, + "retention_package_query_string": { + "title": "Retention package query string", + "description": "A package search expression which, if provided, filters the packages to be deleted.
    For example, a search expression of `name:foo` will result in only packages called 'foo' being deleted, or a search expression of `tag:~latest` will prevent any packages tagged 'latest' from being deleted.
    Refer to the Cloudsmith documentation for package query syntax.", + "type": "string", + "nullable": true + }, + "retention_size_limit": { + "title": "Retention size limit", + "description": "The maximum X total size (in bytes) of packages to retain.", + "type": "integer", + "maximum": 21474836480, + "minimum": 0 + } + } + }, + "RepositoryTransferRegionRequest": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "RepositoryTransferRegion": { + "type": "object", + "properties": { + "storage_region": { + "title": "Storage region", + "description": "The Cloudsmith region in which package files are stored.", + "type": "string", + "default": "default" + } + } + }, + "StatusBasic": { + "type": "object", + "properties": { + "detail": { + "title": "Detail", + "description": "The message describing the state of the API.", + "type": "string", + "readOnly": true, + "default": "Cloudsmith API is operational.", + "minLength": 1 + }, + "version": { + "title": "Version", + "description": "The current version for the Cloudsmith service.", + "type": "string", + "readOnly": true, + "default": "1.729.1", + "minLength": 1 + } + } + }, + "StorageRegion": { + "required": ["label", "slug"], + "type": "object", + "properties": { + "label": { + "title": "Label", + "description": "Name of the storage region", + "type": "string", + "minLength": 1 + }, + "slug": { + "title": "Slug", + "description": "Slug for the storage region", + "type": "string", + "minLength": 1 + } + } + }, + "UserBrief": { + "type": "object", + "properties": { + "authenticated": { + "title": "Authenticated", + "description": "If true then you're logged in as a user.", + "type": "boolean", + "readOnly": true + }, + "email": { + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "type": "string", + "format": "email", + "maxLength": 254, + "minLength": 1, + "nullable": true + }, + "name": { + "title": "Name", + "description": "The full name of the user (if any).", + "type": "string", + "readOnly": true, + "minLength": 1, + "nullable": true + }, + "profile_url": { + "title": "Profile url", + "description": "The URL for the full profile of the user.", + "type": "string", + "format": "uri", + "readOnly": true, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true, + "nullable": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true, + "nullable": true + } + } + }, + "UserAuthTokenRequest": { + "type": "object", + "properties": { + "email": { + "title": "Email", + "description": "Email address to authenticate with", + "type": "string", + "format": "email", + "minLength": 1 + }, + "password": { + "title": "Password", + "description": "Password to authenticate with", + "type": "string", + "minLength": 1 + }, + "totp_token": { + "title": "Two-factor code", + "description": "Two-factor authentication code", + "type": "string", + "minLength": 1 + } + } + }, + "UserAuthToken": { + "type": "object", + "properties": { + "token": { + "title": "Token", + "description": "API token for the authenticated user", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "two_factor_required": { + "title": "Two factor required", + "description": "Flag indicating whether a 2FA code is required to complete authentication", + "type": "boolean", + "readOnly": true + }, + "two_factor_token": { + "title": "Two factor token", + "description": "Token to use when providing 2FA code", + "type": "string", + "readOnly": true, + "minLength": 1 + } + } + }, + "UserAuthenticationToken": { + "type": "object", + "properties": { + "created": { + "title": "Created", + "description": "The time at which the API key was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "key": { + "title": "Key", + "description": "The unique API key used for authentication. This will be obfuscated on read-only HTTP methods.", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "description": "The slug_perm for token.", + "type": "string", + "readOnly": true + } + } + }, + "UserProfile": { + "required": ["first_name", "last_name"], + "type": "object", + "properties": { + "company": { + "title": "Company", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "first_name": { + "title": "First name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "job_title": { + "title": "Job title", + "type": "string", + "maxLength": 64, + "nullable": true + }, + "joined_at": { + "title": "Joined at", + "type": "string", + "format": "date-time" + }, + "last_name": { + "title": "Last name", + "type": "string", + "maxLength": 120, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "slug": { + "title": "Slug", + "type": "string", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "readOnly": true + }, + "tagline": { + "title": "Tagline", + "description": "Your tagline is a sentence about you. Make it funny. Make it professional. Either way, it's public and it represents who you are.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + } + } + }, + "VulnerabilityScanResultsList": { + "required": ["identifier", "package", "scan_id"], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": ["Unknown", "Low", "Medium", "High", "Critical"], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + } + } + }, + "VulnerabilityScanVersion": { + "required": ["major", "minor", "patch"], + "type": "object", + "properties": { + "major": { + "title": "Major", + "type": "integer" + }, + "minor": { + "title": "Minor", + "type": "integer" + }, + "operator": { + "title": "Operator", + "type": "string", + "default": "", + "maxLength": 32, + "minLength": 1 + }, + "patch": { + "title": "Patch", + "type": "integer" + }, + "raw_version": { + "title": "Raw version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + }, + "version": { + "title": "Version", + "type": "string", + "default": "", + "maxLength": 1024, + "minLength": 1 + } + } + }, + "Vulnerability": { + "required": [ + "affected_version", + "description", + "fixed_version", + "package_name", + "references", + "severity_source", + "title", + "vulnerability_id" + ], + "type": "object", + "properties": { + "affected_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 1028, + "minLength": 1 + }, + "fixed_version": { + "$ref": "#/components/schemas/VulnerabilityScanVersion" + }, + "package_name": { + "title": "Package name", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "references": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + } + }, + "severity": { + "title": "Severity", + "type": "string", + "enum": ["Unknown", "Low", "Medium", "High", "Critical"], + "default": "Unknown" + }, + "severity_source": { + "title": "Severity source", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "vulnerability_id": { + "title": "Vulnerability id", + "type": "string", + "maxLength": 13, + "minLength": 1 + } + } + }, + "VulnerabilityScan": { + "required": ["results", "target", "type"], + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Vulnerability" + } + }, + "target": { + "title": "Target", + "type": "string", + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "minLength": 1 + } + } + }, + "VulnerabilityScanResults": { + "required": ["identifier", "package", "scan_id", "scans"], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "description": "The time this scan result was stored.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "has_vulnerabilities": { + "title": "Has vulnerabilities", + "description": "Do the results contain any known vulnerabilities?", + "type": "boolean", + "readOnly": true + }, + "identifier": { + "title": "Identifier", + "type": "string", + "minLength": 1 + }, + "max_severity": { + "title": "Max severity", + "type": "string", + "enum": ["Unknown", "Low", "Medium", "High", "Critical"], + "default": "Unknown" + }, + "num_vulnerabilities": { + "title": "Num vulnerabilities", + "type": "integer", + "default": 0 + }, + "package": { + "$ref": "#/components/schemas/PackageVulnerability" + }, + "scan_id": { + "title": "Scan id", + "description": "Deprecated (23-05-15): Please use 'identifier' instead. Previously: A monotonically increasing number that identified a scan within a repository.", + "type": "integer", + "nullable": true + }, + "scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VulnerabilityScan" + } + } + } + }, + "WebhookTemplate": { + "required": ["event"], + "type": "object", + "properties": { + "event": { + "title": "Event", + "type": "string", + "maxLength": 128, + "minLength": 1 + }, + "template": { + "title": "Template", + "type": "string", + "maxLength": 4096, + "nullable": true + } + }, + "nullable": true + }, + "RepositoryWebhook": { + "required": ["events", "target_url", "templates"], + "type": "object", + "properties": { + "created_at": { + "title": "Created at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "created_by_url": { + "title": "Created by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "disable_reason": { + "title": "Disable reason", + "type": "integer", + "enum": [0, 1, 2, 3, 4, 5, 6], + "readOnly": true + }, + "disable_reason_str": { + "title": "Disable reason str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "identifier": { + "title": "Identifier", + "description": "Deprecated (23-05-15): Please use 'slug_perm' instead. Previously: A monotonically increasing number that identified a webhook request within a repository.", + "type": "integer", + "readOnly": true, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "is_last_response_bad": { + "title": "Is last response bad", + "type": "boolean", + "readOnly": true + }, + "last_response_status": { + "title": "Last response status", + "type": "integer", + "readOnly": true + }, + "last_response_status_str": { + "title": "Last response status str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "num_sent": { + "title": "Num sent", + "type": "integer", + "readOnly": true + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [0, 1, 2, 3] + }, + "request_body_format_str": { + "title": "Request body format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [0, 1, 2] + }, + "request_body_template_format_str": { + "title": "Request body template format str", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "self_url": { + "title": "Self url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug_perm": { + "title": "Slug perm", + "type": "string", + "format": "slug", + "pattern": "^[-a-zA-Z0-9_]+$", + "readOnly": true, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "updated_at": { + "title": "Updated at", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updated_by": { + "title": "Updated by", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "updated_by_url": { + "title": "Updated by url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequest": { + "required": ["events", "target_url", "templates"], + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [0, 1, 2, 3] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [0, 1, 2] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } + } + }, + "RepositoryWebhookRequestPatch": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "*", + "package.created", + "package.deleted", + "package.downloaded", + "package.failed", + "package.quarantined", + "package.released", + "package.restored", + "package.security_scanned", + "package.synced", + "package.syncing", + "package.tags_updated" + ] + }, + "nullable": true + }, + "is_active": { + "title": "Webhook Active", + "description": "If enabled, the webhook will trigger on subscribed events and send payloads to the configured target URL.", + "type": "boolean" + }, + "package_query": { + "title": "Package query", + "description": "The package-based search query for webhooks to fire. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. If a package does not match, the webhook will not fire.", + "type": "string", + "maxLength": 1024, + "nullable": true + }, + "request_body_format": { + "title": "Payload Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) JSON, (1) JSON array, (2) form encoded JSON and (3) Handlebars template.", + "type": "integer", + "enum": [0, 1, 2, 3] + }, + "request_body_template_format": { + "title": "Payload Template Format", + "description": "The format of the payloads for webhook requests. Valid options are: (0) Generic/user defined, (1) JSON and (2) XML.", + "type": "integer", + "enum": [0, 1, 2] + }, + "request_content_type": { + "title": "Content Type Header Value", + "description": "The value that will be sent for the 'Content Type' header. ", + "type": "string", + "maxLength": 128, + "nullable": true + }, + "secret_header": { + "title": "Secret Header", + "description": "The header to send the predefined secret in. This must be unique from existing headers or it won't be sent. You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[-\\w]+$", + "maxLength": 64, + "nullable": true + }, + "secret_value": { + "title": "Secret Value", + "description": "The value for the predefined secret (note: this is treated as a passphrase and is encrypted when we store it). You can use this as a form of authentication on the endpoint side.", + "type": "string", + "pattern": "^[^\\n\\r]+$", + "maxLength": 512, + "nullable": true + }, + "signature_key": { + "title": "HMAC Signature Key", + "description": "The value for the signature key - This is used to generate an HMAC-based hex digest of the request body, which we send as the X-Cloudsmith-Signature header so that you can ensure that the request wasn't modified by a malicious party (note: this is treated as a passphrase and is encrypted when we store it).", + "type": "string", + "maxLength": 512, + "minLength": 1 + }, + "target_url": { + "title": "Payload URL", + "description": "The destination URL that webhook payloads will be POST'ed to.", + "type": "string", + "format": "uri", + "maxLength": 255, + "minLength": 1 + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookTemplate" + }, + "nullable": true + }, + "verify_ssl": { + "title": "Verify SSL Certificates", + "description": "If enabled, SSL certificates is verified when webhooks are sent. It's recommended to leave this enabled as not verifying the integrity of SSL certificates leaves you susceptible to Man-in-the-Middle (MITM) attacks.", + "type": "boolean" + } } + } } -} \ No newline at end of file + } +} diff --git a/src/content/schemas/api-schema-v2.json b/src/content/schemas/api-schema-v2.json index 723b0a69..e072a09d 100644 --- a/src/content/schemas/api-schema-v2.json +++ b/src/content/schemas/api-schema-v2.json @@ -1,2627 +1,2487 @@ { - "openapi": "3.0.3", - "info": { - "title": "Cloudsmith API", - "version": "1.729.1 (v2)", - "description": "The API to the Cloudsmith Service", - "termsOfService": "https://help.cloudsmith.io/docs/legal-policies-overview", - "contact": { - "email": "support@cloudsmith.io", - "name": "Cloudsmith Support", - "url": "https://help.cloudsmith.io/" - }, - "license": { - "name": "MIT", - "url": "https://opensource.org/licenses/MIT" - } + "openapi": "3.0.3", + "info": { + "title": "Cloudsmith API", + "version": "1.729.1 (v2)", + "versionAlias": "v2", + "description": "The API to the Cloudsmith Service", + "termsOfService": "https://help.cloudsmith.io/docs/legal-policies-overview", + "contact": { + "email": "support@cloudsmith.io", + "name": "Cloudsmith Support", + "url": "https://help.cloudsmith.io/" }, - "paths": { - "/workspaces/{workspace}/policies/": { - "get": { - "operationId": "workspaces_policies_list", - "description": "List policies.", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "A page number within the paginated result set.", - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "required": false, - "in": "query", - "description": "Number of results to return per page.", - "schema": { - "type": "integer" - } - }, - { - "in": "query", - "name": "query", - "schema": { - "type": "string" - }, - "description": "A search string to limit results by name. Legal fields are: `name`. Boolean operators may be used to construct intricate queries. Omitting boolean operators is interpreted as an implicit `AND`.", - "examples": { - "PoliciesNamedFooOrBar": { - "value": "name: foo OR name: bar", - "summary": "Policies named foo or bar" - } - } - }, - { - "in": "query", - "name": "sort", - "schema": { - "type": "string", - "default": "-created_at" - }, - "description": "A comma-separated string of fields to sort by. Legal fields are: `created_at`, `name`, `version`, `updated_at`. Descending order can be expressed by prepending `-` to a field name.", - "examples": { - "`version`Descending,`updatedAt`Ascending": { - "value": "-version,updated_at", - "summary": "`version` descending, `updated_at` ascending" - } - } - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedPolicyList" - } - } - }, - "description": "" - } - } + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + } + }, + "paths": { + "/workspaces/{workspace}/policies/": { + "get": { + "operationId": "workspaces_policies_list", + "description": "List policies.", + "parameters": [ + { + "name": "page", + "required": false, + "in": "query", + "description": "A page number within the paginated result set.", + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "required": false, + "in": "query", + "description": "Number of results to return per page.", + "schema": { + "type": "integer" + } + }, + { + "in": "query", + "name": "query", + "schema": { + "type": "string" }, - "post": { - "operationId": "workspaces_policies_create", - "description": "Create a policy.", - "parameters": [ - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "required": true - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "description": "" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - }, - "examples": { - "MaxPoliciesReached": { - "value": { - "detail": "Invalid input.", - "code": "invalid", - "fields": { - "non_field_errors": [ - { - "string": "Maximum number of policies reached.", - "code": "max_policies_reached" - } - ] - } - }, - "summary": "Max Policies Reached", - "description": "Occurs when the number of repositories associated with a workspace is already at the maximum." - } - } - } - }, - "description": "" - } - } + "description": "A search string to limit results by name. Legal fields are: `name`. Boolean operators may be used to construct intricate queries. Omitting boolean operators is interpreted as an implicit `AND`.", + "examples": { + "PoliciesNamedFooOrBar": { + "value": "name: foo OR name: bar", + "summary": "Policies named foo or bar" + } } - }, - "/workspaces/{workspace}/policies/{policy}/": { - "get": { - "operationId": "workspaces_policies_retrieve", - "description": "Retrieve a policy.", - "parameters": [ - { - "in": "path", - "name": "policy", - "schema": { - "type": "string" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "description": "" - } - } + }, + { + "in": "query", + "name": "sort", + "schema": { + "type": "string", + "default": "-created_at" }, - "put": { - "operationId": "workspaces_policies_update", - "description": "Update a policy.", - "parameters": [ - { - "in": "path", - "name": "policy", - "schema": { - "type": "string" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "required": true - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "description": "" - } - } + "description": "A comma-separated string of fields to sort by. Legal fields are: `created_at`, `name`, `version`, `updated_at`. Descending order can be expressed by prepending `-` to a field name.", + "examples": { + "`version`Descending,`updatedAt`Ascending": { + "value": "-version,updated_at", + "summary": "`version` descending, `updated_at` ascending" + } + } + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "patch": { - "operationId": "workspaces_policies_partial_update", - "description": "Partially update a policy.", - "parameters": [ - { - "in": "path", - "name": "policy", - "schema": { - "type": "string" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PatchedPolicy" - } - } - } - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Policy" - } - } - }, - "description": "" - } + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedPolicyList" } + } }, - "delete": { - "operationId": "workspaces_policies_destroy", - "description": "Delete a policy.", - "parameters": [ - { - "in": "path", - "name": "policy", - "schema": { - "type": "string" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "204": { - "description": "No response body" - } - } - } - }, - "/workspaces/{workspace}/policies/{policy}/actions/": { - "get": { - "operationId": "workspaces_policies_actions_list", - "description": "List all actions for the policy.", - "parameters": [ - { - "name": "page", - "required": false, - "in": "query", - "description": "A page number within the paginated result set.", - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "required": false, - "in": "query", - "description": "Number of results to return per page.", - "schema": { - "type": "integer" - } - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedPolicyActionList" - } - } - }, - "description": "" - } - } + "description": "" + } + } + }, + "post": { + "operationId": "workspaces_policies_create", + "description": "Create a policy.", + "parameters": [ + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "post": { - "operationId": "workspaces_policies_actions_create", - "description": "Create an action for a policy.", - "parameters": [ - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - } - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - }, - "description": "" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ErrorDetail" - }, - "examples": { - "MaxActionsReached": { - "value": { - "detail": "Invalid input.", - "code": "invalid", - "fields": { - "non_field_errors": [ - { - "string": "Maximum number of actions reached.", - "code": "max_actions_reached" - } - ] - } - }, - "summary": "Max Actions Reached", - "description": "Occurs when the number of actions associated with a policy is already at the maximum." - } - } - } - }, - "description": "" - } - } + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" + } } + }, + "required": true }, - "/workspaces/{workspace}/policies/{policy}/actions/{action}/": { - "get": { - "operationId": "workspaces_policies_actions_retrieve", - "description": "Retrieve an action for a policy.", - "parameters": [ - { - "in": "path", - "name": "action", - "schema": { - "type": "string", - "description": "The Action identifier." - }, - "required": true - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - }, - "description": "" - } + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } + } }, - "put": { - "operationId": "workspaces_policies_actions_update", - "description": "Update an action for a policy.", - "parameters": [ - { - "in": "path", - "name": "action", - "schema": { - "type": "string", - "description": "The Action identifier." - }, - "required": true - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - } + "description": "" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" }, - "security": [ - { - "apikey": [] + "examples": { + "MaxPoliciesReached": { + "value": { + "detail": "Invalid input.", + "code": "invalid", + "fields": { + "non_field_errors": [ + { + "string": "Maximum number of policies reached.", + "code": "max_policies_reached" + } + ] + } }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - }, - "description": "" - } + "summary": "Max Policies Reached", + "description": "Occurs when the number of repositories associated with a workspace is already at the maximum." + } } + } }, - "patch": { - "operationId": "workspaces_policies_actions_partial_update", - "description": "Partially update an action for a policy.", - "parameters": [ - { - "in": "path", - "name": "action", - "schema": { - "type": "string", - "description": "The Action identifier." - }, - "required": true - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PatchedPolicyAction" - } - } - } - }, - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PolicyAction" - } - } - }, - "description": "" - } - } + "description": "" + } + } + } + }, + "/workspaces/{workspace}/policies/{policy}/": { + "get": { + "operationId": "workspaces_policies_retrieve", + "description": "Retrieve a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" }, - "delete": { - "operationId": "workspaces_policies_actions_destroy", - "description": "Delete an action for a policy.", - "parameters": [ - { - "in": "path", - "name": "action", - "schema": { - "type": "string", - "description": "The Action identifier." - }, - "required": true - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "204": { - "description": "No response body" - } + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } + } + }, + "description": "" + } + } + }, + "put": { + "operationId": "workspaces_policies_update", + "description": "Update a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" + } } + }, + "required": true }, - "/workspaces/{workspace}/policies/{policy}/simulate/": { - "get": { - "operationId": "workspaces_policies_simulate_list", - "description": "Simulates the execution of a Policy to verify its behavior without taking any actions.\n\nThis endpoint evaluates all packages in the workspace, generating a \"decision log\" for each evaluation.\nEach log contains:\n- Package metadata provided to the policy engine at runtime.\n- Output from the user-defined Rego policy.\n\nNo actions associated with the policy are executed. Instead, the endpoint reports what would happen to each package if the policy were active.", - "parameters": [ - { - "in": "query", - "name": "package_query_string", - "schema": { - "type": "string" - }, - "description": "A [package search](https://help.cloudsmith.io/docs/search-packages) query by which to filter the packages being evaluated." - }, - { - "name": "page", - "required": false, - "in": "query", - "description": "A page number within the paginated result set.", - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "required": false, - "in": "query", - "description": "Number of results to return per page.", - "schema": { - "type": "integer" - } - }, - { - "in": "path", - "name": "policy", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" - } - } - }, - "description": "" - } + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } + } + }, + "description": "" + } + } + }, + "patch": { + "operationId": "workspaces_policies_partial_update", + "description": "Partially update a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" + }, + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" + }, + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchedPolicy" + } } + } }, - "/workspaces/{workspace}/policies/decision_logs/": { - "get": { - "operationId": "workspaces_policies_decision_logs_list", - "description": "List policy decision logs.", - "parameters": [ - { - "in": "query", - "name": "correlation_id", - "schema": { - "type": "string", - "format": "uuid" - }, - "description": "Filter by `correlation_id`." - }, - { - "in": "query", - "name": "ended_after", - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "Filter by `ended_at`. This operates as an inclusive lower bound (greater than or equal to)." - }, - { - "in": "query", - "name": "ended_before", - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "Filter by `ended_at`. This operates as an exclusive upper bound (less than)." - }, - { - "in": "query", - "name": "match", - "schema": { - "type": "boolean", - "nullable": true - }, - "description": "Filter by whether the policy matched the package." - }, - { - "in": "query", - "name": "package", - "schema": { - "type": "string", - "minLength": 1 - }, - "description": "Filter by package identifier (`slug_perm`)." - }, - { - "in": "query", - "name": "package_format", - "schema": { - "type": "string", - "minLength": 1 - }, - "description": "Filter by package format." - }, - { - "name": "page", - "required": false, - "in": "query", - "description": "A page number within the paginated result set.", - "schema": { - "type": "integer" - } - }, - { - "name": "page_size", - "required": false, - "in": "query", - "description": "Number of results to return per page.", - "schema": { - "type": "integer" - } - }, - { - "in": "query", - "name": "policy", - "schema": { - "type": "string", - "minLength": 1 - }, - "description": "Filter by policy identifier (`slug_perm`)." - }, - { - "in": "query", - "name": "repository", - "schema": { - "type": "string", - "minLength": 1 - }, - "description": "Filter by repository identifier (`slug_perm`)." - }, - { - "in": "query", - "name": "sort", - "schema": { - "type": "string", - "default": "-started_at" - }, - "description": "A comma-separated string of fields to sort by. Legal fields are: `started_at`, `ended_at`. Descending order can be expressed by prepending `-` to a field name." - }, - { - "in": "query", - "name": "started_after", - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "Filter by `started_at`. This operates as an inclusive lower bound (greater than or equal to)." - }, - { - "in": "query", - "name": "started_before", - "schema": { - "type": "string", - "format": "date-time" - }, - "description": "Filter by `started_at`. This operates as an exclusive upper bound (less than)." - }, - { - "in": "path", - "name": "workspace", - "schema": { - "type": "string", - "pattern": "^[-_\\w]+$" - }, - "required": true - } - ], - "tags": [ - "workspaces" - ], - "security": [ - { - "apikey": [] - }, - { - "basic": [] - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" - } - } - }, - "description": "" - } + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Policy" } - } + } + }, + "description": "" + } } - }, - "components": { - "schemas": { - "AddPackageTagsPolicyAction": { - "type": "object", - "properties": { - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this action occurs relative to other actions for the same policy." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Action identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "effect": { - "type": "string", - "readOnly": true - }, - "tags": { - "type": "array", - "items": { - "type": "string", - "maxLength": 100 - } - } - }, - "required": [ - "created_at", - "effect", - "slug_perm", - "tags", - "updated_at" - ] + }, + "delete": { + "operationId": "workspaces_policies_destroy", + "description": "Delete a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string" }, - "AddPackageTagsPolicyActionTyped": { - "allOf": [ - { - "type": "object", - "properties": { - "action_type": { - "type": "string" - } - }, - "required": [ - "action_type" - ] - }, - { - "$ref": "#/components/schemas/AddPackageTagsPolicyAction" - } - ] + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "BlankEnum": { - "enum": [ - "" - ] + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "204": { + "description": "No response body" + } + } + } + }, + "/workspaces/{workspace}/policies/{policy}/actions/": { + "get": { + "operationId": "workspaces_policies_actions_list", + "description": "List all actions for the policy.", + "parameters": [ + { + "name": "page", + "required": false, + "in": "query", + "description": "A page number within the paginated result set.", + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "required": false, + "in": "query", + "description": "Number of results to return per page.", + "schema": { + "type": "integer" + } + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "CountryEnum": { - "enum": [ - "AF", - "AX", - "AL", - "DZ", - "AS", - "AD", - "AO", - "AI", - "AQ", - "AG", - "AR", - "AM", - "AW", - "AU", - "AT", - "AZ", - "BS", - "BH", - "BD", - "BB", - "BY", - "BE", - "BZ", - "BJ", - "BM", - "BT", - "BO", - "BQ", - "BA", - "BW", - "BV", - "BR", - "IO", - "BN", - "BG", - "BF", - "BI", - "CV", - "KH", - "CM", - "CA", - "KY", - "CF", - "TD", - "CL", - "CN", - "CX", - "CC", - "CO", - "KM", - "CG", - "CD", - "CK", - "CR", - "CI", - "HR", - "CU", - "CW", - "CY", - "CZ", - "DK", - "DJ", - "DM", - "DO", - "EC", - "EG", - "SV", - "GQ", - "ER", - "EE", - "SZ", - "ET", - "FK", - "FO", - "FJ", - "FI", - "FR", - "GF", - "PF", - "TF", - "GA", - "GM", - "GE", - "DE", - "GH", - "GI", - "GR", - "GL", - "GD", - "GP", - "GU", - "GT", - "GG", - "GN", - "GW", - "GY", - "HT", - "HM", - "VA", - "HN", - "HK", - "HU", - "IS", - "IN", - "ID", - "IR", - "IQ", - "IE", - "IM", - "IL", - "IT", - "JM", - "JP", - "JE", - "JO", - "KZ", - "KE", - "KI", - "KW", - "KG", - "LA", - "LV", - "LB", - "LS", - "LR", - "LY", - "LI", - "LT", - "LU", - "MO", - "MG", - "MW", - "MY", - "MV", - "ML", - "MT", - "MH", - "MQ", - "MR", - "MU", - "YT", - "MX", - "FM", - "MD", - "MC", - "MN", - "ME", - "MS", - "MA", - "MZ", - "MM", - "NA", - "NR", - "NP", - "NL", - "NC", - "NZ", - "NI", - "NE", - "NG", - "NU", - "NF", - "KP", - "MK", - "MP", - "NO", - "OM", - "PK", - "PW", - "PS", - "PA", - "PG", - "PY", - "PE", - "PH", - "PN", - "PL", - "PT", - "PR", - "QA", - "RE", - "RO", - "RU", - "RW", - "BL", - "SH", - "KN", - "LC", - "MF", - "PM", - "VC", - "WS", - "SM", - "ST", - "SA", - "SN", - "RS", - "SC", - "SL", - "SG", - "SX", - "SK", - "SI", - "SB", - "SO", - "ZA", - "GS", - "KR", - "SS", - "ES", - "LK", - "SD", - "SR", - "SJ", - "SE", - "CH", - "SY", - "TW", - "TJ", - "TZ", - "TH", - "TL", - "TG", - "TK", - "TO", - "TT", - "TN", - "TR", - "TM", - "TC", - "TV", - "UG", - "UA", - "AE", - "GB", - "UM", - "US", - "UY", - "UZ", - "VU", - "VE", - "VN", - "VG", - "VI", - "WF", - "EH", - "YE", - "ZM", - "ZW" - ], - "type": "string", - "description": "* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe" + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "ErrorDetail": { - "type": "object", - "description": "A serializer for displaying a detail error message.", - "properties": { - "detail": { - "type": "string", - "description": "An extended message for the response." - }, - "fields": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field" - } - }, - "required": [ - "detail" - ] + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedPolicyActionList" + } + } }, - "NullEnum": { - "enum": [ - null - ] + "description": "" + } + } + }, + "post": { + "operationId": "workspaces_policies_actions_create", + "description": "Create an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PackageStateEnum": { - "enum": [ - "AVAILABLE", - "BLOCKED", - "DELETED", - "QUARANTINED" - ], - "type": "string", - "description": "* `AVAILABLE` - The package is available for download.\n* `BLOCKED` - The package is not downloadable.\n* `DELETED` - The package is deleted.\n* `QUARANTINED` - The package is quarantined." + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PackageTagSourceTypeEnum": { - "enum": [ - "AUTOMATIC", - "MANUAL" - ], - "type": "string", - "description": "* `AUTOMATIC` - Automatic\n* `MANUAL` - Manual" + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" + } + } + } + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" + } + } }, - "PackageTagTypeEnum": { - "enum": [ - "INFO", - "SOME_VERSION", - "LATEST_VERSION", - "ANNOTATION" - ], - "type": "string", - "description": "* `INFO` - Info\n* `SOME_VERSION` - Some Version\n* `LATEST_VERSION` - Latest Version\n* `ANNOTATION` - Annotation" + "description": "" + }, + "422": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorDetail" + }, + "examples": { + "MaxActionsReached": { + "value": { + "detail": "Invalid input.", + "code": "invalid", + "fields": { + "non_field_errors": [ + { + "string": "Maximum number of actions reached.", + "code": "max_actions_reached" + } + ] + } + }, + "summary": "Max Actions Reached", + "description": "Occurs when the number of actions associated with a policy is already at the maximum." + } + } + } }, - "PackageTypeEnum": { - "enum": [ - "BINARY", - "SOURCE", - "COMBINED", - "OTHER" - ], - "type": "string", - "description": "* `BINARY` - Binary\n* `SOURCE` - Source\n* `COMBINED` - Combined\n* `OTHER` - Other" + "description": "" + } + } + } + }, + "/workspaces/{workspace}/policies/{policy}/actions/{action}/": { + "get": { + "operationId": "workspaces_policies_actions_retrieve", + "description": "Retrieve an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." }, - "PaginatedPolicyActionList": { - "type": "object", - "required": [ - "results" - ], - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyAction" - } - } - } + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PaginatedPolicyDecisionLogList": { - "type": "object", - "required": [ - "results" - ], - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyDecisionLog" - } - } - } + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PaginatedPolicyList": { - "type": "object", - "required": [ - "results" - ], - "properties": { - "results": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Policy" - } - } + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" } + } }, - "PatchedAddPackageTagsPolicyAction": { - "type": "object", - "properties": { - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this action occurs relative to other actions for the same policy." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Action identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "effect": { - "type": "string", - "readOnly": true - }, - "tags": { - "type": "array", - "items": { - "type": "string", - "maxLength": 100 - } - } - } + "description": "" + } + } + }, + "put": { + "operationId": "workspaces_policies_actions_update", + "description": "Update an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." }, - "PatchedAddPackageTagsPolicyActionTyped": { - "allOf": [ - { - "type": "object", - "properties": { - "action_type": { - "type": "string" - } - } - }, - { - "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyAction" - } - ] + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PatchedPolicy": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "description": { - "type": "string", - "nullable": true, - "description": "The description of the Policy.", - "maxLength": 250 - }, - "name": { - "type": "string", - "description": "The name of the Policy.", - "maxLength": 100 - }, - "rego": { - "type": "string", - "description": "The rego code which constitutes the Policy logic." - }, - "enabled": { - "type": "boolean", - "description": "If true, the policy is enabled." - }, - "is_terminal": { - "type": "boolean", - "description": "If true and the policy matches, no further policies are evaluated." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Policy identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "version": { - "type": "integer", - "readOnly": true, - "description": "The version of the rego code." - }, - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this policy is evaluated relative to other policies." - } - } + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PatchedPolicyAction": { - "oneOf": [ - { - "$ref": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped" - }, - { - "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" - } - ], - "discriminator": { - "propertyName": "action_type", - "mapping": { - "SetPackageState": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped", - "AddPackageTags": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" - } + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" + } + } + } + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" } + } }, - "PatchedSetPackageStatePolicyAction": { - "type": "object", - "properties": { - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this action occurs relative to other actions for the same policy." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Action identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "effect": { - "type": "string", - "readOnly": true - }, - "package_state": { - "$ref": "#/components/schemas/PackageStateEnum" - } - } + "description": "" + } + } + }, + "patch": { + "operationId": "workspaces_policies_actions_partial_update", + "description": "Partially update an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." }, - "PatchedSetPackageStatePolicyActionTyped": { - "allOf": [ - { - "type": "object", - "properties": { - "action_type": { - "type": "string" - } - } - }, - { - "$ref": "#/components/schemas/PatchedSetPackageStatePolicyAction" - } - ] + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "Policy": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "description": { - "type": "string", - "nullable": true, - "description": "The description of the Policy.", - "maxLength": 250 - }, - "name": { - "type": "string", - "description": "The name of the Policy.", - "maxLength": 100 - }, - "rego": { - "type": "string", - "description": "The rego code which constitutes the Policy logic." - }, - "enabled": { - "type": "boolean", - "description": "If true, the policy is enabled." - }, - "is_terminal": { - "type": "boolean", - "description": "If true and the policy matches, no further policies are evaluated." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Policy identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "version": { - "type": "integer", - "readOnly": true, - "description": "The version of the rego code." - }, - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this policy is evaluated relative to other policies." - } - }, - "required": [ - "created_at", - "name", - "rego", - "slug_perm", - "updated_at", - "version" - ] + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PolicyAction": { - "oneOf": [ - { - "$ref": "#/components/schemas/SetPackageStatePolicyActionTyped" - }, - { - "$ref": "#/components/schemas/AddPackageTagsPolicyActionTyped" - } - ], - "discriminator": { - "propertyName": "action_type", - "mapping": { - "SetPackageState": "#/components/schemas/SetPackageStatePolicyActionTyped", - "AddPackageTags": "#/components/schemas/AddPackageTagsPolicyActionTyped" - } + "required": true + } + ], + "tags": ["workspaces"], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PatchedPolicyAction" + } + } + } + }, + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PolicyAction" } + } }, - "PolicyAdvisory": { - "type": "object", - "description": "An Advisory is all the known information about a vulnerability.", - "properties": { - "cvss": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/PolicyAdvisoryCvss" - }, - "nullable": true, - "description": "The CVSS score details." - }, - "epss": { - "allOf": [ - { - "$ref": "#/components/schemas/PolicyAdvisoryEpss" - } - ], - "nullable": true, - "description": "The EPSS details. Null if not available." - }, - "format": { - "type": "string", - "description": "The format of the vulnerable package." - }, - "identifier": { - "type": "string", - "description": "The vulnerability identifier. E.g. CVE-2021-1234." - }, - "package_name": { - "type": "string", - "description": "The name of the vulnerable package." - }, - "patched_versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of patched versions, if available." - }, - "published_date": { - "type": "string", - "format": "date-time", - "description": "The published date of vulnerability." - }, - "severity": { - "allOf": [ - { - "$ref": "#/components/schemas/SeverityEnum" - } - ], - "description": "The severity level of the vulnerability.\n\n* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" - }, - "source": { - "allOf": [ - { - "$ref": "#/components/schemas/PolicyAdvisorySource" - } - ], - "description": "The advisory source details." - }, - "title": { - "type": "string", - "description": "The title of the advisory." - }, - "vulnerable_versions": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of known vulnerable versions." - } - }, - "required": [ - "cvss", - "epss", - "format", - "identifier", - "package_name", - "patched_versions", - "published_date", - "severity", - "source", - "title", - "vulnerable_versions" - ] + "description": "" + } + } + }, + "delete": { + "operationId": "workspaces_policies_actions_destroy", + "description": "Delete an action for a policy.", + "parameters": [ + { + "in": "path", + "name": "action", + "schema": { + "type": "string", + "description": "The Action identifier." }, - "PolicyAdvisoryCvss": { - "type": "object", - "description": "A CVSS score and vector string.", - "properties": { - "V2Score": { - "type": "number", - "format": "double", - "nullable": true, - "description": "The CVSS V2 score." - }, - "V2Vector": { - "type": "string", - "nullable": true, - "description": "The CVSS V2 vector string." - }, - "V3Score": { - "type": "number", - "format": "double", - "nullable": true, - "description": "The CVSS V3 score." - }, - "V3Vector": { - "type": "string", - "nullable": true, - "description": "The CVSS V3 vector string." - } - }, - "required": [ - "V2Score", - "V2Vector", - "V3Score", - "V3Vector" - ] + "required": true + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PolicyAdvisoryEpss": { - "type": "object", - "description": "The EPSS score and percentile.", - "properties": { - "score": { - "type": "number", - "format": "double", - "nullable": true, - "description": "The EPSS score. Null if not available." - }, - "percentile": { - "type": "number", - "format": "double", - "nullable": true, - "description": "The EPSS percentile. Null if not available." - } - }, - "required": [ - "percentile", - "score" - ] + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PolicyAdvisorySource": { - "type": "object", - "description": "The source of the advisory.", - "properties": { - "name": { - "type": "string", - "description": "The advisory source name.", - "maxLength": 256 - }, - "url": { - "type": "string", - "description": "The advisory source URL.", - "maxLength": 256 - } - }, - "required": [ - "name", - "url" - ] + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "204": { + "description": "No response body" + } + } + } + }, + "/workspaces/{workspace}/policies/{policy}/simulate/": { + "get": { + "operationId": "workspaces_policies_simulate_list", + "description": "Simulates the execution of a Policy to verify its behavior without taking any actions.\n\nThis endpoint evaluates all packages in the workspace, generating a \"decision log\" for each evaluation.\nEach log contains:\n- Package metadata provided to the policy engine at runtime.\n- Output from the user-defined Rego policy.\n\nNo actions associated with the policy are executed. Instead, the endpoint reports what would happen to each package if the policy were active.", + "parameters": [ + { + "in": "query", + "name": "package_query_string", + "schema": { + "type": "string" }, - "PolicyArchitecture": { - "type": "object", - "description": "Serializer for a package architecture for policy purposes.", - "properties": { - "description": { - "type": "string", - "nullable": true, - "maxLength": 64 - }, - "name": { - "type": "string", - "maxLength": 32 - } - }, - "required": [ - "name" - ] + "description": "A [package search](https://help.cloudsmith.io/docs/search-packages) query by which to filter the packages being evaluated." + }, + { + "name": "page", + "required": false, + "in": "query", + "description": "A page number within the paginated result set.", + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "required": false, + "in": "query", + "description": "Number of results to return per page.", + "schema": { + "type": "integer" + } + }, + { + "in": "path", + "name": "policy", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PolicyDecisionLog": { - "type": "object", - "description": "Serializer for policy decision logs", - "properties": { - "correlation_id": { - "type": "string", - "format": "uuid" - }, - "policy": { - "$ref": "#/components/schemas/Policy" - }, - "started_at": { - "type": "string", - "format": "date-time" - }, - "ended_at": { - "type": "string", - "format": "date-time" - }, - "policy_input": { - "$ref": "#/components/schemas/PolicyInput" - }, - "policy_output": {}, - "actions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyAction" - } - } - }, - "required": [ - "actions", - "correlation_id", - "ended_at", - "policy", - "policy_input", - "policy_output", - "started_at" - ] + "required": true + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "PolicyDistribution": { - "type": "object", - "description": "Serializer for a distribution for policy purposes.", - "properties": { - "name": { - "type": "string", - "maxLength": 32 - }, - "slug": { - "type": "string", - "maxLength": 64 - }, - "variants": { - "type": "string", - "nullable": true, - "maxLength": 128 - } - }, - "required": [ - "name", - "slug" - ] + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" + } + } }, - "PolicyDistributionVersion": { - "type": "object", - "description": "Serializer for a distribution version for policy purposes.", - "properties": { - "name": { - "type": "string", - "description": "The textual name for this version.", - "maxLength": 64 - }, - "slug": { - "type": "string", - "maxLength": 64 - } - }, - "required": [ - "slug" - ] + "description": "" + } + } + } + }, + "/workspaces/{workspace}/policies/decision_logs/": { + "get": { + "operationId": "workspaces_policies_decision_logs_list", + "description": "List policy decision logs.", + "parameters": [ + { + "in": "query", + "name": "correlation_id", + "schema": { + "type": "string", + "format": "uuid" }, - "PolicyInput": { - "type": "object", - "description": "Serializer for policy input.", - "properties": { - "v0": { - "$ref": "#/components/schemas/PolicyInputV0" - } - }, - "required": [ - "v0" - ] + "description": "Filter by `correlation_id`." + }, + { + "in": "query", + "name": "ended_after", + "schema": { + "type": "string", + "format": "date-time" }, - "PolicyInputV0": { - "type": "object", - "description": "Serializer for V0 policy input.", - "properties": { - "package": { - "$ref": "#/components/schemas/PolicyPackage" - }, - "repository": { - "$ref": "#/components/schemas/PolicyRepository" - }, - "workspace": { - "$ref": "#/components/schemas/PolicyWorkspace" - }, - "security_scan": {}, - "vulnerabilities": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyAdvisory" - } - } - }, - "required": [ - "package", - "repository", - "security_scan", - "vulnerabilities", - "workspace" - ] + "description": "Filter by `ended_at`. This operates as an inclusive lower bound (greater than or equal to)." + }, + { + "in": "query", + "name": "ended_before", + "schema": { + "type": "string", + "format": "date-time" }, - "PolicyPackage": { - "type": "object", - "description": "Serializer for packages for policy purposes.", - "properties": { - "architectures": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyArchitecture" - } - }, - "checksum_md5": { - "type": "string", - "readOnly": true - }, - "checksum_sha1": { - "type": "string", - "readOnly": true - }, - "checksum_sha256": { - "type": "string", - "readOnly": true - }, - "checksum_sha512": { - "type": "string", - "readOnly": true - }, - "description": { - "type": "string", - "nullable": true, - "description": "A textual description of this package.", - "maxLength": 12288 - }, - "distro": { - "$ref": "#/components/schemas/PolicyDistribution" - }, - "distro_version": { - "$ref": "#/components/schemas/PolicyDistributionVersion" - }, - "epoch": { - "type": "integer", - "maximum": 2147483647, - "minimum": -2147483648, - "nullable": true, - "description": "The epoch of the package version (if any)." - }, - "extension": { - "type": "string", - "readOnly": true - }, - "filename": { - "type": "string", - "maxLength": 255 - }, - "files": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyPackageFile" - } - }, - "format": { - "type": "string" - }, - "indexed": { - "type": "boolean" - }, - "license": { - "type": "string", - "nullable": true, - "description": "The license of this package.", - "maxLength": 128 - }, - "name": { - "type": "string", - "nullable": true, - "description": "The name of this package.", - "maxLength": 200 - }, - "num_files": { - "type": "integer", - "maximum": 2147483647, - "minimum": 0 - }, - "package_type": { - "$ref": "#/components/schemas/PackageTypeEnum" - }, - "release": { - "type": "string", - "nullable": true, - "description": "The release of the package version (if any).", - "maxLength": 96 - }, - "security_scan_status": { - "$ref": "#/components/schemas/SecurityScanStatusEnum" - }, - "security_scan_status_updated_at": { - "type": "string", - "format": "date-time", - "nullable": true, - "description": "The datetime the security scanning status was updated." - }, - "security_scan_started_at": { - "type": "string", - "format": "date-time", - "nullable": true, - "description": "The datetime the security scanning was started." - }, - "security_scan_completed_at": { - "type": "string", - "format": "date-time", - "nullable": true, - "description": "The datetime the security scanning was completed." - }, - "size": { - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "format": "int64", - "description": "The calculated size of the package." - }, - "slug": { - "type": "string", - "readOnly": true, - "description": "The public unique identifier for the package.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "slug_perm": { - "type": "string", - "maxLength": 16, - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "subtype": { - "type": "string", - "readOnly": true - }, - "summary": { - "type": "string", - "nullable": true, - "description": "A one-liner synopsis of this package.", - "maxLength": 255 - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyPackageTag" - } - }, - "uploaded_at": { - "type": "string", - "format": "date-time", - "description": "The date this package was uploaded." - }, - "uploader": { - "$ref": "#/components/schemas/PolicyUploader" - }, - "version": { - "type": "string", - "nullable": true, - "description": "The raw version for this package.", - "maxLength": 128 - } - }, - "required": [ - "architectures", - "checksum_md5", - "checksum_sha1", - "checksum_sha256", - "checksum_sha512", - "distro", - "distro_version", - "extension", - "filename", - "files", - "format", - "package_type", - "security_scan_status", - "slug", - "subtype", - "tags" - ] + "description": "Filter by `ended_at`. This operates as an exclusive upper bound (less than)." + }, + { + "in": "query", + "name": "match", + "schema": { + "type": "boolean", + "nullable": true }, - "PolicyPackageFile": { - "type": "object", - "description": "Serializer for package files for policy purposes.", - "properties": { - "checksum_md5": { - "type": "string", - "nullable": true, - "pattern": "^[a-fA-F0-9]{32}$", - "maxLength": 32 - }, - "checksum_sha1": { - "type": "string", - "nullable": true, - "pattern": "^[a-fA-F0-9]{40}$", - "maxLength": 40 - }, - "checksum_sha256": { - "type": "string", - "nullable": true, - "pattern": "^[a-fA-F0-9]{64}$", - "maxLength": 64 - }, - "checksum_sha512": { - "type": "string", - "nullable": true, - "pattern": "^[a-fA-F0-9]{128}$", - "maxLength": 128 - }, - "filename": { - "type": "string", - "maxLength": 255 - }, - "is_primary": { - "type": "string", - "readOnly": true - }, - "size": { - "type": "integer", - "maximum": 9223372036854776000, - "minimum": -9223372036854776000, - "format": "int64", - "description": "The calculated size of the file." - }, - "slug_perm": { - "type": "string", - "maxLength": 16, - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "tag": { - "type": "string", - "nullable": true, - "description": "Freeform descriptor that describes what the file is.", - "maxLength": 255 - } - }, - "required": [ - "filename", - "is_primary" - ] + "description": "Filter by whether the policy matched the package." + }, + { + "in": "query", + "name": "package", + "schema": { + "type": "string", + "minLength": 1 }, - "PolicyPackageTag": { - "type": "object", - "description": "A package tag that labels packages with additional information.", - "properties": { - "created_at": { - "type": "string", - "format": "date-time", - "description": "The date this tag was created." - }, - "is_immutable": { - "type": "boolean", - "description": "If true, the tag is immutable and cannot be (normally) removed." - }, - "name": { - "type": "string", - "description": "The name for the tag.", - "maxLength": 255 - }, - "source": { - "$ref": "#/components/schemas/PackageTagSourceTypeEnum" - }, - "tag_type": { - "$ref": "#/components/schemas/PackageTagTypeEnum" - } - }, - "required": [ - "name", - "source", - "tag_type" - ] + "description": "Filter by package identifier (`slug_perm`)." + }, + { + "in": "query", + "name": "package_format", + "schema": { + "type": "string", + "minLength": 1 }, - "PolicyRepository": { - "type": "object", - "description": "Serializer for the Repository model for policy purposes.", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "description": { - "type": "string", - "description": "A description of the repository's purpose/contents.", - "maxLength": 1000 - }, - "ecdsa_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyRepositoryEcdsaKey" - } - }, - "gpg_keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PolicyRepositoryGpgKey" - } - }, - "name": { - "type": "string", - "description": "A descriptive name for the repository.", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50 - }, - "open_source_license": { - "type": "string", - "nullable": true - }, - "repository_type": { - "$ref": "#/components/schemas/RepositoryTypeEnum" - }, - "slug": { - "type": "string", - "description": "The slug identifies the repository in URIs.", - "maxLength": 50, - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "slug_perm": { - "type": "string", - "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", - "maxLength": 16, - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "storage_region": { - "type": "string", - "readOnly": true - } - }, - "required": [ - "ecdsa_keys", - "gpg_keys", - "name", - "open_source_license", - "repository_type", - "storage_region" - ] + "description": "Filter by package format." + }, + { + "name": "page", + "required": false, + "in": "query", + "description": "A page number within the paginated result set.", + "schema": { + "type": "integer" + } + }, + { + "name": "page_size", + "required": false, + "in": "query", + "description": "Number of results to return per page.", + "schema": { + "type": "integer" + } + }, + { + "in": "query", + "name": "policy", + "schema": { + "type": "string", + "minLength": 1 }, - "PolicyRepositoryEcdsaKey": { - "type": "object", - "description": "An ECDSA key used to sign repository contents.", - "properties": { - "active": { - "type": "boolean", - "description": "If selected this is the active key for this repository." - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "default": { - "type": "boolean", - "description": "If selected this is the default key for this repository." - }, - "fingerprint_short": { - "type": "string", - "readOnly": true - }, - "fingerprint": { - "type": "string", - "description": "The long identifier used by ECDSA for this key.", - "maxLength": 32 - }, - "public_key": { - "type": "string", - "description": "The public key given to repository users." - }, - "ssh_fingerprint": { - "type": "string", - "nullable": true, - "description": "The SSH fingerprint used by ECDSA for this key.", - "maxLength": 128 - } - }, - "required": [ - "fingerprint", - "fingerprint_short", - "public_key" - ] + "description": "Filter by policy identifier (`slug_perm`)." + }, + { + "in": "query", + "name": "repository", + "schema": { + "type": "string", + "minLength": 1 }, - "PolicyRepositoryGpgKey": { - "type": "object", - "description": "A GPG key used to sign repository contents.", - "properties": { - "active": { - "type": "boolean", - "description": "If selected this is the active key for this repository." - }, - "comment": { - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "default": { - "type": "boolean", - "description": "If selected this is the default key for this repository." - }, - "fingerprint_short": { - "type": "string", - "readOnly": true - }, - "fingerprint": { - "type": "string", - "description": "The long identifier used by GPG for this key.", - "maxLength": 40 - }, - "public_key": { - "type": "string", - "description": "The public key given to repository users." - } - }, - "required": [ - "comment", - "fingerprint", - "fingerprint_short", - "public_key" - ] + "description": "Filter by repository identifier (`slug_perm`)." + }, + { + "in": "query", + "name": "sort", + "schema": { + "type": "string", + "default": "-started_at" }, - "PolicyUploader": { - "type": "object", - "description": "Serializer for packager uploader for policy puposes.", - "properties": { - "email": { - "type": "string", - "format": "email", - "nullable": true, - "title": "Email address", - "description": "Your email address that we use to contact you. This is only visible to you.", - "maxLength": 254 - }, - "first_name": { - "type": "string", - "maxLength": 120 - }, - "last_name": { - "type": "string", - "maxLength": 120 - }, - "slug": { - "type": "string", - "readOnly": true - }, - "slug_perm": { - "type": "string", - "readOnly": true - } - }, - "required": [ - "first_name", - "last_name", - "slug", - "slug_perm" - ] + "description": "A comma-separated string of fields to sort by. Legal fields are: `started_at`, `ended_at`. Descending order can be expressed by prepending `-` to a field name." + }, + { + "in": "query", + "name": "started_after", + "schema": { + "type": "string", + "format": "date-time" }, - "PolicyWorkspace": { - "type": "object", - "description": "Representation of a Workspace used in Policy input.", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "country": { - "nullable": true, - "description": "The country your workspace is based in.\n\n* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe", - "oneOf": [ - { - "$ref": "#/components/schemas/CountryEnum" - }, - { - "$ref": "#/components/schemas/BlankEnum" - }, - { - "$ref": "#/components/schemas/NullEnum" - } - ] - }, - "location": { - "type": "string", - "nullable": true, - "description": "The city/town/area your workspace is based in.", - "maxLength": 60 - }, - "name": { - "type": "string", - "description": "A descriptive name for your workspace.", - "pattern": "^\\w[\\w \\-'\\.\\/()]+$", - "maxLength": 50 - }, - "slug": { - "type": "string", - "readOnly": true - }, - "slug_perm": { - "type": "string", - "readOnly": true - }, - "tagline": { - "type": "string", - "nullable": true, - "description": "A short public descriptive for your workspace.", - "maxLength": 80 - } - }, - "required": [ - "name", - "slug", - "slug_perm" - ] + "description": "Filter by `started_at`. This operates as an inclusive lower bound (greater than or equal to)." + }, + { + "in": "query", + "name": "started_before", + "schema": { + "type": "string", + "format": "date-time" }, - "RepositoryTypeEnum": { - "enum": [ - "PUBLIC", - "PRIVATE", - "OPEN_SOURCE" - ], - "type": "string", - "description": "* `PUBLIC` - Public\n* `PRIVATE` - Private\n* `OPEN_SOURCE` - Open-Source" + "description": "Filter by `started_at`. This operates as an exclusive upper bound (less than)." + }, + { + "in": "path", + "name": "workspace", + "schema": { + "type": "string", + "pattern": "^[-_\\w]+$" }, - "SecurityScanStatusEnum": { - "enum": [ - "AWAITING_SCAN", - "SCANNING", - "VULNERABLE", - "NOT_VULNERABLE", - "DISABLED", - "FAILED", - "SKIPPED", - "UNSUPPORTED_PACKAGE", - "UNSUPPORTED_FORMAT" - ], - "type": "string", - "description": "* `AWAITING_SCAN` - Awaiting Security Scan\n* `SCANNING` - Security Scanning in Progress\n* `VULNERABLE` - Scan Detected Vulnerabilities\n* `NOT_VULNERABLE` - Scan Detected No Vulnerabilities\n* `DISABLED` - Security Scanning Disabled\n* `FAILED` - Security Scanning Failed\n* `SKIPPED` - Security Scanning Skipped\n* `UNSUPPORTED_PACKAGE` - Security Scanning Not Supported\n* `UNSUPPORTED_FORMAT` - Security Scanning Not Supported" + "required": true + } + ], + "tags": ["workspaces"], + "security": [ + { + "apikey": [] + }, + { + "basic": [] + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PaginatedPolicyDecisionLogList" + } + } }, - "SetPackageStatePolicyAction": { - "type": "object", - "properties": { - "precedence": { - "type": "integer", - "maximum": 32767, - "minimum": 0, - "description": "The order in which this action occurs relative to other actions for the same policy." - }, - "slug_perm": { - "type": "string", - "readOnly": true, - "description": "The Action identifier.", - "pattern": "^[-a-zA-Z0-9_]+$" - }, - "created_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was created." - }, - "updated_at": { - "type": "string", - "format": "date-time", - "readOnly": true, - "description": "The date and time the policy was updated." - }, - "effect": { - "type": "string", - "readOnly": true - }, - "package_state": { - "$ref": "#/components/schemas/PackageStateEnum" - } - }, - "required": [ - "created_at", - "effect", - "package_state", - "slug_perm", - "updated_at" - ] + "description": "" + } + } + } + } + }, + "components": { + "schemas": { + "AddPackageTagsPolicyAction": { + "type": "object", + "properties": { + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "effect": { + "type": "string", + "readOnly": true + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100 + } + } + }, + "required": ["created_at", "effect", "slug_perm", "tags", "updated_at"] + }, + "AddPackageTagsPolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } }, - "SetPackageStatePolicyActionTyped": { - "allOf": [ - { - "type": "object", - "properties": { - "action_type": { - "type": "string" - } - }, - "required": [ - "action_type" - ] - }, - { - "$ref": "#/components/schemas/SetPackageStatePolicyAction" - } - ] + "required": ["action_type"] + }, + { + "$ref": "#/components/schemas/AddPackageTagsPolicyAction" + } + ] + }, + "BlankEnum": { + "enum": [""] + }, + "CountryEnum": { + "enum": [ + "AF", + "AX", + "AL", + "DZ", + "AS", + "AD", + "AO", + "AI", + "AQ", + "AG", + "AR", + "AM", + "AW", + "AU", + "AT", + "AZ", + "BS", + "BH", + "BD", + "BB", + "BY", + "BE", + "BZ", + "BJ", + "BM", + "BT", + "BO", + "BQ", + "BA", + "BW", + "BV", + "BR", + "IO", + "BN", + "BG", + "BF", + "BI", + "CV", + "KH", + "CM", + "CA", + "KY", + "CF", + "TD", + "CL", + "CN", + "CX", + "CC", + "CO", + "KM", + "CG", + "CD", + "CK", + "CR", + "CI", + "HR", + "CU", + "CW", + "CY", + "CZ", + "DK", + "DJ", + "DM", + "DO", + "EC", + "EG", + "SV", + "GQ", + "ER", + "EE", + "SZ", + "ET", + "FK", + "FO", + "FJ", + "FI", + "FR", + "GF", + "PF", + "TF", + "GA", + "GM", + "GE", + "DE", + "GH", + "GI", + "GR", + "GL", + "GD", + "GP", + "GU", + "GT", + "GG", + "GN", + "GW", + "GY", + "HT", + "HM", + "VA", + "HN", + "HK", + "HU", + "IS", + "IN", + "ID", + "IR", + "IQ", + "IE", + "IM", + "IL", + "IT", + "JM", + "JP", + "JE", + "JO", + "KZ", + "KE", + "KI", + "KW", + "KG", + "LA", + "LV", + "LB", + "LS", + "LR", + "LY", + "LI", + "LT", + "LU", + "MO", + "MG", + "MW", + "MY", + "MV", + "ML", + "MT", + "MH", + "MQ", + "MR", + "MU", + "YT", + "MX", + "FM", + "MD", + "MC", + "MN", + "ME", + "MS", + "MA", + "MZ", + "MM", + "NA", + "NR", + "NP", + "NL", + "NC", + "NZ", + "NI", + "NE", + "NG", + "NU", + "NF", + "KP", + "MK", + "MP", + "NO", + "OM", + "PK", + "PW", + "PS", + "PA", + "PG", + "PY", + "PE", + "PH", + "PN", + "PL", + "PT", + "PR", + "QA", + "RE", + "RO", + "RU", + "RW", + "BL", + "SH", + "KN", + "LC", + "MF", + "PM", + "VC", + "WS", + "SM", + "ST", + "SA", + "SN", + "RS", + "SC", + "SL", + "SG", + "SX", + "SK", + "SI", + "SB", + "SO", + "ZA", + "GS", + "KR", + "SS", + "ES", + "LK", + "SD", + "SR", + "SJ", + "SE", + "CH", + "SY", + "TW", + "TJ", + "TZ", + "TH", + "TL", + "TG", + "TK", + "TO", + "TT", + "TN", + "TR", + "TM", + "TC", + "TV", + "UG", + "UA", + "AE", + "GB", + "UM", + "US", + "UY", + "UZ", + "VU", + "VE", + "VN", + "VG", + "VI", + "WF", + "EH", + "YE", + "ZM", + "ZW" + ], + "type": "string", + "description": "* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe" + }, + "ErrorDetail": { + "type": "object", + "description": "A serializer for displaying a detail error message.", + "properties": { + "detail": { + "type": "string", + "description": "An extended message for the response." + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } }, - "SeverityEnum": { - "enum": [ - "LOW", - "MEDIUM", - "HIGH", - "CRITICAL" - ], - "type": "string", - "description": "* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" + "description": "A Dictionary of related errors where key: Field and value: Array of Errors related to that field" + } + }, + "required": ["detail"] + }, + "NullEnum": { + "enum": [null] + }, + "PackageStateEnum": { + "enum": ["AVAILABLE", "BLOCKED", "DELETED", "QUARANTINED"], + "type": "string", + "description": "* `AVAILABLE` - The package is available for download.\n* `BLOCKED` - The package is not downloadable.\n* `DELETED` - The package is deleted.\n* `QUARANTINED` - The package is quarantined." + }, + "PackageTagSourceTypeEnum": { + "enum": ["AUTOMATIC", "MANUAL"], + "type": "string", + "description": "* `AUTOMATIC` - Automatic\n* `MANUAL` - Manual" + }, + "PackageTagTypeEnum": { + "enum": ["INFO", "SOME_VERSION", "LATEST_VERSION", "ANNOTATION"], + "type": "string", + "description": "* `INFO` - Info\n* `SOME_VERSION` - Some Version\n* `LATEST_VERSION` - Latest Version\n* `ANNOTATION` - Annotation" + }, + "PackageTypeEnum": { + "enum": ["BINARY", "SOURCE", "COMBINED", "OTHER"], + "type": "string", + "description": "* `BINARY` - Binary\n* `SOURCE` - Source\n* `COMBINED` - Combined\n* `OTHER` - Other" + }, + "PaginatedPolicyActionList": { + "type": "object", + "required": ["results"], + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAction" } + } + } + }, + "PaginatedPolicyDecisionLogList": { + "type": "object", + "required": ["results"], + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyDecisionLog" + } + } + } + }, + "PaginatedPolicyList": { + "type": "object", + "required": ["results"], + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Policy" + } + } + } + }, + "PatchedAddPackageTagsPolicyAction": { + "type": "object", + "properties": { + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "effect": { + "type": "string", + "readOnly": true + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "maxLength": 100 + } + } + } + }, + "PatchedAddPackageTagsPolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + } + }, + { + "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyAction" + } + ] + }, + "PatchedPolicy": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of the Policy.", + "maxLength": 250 + }, + "name": { + "type": "string", + "description": "The name of the Policy.", + "maxLength": 100 + }, + "rego": { + "type": "string", + "description": "The rego code which constitutes the Policy logic." + }, + "enabled": { + "type": "boolean", + "description": "If true, the policy is enabled." + }, + "is_terminal": { + "type": "boolean", + "description": "If true and the policy matches, no further policies are evaluated." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Policy identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "version": { + "type": "integer", + "readOnly": true, + "description": "The version of the rego code." + }, + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this policy is evaluated relative to other policies." + } + } + }, + "PatchedPolicyAction": { + "oneOf": [ + { + "$ref": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped" + }, + { + "$ref": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" + } + ], + "discriminator": { + "propertyName": "action_type", + "mapping": { + "SetPackageState": "#/components/schemas/PatchedSetPackageStatePolicyActionTyped", + "AddPackageTags": "#/components/schemas/PatchedAddPackageTagsPolicyActionTyped" + } + } + }, + "PatchedSetPackageStatePolicyAction": { + "type": "object", + "properties": { + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "effect": { + "type": "string", + "readOnly": true + }, + "package_state": { + "$ref": "#/components/schemas/PackageStateEnum" + } + } + }, + "PatchedSetPackageStatePolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + } + }, + { + "$ref": "#/components/schemas/PatchedSetPackageStatePolicyAction" + } + ] + }, + "Policy": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "description": { + "type": "string", + "nullable": true, + "description": "The description of the Policy.", + "maxLength": 250 + }, + "name": { + "type": "string", + "description": "The name of the Policy.", + "maxLength": 100 + }, + "rego": { + "type": "string", + "description": "The rego code which constitutes the Policy logic." + }, + "enabled": { + "type": "boolean", + "description": "If true, the policy is enabled." + }, + "is_terminal": { + "type": "boolean", + "description": "If true and the policy matches, no further policies are evaluated." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Policy identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "version": { + "type": "integer", + "readOnly": true, + "description": "The version of the rego code." + }, + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this policy is evaluated relative to other policies." + } }, - "securitySchemes": { - "apikey": { - "type": "apiKey", - "in": "header", - "name": "X-Api-Key" + "required": ["created_at", "name", "rego", "slug_perm", "updated_at", "version"] + }, + "PolicyAction": { + "oneOf": [ + { + "$ref": "#/components/schemas/SetPackageStatePolicyActionTyped" + }, + { + "$ref": "#/components/schemas/AddPackageTagsPolicyActionTyped" + } + ], + "discriminator": { + "propertyName": "action_type", + "mapping": { + "SetPackageState": "#/components/schemas/SetPackageStatePolicyActionTyped", + "AddPackageTags": "#/components/schemas/AddPackageTagsPolicyActionTyped" + } + } + }, + "PolicyAdvisory": { + "type": "object", + "description": "An Advisory is all the known information about a vulnerability.", + "properties": { + "cvss": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/PolicyAdvisoryCvss" + }, + "nullable": true, + "description": "The CVSS score details." + }, + "epss": { + "allOf": [ + { + "$ref": "#/components/schemas/PolicyAdvisoryEpss" + } + ], + "nullable": true, + "description": "The EPSS details. Null if not available." + }, + "format": { + "type": "string", + "description": "The format of the vulnerable package." + }, + "identifier": { + "type": "string", + "description": "The vulnerability identifier. E.g. CVE-2021-1234." + }, + "package_name": { + "type": "string", + "description": "The name of the vulnerable package." + }, + "patched_versions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of patched versions, if available." + }, + "published_date": { + "type": "string", + "format": "date-time", + "description": "The published date of vulnerability." + }, + "severity": { + "allOf": [ + { + "$ref": "#/components/schemas/SeverityEnum" + } + ], + "description": "The severity level of the vulnerability.\n\n* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" + }, + "source": { + "allOf": [ + { + "$ref": "#/components/schemas/PolicyAdvisorySource" + } + ], + "description": "The advisory source details." + }, + "title": { + "type": "string", + "description": "The title of the advisory." + }, + "vulnerable_versions": { + "type": "array", + "items": { + "type": "string" }, - "basic": { - "type": "http", - "scheme": "basic" + "description": "List of known vulnerable versions." + } + }, + "required": [ + "cvss", + "epss", + "format", + "identifier", + "package_name", + "patched_versions", + "published_date", + "severity", + "source", + "title", + "vulnerable_versions" + ] + }, + "PolicyAdvisoryCvss": { + "type": "object", + "description": "A CVSS score and vector string.", + "properties": { + "V2Score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The CVSS V2 score." + }, + "V2Vector": { + "type": "string", + "nullable": true, + "description": "The CVSS V2 vector string." + }, + "V3Score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The CVSS V3 score." + }, + "V3Vector": { + "type": "string", + "nullable": true, + "description": "The CVSS V3 vector string." + } + }, + "required": ["V2Score", "V2Vector", "V3Score", "V3Vector"] + }, + "PolicyAdvisoryEpss": { + "type": "object", + "description": "The EPSS score and percentile.", + "properties": { + "score": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The EPSS score. Null if not available." + }, + "percentile": { + "type": "number", + "format": "double", + "nullable": true, + "description": "The EPSS percentile. Null if not available." + } + }, + "required": ["percentile", "score"] + }, + "PolicyAdvisorySource": { + "type": "object", + "description": "The source of the advisory.", + "properties": { + "name": { + "type": "string", + "description": "The advisory source name.", + "maxLength": 256 + }, + "url": { + "type": "string", + "description": "The advisory source URL.", + "maxLength": 256 + } + }, + "required": ["name", "url"] + }, + "PolicyArchitecture": { + "type": "object", + "description": "Serializer for a package architecture for policy purposes.", + "properties": { + "description": { + "type": "string", + "nullable": true, + "maxLength": 64 + }, + "name": { + "type": "string", + "maxLength": 32 + } + }, + "required": ["name"] + }, + "PolicyDecisionLog": { + "type": "object", + "description": "Serializer for policy decision logs", + "properties": { + "correlation_id": { + "type": "string", + "format": "uuid" + }, + "policy": { + "$ref": "#/components/schemas/Policy" + }, + "started_at": { + "type": "string", + "format": "date-time" + }, + "ended_at": { + "type": "string", + "format": "date-time" + }, + "policy_input": { + "$ref": "#/components/schemas/PolicyInput" + }, + "policy_output": {}, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAction" } - } + } + }, + "required": [ + "actions", + "correlation_id", + "ended_at", + "policy", + "policy_input", + "policy_output", + "started_at" + ] + }, + "PolicyDistribution": { + "type": "object", + "description": "Serializer for a distribution for policy purposes.", + "properties": { + "name": { + "type": "string", + "maxLength": 32 + }, + "slug": { + "type": "string", + "maxLength": 64 + }, + "variants": { + "type": "string", + "nullable": true, + "maxLength": 128 + } + }, + "required": ["name", "slug"] + }, + "PolicyDistributionVersion": { + "type": "object", + "description": "Serializer for a distribution version for policy purposes.", + "properties": { + "name": { + "type": "string", + "description": "The textual name for this version.", + "maxLength": 64 + }, + "slug": { + "type": "string", + "maxLength": 64 + } + }, + "required": ["slug"] + }, + "PolicyInput": { + "type": "object", + "description": "Serializer for policy input.", + "properties": { + "v0": { + "$ref": "#/components/schemas/PolicyInputV0" + } + }, + "required": ["v0"] + }, + "PolicyInputV0": { + "type": "object", + "description": "Serializer for V0 policy input.", + "properties": { + "package": { + "$ref": "#/components/schemas/PolicyPackage" + }, + "repository": { + "$ref": "#/components/schemas/PolicyRepository" + }, + "workspace": { + "$ref": "#/components/schemas/PolicyWorkspace" + }, + "security_scan": {}, + "vulnerabilities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyAdvisory" + } + } + }, + "required": ["package", "repository", "security_scan", "vulnerabilities", "workspace"] + }, + "PolicyPackage": { + "type": "object", + "description": "Serializer for packages for policy purposes.", + "properties": { + "architectures": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyArchitecture" + } + }, + "checksum_md5": { + "type": "string", + "readOnly": true + }, + "checksum_sha1": { + "type": "string", + "readOnly": true + }, + "checksum_sha256": { + "type": "string", + "readOnly": true + }, + "checksum_sha512": { + "type": "string", + "readOnly": true + }, + "description": { + "type": "string", + "nullable": true, + "description": "A textual description of this package.", + "maxLength": 12288 + }, + "distro": { + "$ref": "#/components/schemas/PolicyDistribution" + }, + "distro_version": { + "$ref": "#/components/schemas/PolicyDistributionVersion" + }, + "epoch": { + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "nullable": true, + "description": "The epoch of the package version (if any)." + }, + "extension": { + "type": "string", + "readOnly": true + }, + "filename": { + "type": "string", + "maxLength": 255 + }, + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyPackageFile" + } + }, + "format": { + "type": "string" + }, + "indexed": { + "type": "boolean" + }, + "license": { + "type": "string", + "nullable": true, + "description": "The license of this package.", + "maxLength": 128 + }, + "name": { + "type": "string", + "nullable": true, + "description": "The name of this package.", + "maxLength": 200 + }, + "num_files": { + "type": "integer", + "maximum": 2147483647, + "minimum": 0 + }, + "package_type": { + "$ref": "#/components/schemas/PackageTypeEnum" + }, + "release": { + "type": "string", + "nullable": true, + "description": "The release of the package version (if any).", + "maxLength": 96 + }, + "security_scan_status": { + "$ref": "#/components/schemas/SecurityScanStatusEnum" + }, + "security_scan_status_updated_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "The datetime the security scanning status was updated." + }, + "security_scan_started_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "The datetime the security scanning was started." + }, + "security_scan_completed_at": { + "type": "string", + "format": "date-time", + "nullable": true, + "description": "The datetime the security scanning was completed." + }, + "size": { + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "format": "int64", + "description": "The calculated size of the package." + }, + "slug": { + "type": "string", + "readOnly": true, + "description": "The public unique identifier for the package.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "slug_perm": { + "type": "string", + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "subtype": { + "type": "string", + "readOnly": true + }, + "summary": { + "type": "string", + "nullable": true, + "description": "A one-liner synopsis of this package.", + "maxLength": 255 + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyPackageTag" + } + }, + "uploaded_at": { + "type": "string", + "format": "date-time", + "description": "The date this package was uploaded." + }, + "uploader": { + "$ref": "#/components/schemas/PolicyUploader" + }, + "version": { + "type": "string", + "nullable": true, + "description": "The raw version for this package.", + "maxLength": 128 + } + }, + "required": [ + "architectures", + "checksum_md5", + "checksum_sha1", + "checksum_sha256", + "checksum_sha512", + "distro", + "distro_version", + "extension", + "filename", + "files", + "format", + "package_type", + "security_scan_status", + "slug", + "subtype", + "tags" + ] + }, + "PolicyPackageFile": { + "type": "object", + "description": "Serializer for package files for policy purposes.", + "properties": { + "checksum_md5": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{32}$", + "maxLength": 32 + }, + "checksum_sha1": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{40}$", + "maxLength": 40 + }, + "checksum_sha256": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{64}$", + "maxLength": 64 + }, + "checksum_sha512": { + "type": "string", + "nullable": true, + "pattern": "^[a-fA-F0-9]{128}$", + "maxLength": 128 + }, + "filename": { + "type": "string", + "maxLength": 255 + }, + "is_primary": { + "type": "string", + "readOnly": true + }, + "size": { + "type": "integer", + "maximum": 9223372036854776000, + "minimum": -9223372036854776000, + "format": "int64", + "description": "The calculated size of the file." + }, + "slug_perm": { + "type": "string", + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "tag": { + "type": "string", + "nullable": true, + "description": "Freeform descriptor that describes what the file is.", + "maxLength": 255 + } + }, + "required": ["filename", "is_primary"] + }, + "PolicyPackageTag": { + "type": "object", + "description": "A package tag that labels packages with additional information.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date this tag was created." + }, + "is_immutable": { + "type": "boolean", + "description": "If true, the tag is immutable and cannot be (normally) removed." + }, + "name": { + "type": "string", + "description": "The name for the tag.", + "maxLength": 255 + }, + "source": { + "$ref": "#/components/schemas/PackageTagSourceTypeEnum" + }, + "tag_type": { + "$ref": "#/components/schemas/PackageTagTypeEnum" + } + }, + "required": ["name", "source", "tag_type"] + }, + "PolicyRepository": { + "type": "object", + "description": "Serializer for the Repository model for policy purposes.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string", + "description": "A description of the repository's purpose/contents.", + "maxLength": 1000 + }, + "ecdsa_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepositoryEcdsaKey" + } + }, + "gpg_keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepositoryGpgKey" + } + }, + "name": { + "type": "string", + "description": "A descriptive name for the repository.", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50 + }, + "open_source_license": { + "type": "string", + "nullable": true + }, + "repository_type": { + "$ref": "#/components/schemas/RepositoryTypeEnum" + }, + "slug": { + "type": "string", + "description": "The slug identifies the repository in URIs.", + "maxLength": 50, + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "slug_perm": { + "type": "string", + "description": "The slug_perm immutably identifies the repository. It will never change once a repository has been created.", + "maxLength": 16, + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "storage_region": { + "type": "string", + "readOnly": true + } + }, + "required": [ + "ecdsa_keys", + "gpg_keys", + "name", + "open_source_license", + "repository_type", + "storage_region" + ] + }, + "PolicyRepositoryEcdsaKey": { + "type": "object", + "description": "An ECDSA key used to sign repository contents.", + "properties": { + "active": { + "type": "boolean", + "description": "If selected this is the active key for this repository." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "default": { + "type": "boolean", + "description": "If selected this is the default key for this repository." + }, + "fingerprint_short": { + "type": "string", + "readOnly": true + }, + "fingerprint": { + "type": "string", + "description": "The long identifier used by ECDSA for this key.", + "maxLength": 32 + }, + "public_key": { + "type": "string", + "description": "The public key given to repository users." + }, + "ssh_fingerprint": { + "type": "string", + "nullable": true, + "description": "The SSH fingerprint used by ECDSA for this key.", + "maxLength": 128 + } + }, + "required": ["fingerprint", "fingerprint_short", "public_key"] + }, + "PolicyRepositoryGpgKey": { + "type": "object", + "description": "A GPG key used to sign repository contents.", + "properties": { + "active": { + "type": "boolean", + "description": "If selected this is the active key for this repository." + }, + "comment": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "default": { + "type": "boolean", + "description": "If selected this is the default key for this repository." + }, + "fingerprint_short": { + "type": "string", + "readOnly": true + }, + "fingerprint": { + "type": "string", + "description": "The long identifier used by GPG for this key.", + "maxLength": 40 + }, + "public_key": { + "type": "string", + "description": "The public key given to repository users." + } + }, + "required": ["comment", "fingerprint", "fingerprint_short", "public_key"] + }, + "PolicyUploader": { + "type": "object", + "description": "Serializer for packager uploader for policy puposes.", + "properties": { + "email": { + "type": "string", + "format": "email", + "nullable": true, + "title": "Email address", + "description": "Your email address that we use to contact you. This is only visible to you.", + "maxLength": 254 + }, + "first_name": { + "type": "string", + "maxLength": 120 + }, + "last_name": { + "type": "string", + "maxLength": 120 + }, + "slug": { + "type": "string", + "readOnly": true + }, + "slug_perm": { + "type": "string", + "readOnly": true + } + }, + "required": ["first_name", "last_name", "slug", "slug_perm"] + }, + "PolicyWorkspace": { + "type": "object", + "description": "Representation of a Workspace used in Policy input.", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "country": { + "nullable": true, + "description": "The country your workspace is based in.\n\n* `AF` - Afghanistan\n* `AX` - Åland Islands\n* `AL` - Albania\n* `DZ` - Algeria\n* `AS` - American Samoa\n* `AD` - Andorra\n* `AO` - Angola\n* `AI` - Anguilla\n* `AQ` - Antarctica\n* `AG` - Antigua and Barbuda\n* `AR` - Argentina\n* `AM` - Armenia\n* `AW` - Aruba\n* `AU` - Australia\n* `AT` - Austria\n* `AZ` - Azerbaijan\n* `BS` - Bahamas\n* `BH` - Bahrain\n* `BD` - Bangladesh\n* `BB` - Barbados\n* `BY` - Belarus\n* `BE` - Belgium\n* `BZ` - Belize\n* `BJ` - Benin\n* `BM` - Bermuda\n* `BT` - Bhutan\n* `BO` - Bolivia\n* `BQ` - Bonaire, Sint Eustatius and Saba\n* `BA` - Bosnia and Herzegovina\n* `BW` - Botswana\n* `BV` - Bouvet Island\n* `BR` - Brazil\n* `IO` - British Indian Ocean Territory\n* `BN` - Brunei\n* `BG` - Bulgaria\n* `BF` - Burkina Faso\n* `BI` - Burundi\n* `CV` - Cabo Verde\n* `KH` - Cambodia\n* `CM` - Cameroon\n* `CA` - Canada\n* `KY` - Cayman Islands\n* `CF` - Central African Republic\n* `TD` - Chad\n* `CL` - Chile\n* `CN` - China\n* `CX` - Christmas Island\n* `CC` - Cocos (Keeling) Islands\n* `CO` - Colombia\n* `KM` - Comoros\n* `CG` - Congo\n* `CD` - Congo (the Democratic Republic of the)\n* `CK` - Cook Islands\n* `CR` - Costa Rica\n* `CI` - Côte d'Ivoire\n* `HR` - Croatia\n* `CU` - Cuba\n* `CW` - Curaçao\n* `CY` - Cyprus\n* `CZ` - Czechia\n* `DK` - Denmark\n* `DJ` - Djibouti\n* `DM` - Dominica\n* `DO` - Dominican Republic\n* `EC` - Ecuador\n* `EG` - Egypt\n* `SV` - El Salvador\n* `GQ` - Equatorial Guinea\n* `ER` - Eritrea\n* `EE` - Estonia\n* `SZ` - Eswatini\n* `ET` - Ethiopia\n* `FK` - Falkland Islands (Malvinas)\n* `FO` - Faroe Islands\n* `FJ` - Fiji\n* `FI` - Finland\n* `FR` - France\n* `GF` - French Guiana\n* `PF` - French Polynesia\n* `TF` - French Southern Territories\n* `GA` - Gabon\n* `GM` - Gambia\n* `GE` - Georgia\n* `DE` - Germany\n* `GH` - Ghana\n* `GI` - Gibraltar\n* `GR` - Greece\n* `GL` - Greenland\n* `GD` - Grenada\n* `GP` - Guadeloupe\n* `GU` - Guam\n* `GT` - Guatemala\n* `GG` - Guernsey\n* `GN` - Guinea\n* `GW` - Guinea-Bissau\n* `GY` - Guyana\n* `HT` - Haiti\n* `HM` - Heard Island and McDonald Islands\n* `VA` - Holy See\n* `HN` - Honduras\n* `HK` - Hong Kong\n* `HU` - Hungary\n* `IS` - Iceland\n* `IN` - India\n* `ID` - Indonesia\n* `IR` - Iran\n* `IQ` - Iraq\n* `IE` - Ireland\n* `IM` - Isle of Man\n* `IL` - Israel\n* `IT` - Italy\n* `JM` - Jamaica\n* `JP` - Japan\n* `JE` - Jersey\n* `JO` - Jordan\n* `KZ` - Kazakhstan\n* `KE` - Kenya\n* `KI` - Kiribati\n* `KW` - Kuwait\n* `KG` - Kyrgyzstan\n* `LA` - Laos\n* `LV` - Latvia\n* `LB` - Lebanon\n* `LS` - Lesotho\n* `LR` - Liberia\n* `LY` - Libya\n* `LI` - Liechtenstein\n* `LT` - Lithuania\n* `LU` - Luxembourg\n* `MO` - Macao\n* `MG` - Madagascar\n* `MW` - Malawi\n* `MY` - Malaysia\n* `MV` - Maldives\n* `ML` - Mali\n* `MT` - Malta\n* `MH` - Marshall Islands\n* `MQ` - Martinique\n* `MR` - Mauritania\n* `MU` - Mauritius\n* `YT` - Mayotte\n* `MX` - Mexico\n* `FM` - Micronesia\n* `MD` - Moldova\n* `MC` - Monaco\n* `MN` - Mongolia\n* `ME` - Montenegro\n* `MS` - Montserrat\n* `MA` - Morocco\n* `MZ` - Mozambique\n* `MM` - Myanmar\n* `NA` - Namibia\n* `NR` - Nauru\n* `NP` - Nepal\n* `NL` - Netherlands\n* `NC` - New Caledonia\n* `NZ` - New Zealand\n* `NI` - Nicaragua\n* `NE` - Niger\n* `NG` - Nigeria\n* `NU` - Niue\n* `NF` - Norfolk Island\n* `KP` - North Korea\n* `MK` - North Macedonia\n* `MP` - Northern Mariana Islands\n* `NO` - Norway\n* `OM` - Oman\n* `PK` - Pakistan\n* `PW` - Palau\n* `PS` - Palestine, State of\n* `PA` - Panama\n* `PG` - Papua New Guinea\n* `PY` - Paraguay\n* `PE` - Peru\n* `PH` - Philippines\n* `PN` - Pitcairn\n* `PL` - Poland\n* `PT` - Portugal\n* `PR` - Puerto Rico\n* `QA` - Qatar\n* `RE` - Réunion\n* `RO` - Romania\n* `RU` - Russia\n* `RW` - Rwanda\n* `BL` - Saint Barthélemy\n* `SH` - Saint Helena, Ascension and Tristan da Cunha\n* `KN` - Saint Kitts and Nevis\n* `LC` - Saint Lucia\n* `MF` - Saint Martin (French part)\n* `PM` - Saint Pierre and Miquelon\n* `VC` - Saint Vincent and the Grenadines\n* `WS` - Samoa\n* `SM` - San Marino\n* `ST` - Sao Tome and Principe\n* `SA` - Saudi Arabia\n* `SN` - Senegal\n* `RS` - Serbia\n* `SC` - Seychelles\n* `SL` - Sierra Leone\n* `SG` - Singapore\n* `SX` - Sint Maarten (Dutch part)\n* `SK` - Slovakia\n* `SI` - Slovenia\n* `SB` - Solomon Islands\n* `SO` - Somalia\n* `ZA` - South Africa\n* `GS` - South Georgia and the South Sandwich Islands\n* `KR` - South Korea\n* `SS` - South Sudan\n* `ES` - Spain\n* `LK` - Sri Lanka\n* `SD` - Sudan\n* `SR` - Suriname\n* `SJ` - Svalbard and Jan Mayen\n* `SE` - Sweden\n* `CH` - Switzerland\n* `SY` - Syria\n* `TW` - Taiwan\n* `TJ` - Tajikistan\n* `TZ` - Tanzania\n* `TH` - Thailand\n* `TL` - Timor-Leste\n* `TG` - Togo\n* `TK` - Tokelau\n* `TO` - Tonga\n* `TT` - Trinidad and Tobago\n* `TN` - Tunisia\n* `TR` - Türkiye\n* `TM` - Turkmenistan\n* `TC` - Turks and Caicos Islands\n* `TV` - Tuvalu\n* `UG` - Uganda\n* `UA` - Ukraine\n* `AE` - United Arab Emirates\n* `GB` - United Kingdom\n* `UM` - United States Minor Outlying Islands\n* `US` - United States of America\n* `UY` - Uruguay\n* `UZ` - Uzbekistan\n* `VU` - Vanuatu\n* `VE` - Venezuela\n* `VN` - Vietnam\n* `VG` - Virgin Islands (British)\n* `VI` - Virgin Islands (U.S.)\n* `WF` - Wallis and Futuna\n* `EH` - Western Sahara\n* `YE` - Yemen\n* `ZM` - Zambia\n* `ZW` - Zimbabwe", + "oneOf": [ + { + "$ref": "#/components/schemas/CountryEnum" + }, + { + "$ref": "#/components/schemas/BlankEnum" + }, + { + "$ref": "#/components/schemas/NullEnum" + } + ] + }, + "location": { + "type": "string", + "nullable": true, + "description": "The city/town/area your workspace is based in.", + "maxLength": 60 + }, + "name": { + "type": "string", + "description": "A descriptive name for your workspace.", + "pattern": "^\\w[\\w \\-'\\.\\/()]+$", + "maxLength": 50 + }, + "slug": { + "type": "string", + "readOnly": true + }, + "slug_perm": { + "type": "string", + "readOnly": true + }, + "tagline": { + "type": "string", + "nullable": true, + "description": "A short public descriptive for your workspace.", + "maxLength": 80 + } + }, + "required": ["name", "slug", "slug_perm"] + }, + "RepositoryTypeEnum": { + "enum": ["PUBLIC", "PRIVATE", "OPEN_SOURCE"], + "type": "string", + "description": "* `PUBLIC` - Public\n* `PRIVATE` - Private\n* `OPEN_SOURCE` - Open-Source" + }, + "SecurityScanStatusEnum": { + "enum": [ + "AWAITING_SCAN", + "SCANNING", + "VULNERABLE", + "NOT_VULNERABLE", + "DISABLED", + "FAILED", + "SKIPPED", + "UNSUPPORTED_PACKAGE", + "UNSUPPORTED_FORMAT" + ], + "type": "string", + "description": "* `AWAITING_SCAN` - Awaiting Security Scan\n* `SCANNING` - Security Scanning in Progress\n* `VULNERABLE` - Scan Detected Vulnerabilities\n* `NOT_VULNERABLE` - Scan Detected No Vulnerabilities\n* `DISABLED` - Security Scanning Disabled\n* `FAILED` - Security Scanning Failed\n* `SKIPPED` - Security Scanning Skipped\n* `UNSUPPORTED_PACKAGE` - Security Scanning Not Supported\n* `UNSUPPORTED_FORMAT` - Security Scanning Not Supported" + }, + "SetPackageStatePolicyAction": { + "type": "object", + "properties": { + "precedence": { + "type": "integer", + "maximum": 32767, + "minimum": 0, + "description": "The order in which this action occurs relative to other actions for the same policy." + }, + "slug_perm": { + "type": "string", + "readOnly": true, + "description": "The Action identifier.", + "pattern": "^[-a-zA-Z0-9_]+$" + }, + "created_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "The date and time the policy was updated." + }, + "effect": { + "type": "string", + "readOnly": true + }, + "package_state": { + "$ref": "#/components/schemas/PackageStateEnum" + } + }, + "required": ["created_at", "effect", "package_state", "slug_perm", "updated_at"] + }, + "SetPackageStatePolicyActionTyped": { + "allOf": [ + { + "type": "object", + "properties": { + "action_type": { + "type": "string" + } + }, + "required": ["action_type"] + }, + { + "$ref": "#/components/schemas/SetPackageStatePolicyAction" + } + ] + }, + "SeverityEnum": { + "enum": ["LOW", "MEDIUM", "HIGH", "CRITICAL"], + "type": "string", + "description": "* `LOW` - LOW\n* `MEDIUM` - MEDIUM\n* `HIGH` - HIGH\n* `CRITICAL` - CRITICAL" + } }, - "servers": [ - { - "url": "https://api.cloudsmith.io/v2/" - } - ], - "externalDocs": { - "url": "https://help.cloudsmith.io/reference/introduction", - "description": "Cloudsmith API Reference" + "securitySchemes": { + "apikey": { + "type": "apiKey", + "in": "header", + "name": "X-Api-Key" + }, + "basic": { + "type": "http", + "scheme": "basic" + } + } + }, + "servers": [ + { + "url": "https://api.cloudsmith.io/v2/" } -} \ No newline at end of file + ], + "externalDocs": { + "url": "https://help.cloudsmith.io/reference/introduction", + "description": "Cloudsmith API Reference" + } +} diff --git a/src/lib/search/server.ts b/src/lib/search/server.ts index 4580b2b6..c52d7c9c 100644 --- a/src/lib/search/server.ts +++ b/src/lib/search/server.ts @@ -5,7 +5,7 @@ import { readFile } from 'fs/promises'; import { FullOptions, Searcher } from 'fast-fuzzy'; import { SearchInput, SearchResult } from './types'; -import { parseSchema, toOperations } from '../swagger/parse'; +import { parseSchemas, toOperations } from '../swagger/parse'; import { apiOperationPath } from '../swagger/util'; import { contentPath, loadMdxInfo } from '../markdown/util'; import { extractMdxMetadata } from '../metadata/util'; @@ -40,8 +40,8 @@ export const performSearch = async ( } // OpenApi - const schema = await parseSchema(); - const operations = toOperations(schema); + const schemas = await parseSchemas(); + const operations = toOperations(schemas); for (let i = 0; i < operations.length; i++) { const op = operations[i]; items.push({ diff --git a/src/lib/swagger/parse.test.ts b/src/lib/swagger/parse.test.ts index f857d089..4badc598 100644 --- a/src/lib/swagger/parse.test.ts +++ b/src/lib/swagger/parse.test.ts @@ -1,58 +1,120 @@ import { OpenAPIV3 } from 'openapi-types'; -import { parseSchema, toMenuItems, toOperations } from './parse'; +import { parseSchemas, toMenuItems, toOperations } from './parse'; describe('lib', () => { describe('swagger', () => { describe('parse.ts', () => { - describe('parseSchema', () => { - test('it parses the schema', async () => { - const schema = await parseSchema(); - expect(schema.openapi).toBe('3.0.0'); - expect(Object.keys(schema.paths).length).toBeGreaterThan(20); - }); - test('it resolves refs', async () => { - const schema = await parseSchema(); - const responseObject = schema?.paths['/orgs']?.get?.responses['400'] as OpenAPIV3.ResponseObject; - const schemaObject = responseObject?.content?.['application/json'] - ?.schema as OpenAPIV3.SchemaObject; - expect(schemaObject.type).toEqual('object'); + describe('parseSchemas', () => { + test('it dynamically parses all schema files with versionAlias', async () => { + const schemas = await parseSchemas(); + expect(schemas.length).toBeGreaterThanOrEqual(2); + + // Should have schemas with version aliases + const versions = schemas.map((s) => s.version).sort(); + expect(versions).toContain('v1'); + expect(versions).toContain('v2'); + + // Each schema should have the expected structure + for (const { schema, version } of schemas) { + expect(schema.openapi).toMatch(/^3\.0\./); + expect(schema.info).toBeDefined(); + expect(schema.paths).toBeDefined(); + expect(version).toBeTruthy(); + } }); }); - // TODO: Update test when we have the proper data describe('toOperations', () => { - test('it creates flat array of operation objects', async () => { - const schema = await parseSchema(); - const result = toOperations(schema); - expect(result.length).toBeGreaterThan(4); - - const operation = result.find((op) => op.operationId === 'orgs_list'); - expect(operation).toBeDefined(); - expect(operation?.menuSegments).toEqual(['Orgs', 'List']); - expect(operation?.path).toEqual('/orgs'); - expect(operation?.method).toEqual('get'); - expect(operation?.slug).toEqual('orgs/list'); - expect(operation?.title).toEqual('Orgs List'); + test('it creates flat array of operation objects from multiple schemas with correct versions', async () => { + const schemas = await parseSchemas(); + const result = toOperations(schemas); + expect(result.length).toBeGreaterThan(10); + + // Check that operations have correct version information + const uniqueVersions = Array.from(new Set(result.map((op) => op.version))); + expect(uniqueVersions.length).toBeGreaterThanOrEqual(2); + expect(uniqueVersions).toContain('v1'); + expect(uniqueVersions).toContain('v2'); + + // Find a specific operation from v2 (policies are v2 only) + const policyOperation = result.find((op) => op.operationId === 'workspaces_policies_list'); + expect(policyOperation).toBeDefined(); + expect(policyOperation?.version).toBe('v2'); + expect(policyOperation?.path).toMatch(/^\/workspaces/); + + // Verify all operations have required fields + for (const operation of result) { + expect(operation.version).toBeTruthy(); + expect(operation.path).toBeTruthy(); + expect(operation.method).toBeTruthy(); + expect(operation.slug).toBeTruthy(); + expect(operation.title).toBeTruthy(); + expect(operation.menuSegments).toBeInstanceOf(Array); + } + }); + + test('it throws error for duplicate paths between schemas', () => { + // Create mock schemas with duplicate paths + const mockSchemas = [ + { + version: 'v1', + schema: { + openapi: '3.0.0', + info: { title: 'Test API', version: '1.0.0', versionAlias: 'v1' }, + paths: { + '/test': { + get: { + operationId: 'test_get_v1', + responses: { '200': { description: 'Success' } }, + }, + }, + }, + } as OpenAPIV3.Document, + }, + { + version: 'v2', + schema: { + openapi: '3.0.0', + info: { title: 'Test API', version: '2.0.0', versionAlias: 'v2' }, + paths: { + '/test': { + get: { + operationId: 'test_get_v2', + responses: { '200': { description: 'Success' } }, + }, + }, + }, + } as OpenAPIV3.Document, + }, + ]; + + expect(() => toOperations(mockSchemas)).toThrow('Duplicate API endpoint detected: GET /test'); }); }); - // TODO: Update test when we have the proper data describe('toMenuItems', () => { - test('it creates menu items', async () => { - const schema = await parseSchema(); - const operations = toOperations(schema); + test('it creates menu items from multiple schemas operations', async () => { + const schemas = await parseSchemas(); + const operations = toOperations(schemas); const result = toMenuItems(operations); - const parentItem = result.find((res) => res.title === 'Formats'); - const childItem = parentItem?.children?.[0]; + // Should have operations from multiple versions + expect(result.length).toBeGreaterThan(0); - expect(parentItem?.title).toBe('Formats'); - expect(parentItem?.path).toEqual('/api/formats/list'); // Parents always link to the first item - expect(parentItem?.method).toBeUndefined(); + // Check that we have some operations that would be from v2 (like Policies) + const workspacesItem = result.find((res) => res.title === 'Workspaces'); + expect(workspacesItem).toBeDefined(); - expect(childItem?.title).toEqual('List'); - expect(childItem?.method).toEqual('get'); - expect(childItem?.path).toEqual('/api/formats/list'); + // Verify menu structure + for (const item of result) { + expect(item.title).toBeTruthy(); + if (item.path) { + expect(item.path).toMatch(/^\/api\//); + } + if (item.children) { + expect(item.children).toBeInstanceOf(Array); + } + } }); }); }); diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index 38403ca8..636e7af5 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -1,46 +1,116 @@ import SwaggerParser from '@apidevtools/swagger-parser'; import { OpenAPIV3 } from 'openapi-types'; +import { readdir, readFile } from 'fs/promises'; +import path from 'path'; import { ApiOperation } from './types'; import { isHttpMethod, createSlug, parseMenuSegments, apiOperationPath, createTitle } from './util'; import { MenuItem } from '../menu/types'; +const SCHEMAS_DIR = 'src/content/schemas'; + /** - * Parses the swagger schema with the Swagger Parser library to resolve refs + * Dynamically parses all swagger schema files in the schemas directory and returns them as an array */ -export const parseSchema = async (): Promise => { - const schema = (await SwaggerParser.dereference( - `src/content/schemas/api-schema-v1.json`, - )) as OpenAPIV3.Document; +export const parseSchemas = async (): Promise<{ schema: OpenAPIV3.Document; version: string }[]> => { + try { + // Read all files in the schemas directory + const files = await readdir(SCHEMAS_DIR); + const jsonFiles = files.filter((file) => file.endsWith('.json')); - if (!schema) { - throw new Error('Failed to parse API schema'); - } + if (jsonFiles.length === 0) { + throw new Error(`No JSON schema files found in ${SCHEMAS_DIR}`); + } + + const schemas: { schema: OpenAPIV3.Document; version: string }[] = []; + + for (const file of jsonFiles) { + const filePath = path.join(SCHEMAS_DIR, file); + + try { + // First, read the file to extract versionAlias + const fileContent = await readFile(filePath, 'utf-8'); + const rawSchema = JSON.parse(fileContent); + + const versionAlias = rawSchema?.info?.versionAlias; + if (!versionAlias) { + console.warn(`Warning: No versionAlias found in ${file}, skipping`); + continue; + } + + // Parse and dereference the schema + const schema = (await SwaggerParser.dereference(filePath)) as OpenAPIV3.Document; + + schemas.push({ + schema, + version: versionAlias, + }); + + console.log(`✓ Loaded schema: ${file} (version: ${versionAlias})`); + } catch (error) { + console.error(`Error processing ${file}:`, error); + throw new Error(`Failed to parse schema file: ${file}`); + } + } - return schema; + if (schemas.length === 0) { + throw new Error('No valid schemas with versionAlias found'); + } + + // Sort schemas by version for consistent ordering + schemas.sort((a, b) => a.version.localeCompare(b.version)); + + return schemas; + } catch (error) { + if (error instanceof Error) { + throw new Error(`Failed to parse API schemas: ${error.message}`); + } + throw new Error('Failed to parse API schemas'); + } }; /** - * Transforms the schema into a flat array of our custom ApiOperation type. + * Transforms multiple schemas into a flat array of our custom ApiOperation type. * This makes it a bit easier to work with when generating the content pages. + * Adds version information and checks for duplicate endpoints. */ -export const toOperations = (schema: OpenAPIV3.Document): ApiOperation[] => { +export const toOperations = (schemas: { schema: OpenAPIV3.Document; version: string }[]): ApiOperation[] => { const operations: ApiOperation[] = []; + const pathMethodTracker = new Map(); // Track path+method combinations and their versions - for (const path in schema.paths) { - const pathObject = schema.paths[path]; - for (const method in pathObject) { - if (isHttpMethod(method)) { - const operation = pathObject[method as keyof OpenAPIV3.PathItemObject] as OpenAPIV3.OperationObject; - const menuSegments = parseMenuSegments(operation.operationId); - const slug = createSlug(menuSegments); - operations.push({ - ...(operation as ApiOperation), - method: method as OpenAPIV3.HttpMethods, - path, - menuSegments, - slug, - title: createTitle(menuSegments), - }); + for (const { schema, version } of schemas) { + for (const path in schema.paths) { + const pathObject = schema.paths[path]; + for (const method in pathObject) { + if (isHttpMethod(method)) { + const pathMethodKey = `${method.toUpperCase()} ${path}`; + + if (pathMethodTracker.has(pathMethodKey)) { + const existingVersion = pathMethodTracker.get(pathMethodKey); + throw new Error( + `Duplicate API endpoint detected: ${pathMethodKey}\n` + + `This endpoint exists in both ${existingVersion} and ${version} schemas.\n` + + `Please ensure each endpoint exists in only one API version.`, + ); + } + + pathMethodTracker.set(pathMethodKey, version); + + const operation = pathObject[method as keyof OpenAPIV3.PathItemObject] as OpenAPIV3.OperationObject; + const menuSegments = parseMenuSegments(operation.operationId); + const slug = createSlug(menuSegments); + + const cleanPath = path.replace(/\/$/, ''); + + operations.push({ + ...(operation as ApiOperation), + method: method as OpenAPIV3.HttpMethods, + path: cleanPath, + version, + menuSegments, + slug, + title: createTitle(menuSegments), + }); + } } } } diff --git a/src/lib/swagger/types.ts b/src/lib/swagger/types.ts index 515ca783..93bf7fa7 100644 --- a/src/lib/swagger/types.ts +++ b/src/lib/swagger/types.ts @@ -13,6 +13,7 @@ export interface ApiOperation { menuSegments: string[]; slug: string; title: string; + version: string; // From OpenAPIV3.OperationObject tags?: string[]; From a7cdf9b7d438a1cfabaf7665990d8915a22903b2 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 2 Jul 2025 17:47:49 +0200 Subject: [PATCH 018/127] edit --- src/lib/swagger/parse.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index 636e7af5..b8c7d14d 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -25,7 +25,6 @@ export const parseSchemas = async (): Promise<{ schema: OpenAPIV3.Document; vers for (const file of jsonFiles) { const filePath = path.join(SCHEMAS_DIR, file); - try { // First, read the file to extract versionAlias const fileContent = await readFile(filePath, 'utf-8'); From cf5d84058e6e9f2c50af9488fcba3b2c8bf45ac6 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 3 Jul 2025 10:12:02 +0200 Subject: [PATCH 019/127] add(Claire's review) --- .../epm/continuous-security.mdx | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/content/supply-chain-security/epm/continuous-security.mdx b/src/content/supply-chain-security/epm/continuous-security.mdx index f5ad596b..8208f76d 100644 --- a/src/content/supply-chain-security/epm/continuous-security.mdx +++ b/src/content/supply-chain-security/epm/continuous-security.mdx @@ -8,23 +8,22 @@ Attackers move fast, often exploiting a newly-disclosed vulnerability within hou This documentation page aims at clarifying the distinction between Continuous Security and other vulnerability scanning methods, such as on-demand and scheduled scans. -## Understanding the Three Types of Security Scans +## Evolving Security Scanning -There are three primary types of security features available: +To provide an almost real-time experience to deliver security feedback, Cloudsmith's scanning features have evolved. We offer both traditional scanning methods for deep, point-in-time analysis and a modern, continuous approach for immediate awareness of new threats. -1. **On-Demand Scanning**: This is a manual scan that can be triggered at any time for a package. It is a computationally intensive operation that provides a detailed vulnerability analysis. +### **On-Demand & Scheduled Scans _(Classic Vulnerability Scanning)_** -2. **Scheduled Scans**: These are essentially on-demand scans that are configured to run on a recurring schedule for a specific organization. They perform the same function as on-demand scans but on an automated cadence. +These scans perform a comprehensive, deep-dive analysis of a package to produce a complete vulnerability report. Because they analyze the entire package from scratch, they are perfect for an initial audit or for generating a definitive report at a specific point in time. +- **On-Demand**: A manual scan you can trigger at any time. +- **Scheduled**: An automated scan that runs on a recurring cadence. -3. **Continuous Security**: This is an always-on process that provides a more immediate and efficient way of assessing vulnerabilities. Unlike on-demand or scheduled scans, Continuous Security does not require a full, heavy scan of a package each time. Instead, it leverages existing data and new vulnerability advisories to provide up-to-date security information. +### **Continuous Security** - -📘 Both Continuous Security and traditional on-demand/scheduled scans currently use **Trivi** as their underlying vulnerability data source. This means there is a high degree of parity between the vulnerability information available from both methods. - -Within the EPM input metadata, you can access data from both: +This is the evolution of vulnerability management, designed to close the critical time gap that periodic scans leave open. Instead of re-scanning packages from scratch, Continuous Security instantly checks your packages against **new** vulnerability advisories as they are published. When a new threat is discovered that affects your software, this "always-on" process provides immediate feedback, alerting you to the risk without the delay of waiting for the next scheduled scan. -- The `security_scan` object contains the results from a traditional on-demand or scheduled scan. -- The `vulnerabilities` object is populated by Continuous Security and includes additional information like EPSS (Exploit Prediction Scoring System) scores. + +📘 Both Continuous Security and traditional on-demand/scheduled scans currently use **Trivi** as their underlying vulnerability data source. Additionally, Continuous Security also enriches CVE information with a relevant [EPSS](https://www.first.org/epss/data_stats) score. ## How Continuous Security Works @@ -36,7 +35,7 @@ Continuous Security is enabled by default for all users using EPM. Its primary f - For other package types, Package URLs (PURLs) are used to match against advisories. 2. **When the vulnerability advisory database is updated**: Our system frequently pulls the latest vulnerability advisories (approximately every hour). When new advisories are added, existing packages are checked against this new information. -This frequent, near-constant checking ensures that vulnerability information for your packages is always current, without the need for repeated, resource-intensive full scans. +This frequent, near-constant checking ensures that vulnerability information for your packages is always current. Hence, those changes in the vulnerability data will trigger an EPM policy reevaluation, that might quarantine risky assets in case of a policy violation. ### The Role of Continuous Sercurity in EPM @@ -46,8 +45,8 @@ When a Continuous Security check finds a new vulnerability that matches the crit In essence, Continuous Security provides the real-time data feed, and EPM provides the automated action and enforcement based on that data that you can apply in all your Cloudsmith Workspaces. -#### Continuous Security traces +{/* #### Continuous Security traces At present, the direct output of Continuous Security is primarily visible through the **EPM Decision Log**. When a policy is triggered due to a new vulnerability discovered by Continuous Security, the Decision Log will show the evaluation and the resulting action. -It is important to note that the main package vulnerability list in the UI is populated by the traditional on-demand or scheduled scans, not by Continuous Security. Therefore, the EPM Decision Log is the most accurate place to see the impact of Continuous Security. \ No newline at end of file +It is important to note that the main package vulnerability list in the UI is populated by the traditional on-demand or scheduled scans, not by Continuous Security. Therefore, the EPM Decision Log is the most accurate place to see the impact of Continuous Security. */} \ No newline at end of file From cb0741556ddf2d74ac120a8ef57b7633ca72012a Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 3 Jul 2025 16:48:57 +0200 Subject: [PATCH 020/127] epm: @clairemcdyre feedback --- .../epm/continuous-security.mdx | 44 +++++++++++++++---- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/content/supply-chain-security/epm/continuous-security.mdx b/src/content/supply-chain-security/epm/continuous-security.mdx index 8208f76d..892ae558 100644 --- a/src/content/supply-chain-security/epm/continuous-security.mdx +++ b/src/content/supply-chain-security/epm/continuous-security.mdx @@ -2,28 +2,29 @@ import { Note } from '@/components' # Continuous Security -Cloudsmith's continuous Security is one of the key components of Enterprise Policy Management (EPM), guaranteeing that the information about Software vulnerabilities and other advisories in your artifacts are up to date. +Cloudsmith's Continuous Security is one of the key components of Enterprise Policy Management (EPM), guaranteeing that the information about software vulnerabilities and other advisories in your artifacts are up to date. -Attackers move fast, often exploiting a newly-disclosed vulnerability within hours. If your security scan only runs once every few days, you’re leaving a wide-open gap for a breach. This window of exposure is the critical period where you are vulnerable and don't even know it. In modern software, where a single flaw in a small, shared library can compromise everything, you can't afford that delay. A near real-time feed of new vulnerabilities closes that gap. It means you can find out about a threat almost as soon as it's known, giving you the chance to quarantine a risky package or apply a patch before it can be used against you. +Attackers move fast, often exploiting a newly-disclosed vulnerability within hours. If your security scan only runs once every few days, you're significantly increasing your organization's risk of a breach. This window of exposure is the critical period where you are vulnerable and don't even know it. In modern software, where a single flaw in a small, shared library can compromise everything, you can't afford that delay. A near real-time feed of new vulnerabilities closes that gap. It means you can find out about a threat almost as soon as it's known, giving you the chance to quarantine a risky package or apply a patch before it can be used against you. -This documentation page aims at clarifying the distinction between Continuous Security and other vulnerability scanning methods, such as on-demand and scheduled scans. +With Cloudsmith, your organization can already leverage on-demand and scheduled vulnerability scans of your artifacts (link to vulnerability scanning section). Via EPM, your organization can also access an additional near-real-time feed of vulnerabilities under a component known as Continuous Security. This documentation page aims at clarifying the distinction between Continuous Security and other vulnerability scanning methods, such as on-demand and scheduled scans. ## Evolving Security Scanning -To provide an almost real-time experience to deliver security feedback, Cloudsmith's scanning features have evolved. We offer both traditional scanning methods for deep, point-in-time analysis and a modern, continuous approach for immediate awareness of new threats. +Cloudsmith's scanning features are evolving to provide an almost real-time experience for delivering security feedback. We offer both traditional scanning methods for deep, point-in-time analysis and a modern, continuous approach for immediate awareness of new threats. -### **On-Demand & Scheduled Scans _(Classic Vulnerability Scanning)_** +### On-Demand & Scheduled Scans _(Classic Vulnerability Scanning)_ These scans perform a comprehensive, deep-dive analysis of a package to produce a complete vulnerability report. Because they analyze the entire package from scratch, they are perfect for an initial audit or for generating a definitive report at a specific point in time. -- **On-Demand**: A manual scan you can trigger at any time. +- **On-Demand**: A manual scan is completed for every artifact is scanned automatically when it is first cached in Cloudsmith (link out here if we have anywhere in our docs that describes our sync pipeline)you can trigger at any time. +- **On-Upload**: Every artifact is scanned automatically when it is first cached in Cloudsmith. For more details, review the [policy triggers](/supply-chain-security/epm/continuous-security#how-continuous-security-works). - **Scheduled**: An automated scan that runs on a recurring cadence. ### **Continuous Security** -This is the evolution of vulnerability management, designed to close the critical time gap that periodic scans leave open. Instead of re-scanning packages from scratch, Continuous Security instantly checks your packages against **new** vulnerability advisories as they are published. When a new threat is discovered that affects your software, this "always-on" process provides immediate feedback, alerting you to the risk without the delay of waiting for the next scheduled scan. +This is the evolution of vulnerability management, designed to close the critical time gap that periodic scans leave open. Instead of re-scanning packages from scratch, Continuous Security instantly checks your packages against **new** and **updated** vulnerability advisories as they are published. When a new threat is discovered that affects your software, this "always-on" process provides immediate feedback, alerting you to the risk without the delay of waiting for the next scheduled scan. -📘 Both Continuous Security and traditional on-demand/scheduled scans currently use **Trivi** as their underlying vulnerability data source. Additionally, Continuous Security also enriches CVE information with a relevant [EPSS](https://www.first.org/epss/data_stats) score. +📘 Both Continuous Security and traditional on-demand/scheduled scans currently use **Trivy** as their underlying vulnerability data source. Additionally, Continuous Security also enriches CVE information with a relevant [EPSS](https://www.first.org/epss/data_stats) score. ## How Continuous Security Works @@ -37,7 +38,32 @@ Continuous Security is enabled by default for all users using EPM. Its primary f This frequent, near-constant checking ensures that vulnerability information for your packages is always current. Hence, those changes in the vulnerability data will trigger an EPM policy reevaluation, that might quarantine risky assets in case of a policy violation. -### The Role of Continuous Sercurity in EPM +### Data Sources + +These are the data sources currently available in Continuous Security: + +- Common Vulnerabilities and Exposures (CVE) databases via _Trivy_. +- Exploit Prediction Scoring System (EPSS) scores. + +### Supported Formats + +Cloudsmith's Security Scanning feature is available for the following package formats: + +- [Cargo](/formats/cargo-registry) +- [Composer](/formats/composer-repository) +- [Conan](/formats/conan-repository) +- [Dart](/formats/dart-repository) +- [Docker](/formats/docker-registry) +- [GoLang](/formats/go-registry) +- [Hex](/formats/hex-repository) +- [Maven](/formats/maven-repository) +- [npm](/formats/npm-registry) +- [NuGet](/formats/nuget-feed) +- [Python](/formats/python-repository) +- [Ruby](/formats/ruby-repository) +- [Swift](/formats/swift-registry) + +### The Role of Continuous Security in EPM The real power of Continuous Security is unlocked through **Enterprise Policy Management (EPM)**. The vulnerability data generated by Continuous Security is surfaced as an output that can be used to feed your EPM policies. From 43da4f32aa9be8028c27b2c5d4a4f3c7648ec7f8 Mon Sep 17 00:00:00 2001 From: gerguno Date: Thu, 3 Jul 2025 19:05:52 +0200 Subject: [PATCH 021/127] typography added --- src/app/_styles/critical.css | 1 + src/app/_styles/typography.css | 191 ++++++++++++++++++++++++ src/app/_styles/variables.css | 105 +++++++++++++ src/components/Navbar/Navbar.module.css | 7 +- src/components/Navbar/Navbar.tsx | 4 +- 5 files changed, 301 insertions(+), 7 deletions(-) create mode 100644 src/app/_styles/typography.css diff --git a/src/app/_styles/critical.css b/src/app/_styles/critical.css index a83b165e..a8f38624 100644 --- a/src/app/_styles/critical.css +++ b/src/app/_styles/critical.css @@ -1,4 +1,5 @@ @import url('./variables.css'); @import url('./breakpoints.css'); +@import url('./typography.css'); @import url('./reset.css'); @import url('./global.css'); diff --git a/src/app/_styles/typography.css b/src/app/_styles/typography.css new file mode 100644 index 00000000..38798706 --- /dev/null +++ b/src/app/_styles/typography.css @@ -0,0 +1,191 @@ +@layer typography { + /***************************************************** + * HEADLINE + *****************************************************/ + .headlineXL { + font-family: var(--font-family-headline); + font-size: var(--text-headline-2xl); + line-height: var(--line-height-none); + letter-spacing: var(--letter-spacing-negative-l); + } + + .headlineL { + font-family: var(--font-family-headline); + font-size: var(--text-headline-l); + line-height: var(--line-height-tight); + letter-spacing: var(--letter-spacing-negative-s); + } + + .headlineM { + font-family: var(--font-family-headline); + font-size: var(--text-headline-m); + line-height: var(--line-height-snug); + letter-spacing: var(--letter-spacing-negative-xs); + } + + .headlineS { + font-family: var(--font-family-headline); + font-size: var(--text-headline-s); + line-height: var(--line-height-snug); + letter-spacing: 0; + } + + .headlineXS { + font-family: var(--font-family-headline); + font-size: var(--text-body-l); + line-height: var(--line-height-snug); + letter-spacing: var(--letter-spacing-positive-xs); + } + + /***************************************************** + * BODY + *****************************************************/ + + /* NORMAL */ + .bodyXL { + font-family: var(--font-family-body); + font-size: var(--text-body-xl); + line-height: var(--line-height-normal); + letter-spacing: 0; + } + + .bodyL { + font-family: var(--font-family-body); + font-size: var(--text-body-l); + line-height: var(--line-height-normal); + letter-spacing: 0; + } + + .bodyM { + font-family: var(--font-family-body); + font-size: var(--text-body-m); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-xs); + } + + .bodyS { + font-family: var(--font-family-body); + font-size: var(--text-body-s); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-s); + } + + .bodyXS { + font-family: var(--font-family-body); + font-size: var(--text-body-xs); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-2xl); + } + + /* LONG */ + .bodyXLLong { + font-family: var(--font-family-body); + font-size: var(--text-body-xl); + line-height: var(--line-height-relaxed); + letter-spacing: 0; + } + + .bodyLLong { + font-family: var(--font-family-body); + font-size: var(--text-body-l); + line-height: var(--line-height-loose); + letter-spacing: 0; + } + + .bodyMLong { + font-family: var(--font-family-body); + font-size: var(--text-body-m); + line-height: var(--line-height-loose); + letter-spacing: var(--letter-spacing-positive-xs); + } + + .bodySLong { + font-family: var(--font-family-body); + font-size: var(--text-body-s); + line-height: var(--line-height-relaxed); + letter-spacing: var(--letter-spacing-positive-s); + } + + .bodyXSLong { + font-family: var(--font-family-body); + font-size: var(--text-body-xs); + line-height: var(--line-height-relaxed); + letter-spacing: var(--letter-spacing-positive-2xl); + } + + /***************************************************** + * MONO + *****************************************************/ + + /* CASE SENSITIVE */ + .monoXL { + font-family: var(--font-family-mono); + font-size: var(--text-body-l); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-l); + } + + .monoL { + font-family: var(--font-family-mono); + font-size: var(--text-body-m); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-3xl); + } + + .monoM { + font-family: var(--font-family-mono); + font-size: var(--text-body-s); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-3xl); + } + + .monoS { + font-family: var(--font-family-mono); + font-size: var(--text-body-xs); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-3xl); + } + + .monoXS { + font-family: var(--font-family-mono); + font-size: var(--text-body-2xs); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-4xl); + } + + /* UPPERCASE */ + .monoXLUppercase { + font-family: var(--font-family-mono); + font-size: var(--text-body-l); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-3xl); + } + + .monoLUppercase { + font-family: var(--font-family-mono); + font-size: var(--text-body-m); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-5xl); + } + + .monoMUppercase { + font-family: var(--font-family-mono); + font-size: var(--text-body-s); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-5xl); + } + + .monoSUppercase { + font-family: var(--font-family-mono); + font-size: var(--text-body-xs); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-5xl); + } + + .monoXSUppercase { + font-family: var(--font-family-mono); + font-size: var(--text-body-2xs); + line-height: var(--line-height-normal); + letter-spacing: var(--letter-spacing-positive-6xl); + } +} diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index ed4a68f1..5f17c5d0 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -50,6 +50,87 @@ --base-color-yellow-700: #ff8f00; --base-color-yellow-800: #c87107; + /* Base colors (new) */ + --brand-color-white: #fff; + --brand-color-black: #0a1b2a; + --brand-color-blue-0: #fafcff; + --brand-color-blue-1: #ebf2fc; + --brand-color-blue-2: #dfebfe; + --brand-color-blue-3: #b7d2ff; + --brand-color-blue-4: #90b7f6; + --brand-color-blue-5: #6ca3fe; + --brand-color-blue-6: #498af6; + --brand-color-blue-7: #2a6fe1; + --brand-color-blue-8: #134596; + --brand-color-blue-9: #112b5e; + --brand-color-blue-10: #0c1325; + --brand-color-green-0: #f4fef9; + --brand-color-green-1: #e2fcf0; + --brand-color-green-2: #c4f4e0; + --brand-color-green-3: #85dabb; + --brand-color-green-4: #57c7a4; + --brand-color-green-5: #1bb694; + --brand-color-green-6: #00a084; + --brand-color-green-7: #007c68; + --brand-color-green-8: #005346; + --brand-color-green-9: #03322b; + --brand-color-green-10: #02120f; + --brand-color-grey-0: #f9fcff; + --brand-color-grey-1: #eff3fa; + --brand-color-grey-2: #e1eaf3; + --brand-color-grey-3: #c5d4de; + --brand-color-grey-4: #a5b7c5; + --brand-color-grey-5: #8ea5b5; + --brand-color-grey-6: #768fa2; + --brand-color-grey-7: #5b798a; + --brand-color-grey-8: #26465b; + --brand-color-grey-9: #092f45; + --brand-color-grey-10: #041e2e; + --brand-color-purple-0: #fbf9ff; + --brand-color-purple-1: #f6f2ff; + --brand-color-purple-2: #f0e5ff; + --brand-color-purple-3: #dcc7fc; + --brand-color-purple-4: #bd9eff; + --brand-color-purple-5: #af8fff; + --brand-color-purple-6: #915eff; + --brand-color-purple-7: #7a52db; + --brand-color-purple-8: #5527a4; + --brand-color-purple-9: #381a6b; + --brand-color-purple-10: #0f0522; + --brand-color-red-0: #fff8fa; + --brand-color-red-1: #fff2f5; + --brand-color-red-2: #ffe3e8; + --brand-color-red-3: #fcc0cb; + --brand-color-red-4: #fd93a8; + --brand-color-red-5: #ff6183; + --brand-color-red-6: #eb5070; + --brand-color-red-7: #b73b55; + --brand-color-red-8: #7f243a; + --brand-color-red-9: #541025; + --brand-color-red-10: #1d050b; + --brand-color-salmon-0: #fffbf9; + --brand-color-salmon-1: #fff4ef; + --brand-color-salmon-2: #ffe4d8; + --brand-color-salmon-3: #fec3ab; + --brand-color-salmon-4: #eca283; + --brand-color-salmon-5: #ed8565; + --brand-color-salmon-6: #db6c53; + --brand-color-salmon-7: #b7453b; + --brand-color-salmon-8: #7f251f; + --brand-color-salmon-9: #4a1d1a; + --brand-color-salmon-10: #1d0505; + --brand-color-yellow-0: #fefbf6; + --brand-color-yellow-1: #fdf6e8; + --brand-color-yellow-2: #ffe5b4; + --brand-color-yellow-3: #ffd482; + --brand-color-yellow-4: #e0aa40; + --brand-color-yellow-5: #d8982a; + --brand-color-yellow-6: #c08000; + --brand-color-yellow-7: #9c640e; + --brand-color-yellow-8: #6d4500; + --brand-color-yellow-9: #3f2604; + --brand-color-yellow-10: #1b0b00; + /* Backgrounds */ --color-background-default: var(--base-color-white); --color-background-light: var(--base-color-grey-25); @@ -97,6 +178,28 @@ --letter-http-type: 0.06px; --letter-http-rule: 0.06px; + --letter-spacing-negative-6xl: -0.6em; + --letter-spacing-negative-5xl: -0.4em; + --letter-spacing-negative-4xl: -0.3em; + --letter-spacing-negative-3xl: -0.2em; + --letter-spacing-negative-2xl: -0.15em; + --letter-spacing-negative-xl: -0.125em; + --letter-spacing-negative-l: -0.1em; + --letter-spacing-negative-m: -0.075em; + --letter-spacing-negative-s: -0.05em; + --letter-spacing-negative-xs: -0.025em; + + --letter-spacing-positive-6xl: 0.6em; + --letter-spacing-positive-5xl: 0.4em; + --letter-spacing-positive-4xl: 0.3em; + --letter-spacing-positive-3xl: 0.2em; + --letter-spacing-positive-2xl: 0.15em; + --letter-spacing-positive-xl: 0.125em; + --letter-spacing-positive-l: 0.1em; + --letter-spacing-positive-m: 0.075em; + --letter-spacing-positive-s: 0.05em; + --letter-spacing-positive-xs: 0.025em; + /* Text Sizes */ --text-body-2xs: fluid(8.5px, 10.5px); --text-body-xs: fluid(10px, 12px); @@ -130,6 +233,8 @@ --line-height-tight: 1.2; --line-height-snug: 1.222; --line-height-normal: 1.444; + --line-height-relaxed: 1.65; + --line-height-loose: 1.75; /* General Spacing */ --space-5xs: fluid(1px, 2px); diff --git a/src/components/Navbar/Navbar.module.css b/src/components/Navbar/Navbar.module.css index dd3246d8..156804c9 100644 --- a/src/components/Navbar/Navbar.module.css +++ b/src/components/Navbar/Navbar.module.css @@ -1,7 +1,6 @@ .root { background-color: var(--base-color-grey-1000); color: var(--base-color-white); - font-size: var(--text-body-m); width: 100%; position: sticky; top: 0; @@ -9,11 +8,11 @@ } .container { - padding-inline: var(--container-margin); + padding-inline: var(--space-m); } .isHome .container { - padding-inline: var(--container-margin-home); + padding-inline: var(--space-m); } .top { @@ -74,7 +73,7 @@ .navLink:hover, .navLinkActive { color: var(--base-color-white); - box-shadow: inset 0 -5px 0 var(--color-accent-secondary); + box-shadow: inset 0 -4px 0 var(--brand-color-yellow-4); } .menuButton { diff --git a/src/components/Navbar/Navbar.tsx b/src/components/Navbar/Navbar.tsx index 794c76ab..6120fb6d 100644 --- a/src/components/Navbar/Navbar.tsx +++ b/src/components/Navbar/Navbar.tsx @@ -65,9 +65,7 @@ export const Navbar = () => { + className={cx(styles.navLink, { [styles.navLinkActive]: activeMenuItem === item }, 'bodyM')}>
    diff --git a/src/components/SearchDialog/SearchTrigger.module.css b/src/components/SearchDialog/SearchTrigger.module.css index da2805fa..06d9e54b 100644 --- a/src/components/SearchDialog/SearchTrigger.module.css +++ b/src/components/SearchDialog/SearchTrigger.module.css @@ -5,14 +5,19 @@ max-width: var(--container-width-2xs); gap: var(--space-xs); cursor: pointer; - border-radius: var(--border-radius-s); padding: var(--space-2xs) var(--space-s); background-color: var(--base-color-grey-1000); + + border: 1px solid var(--brand-color-grey-8); + height: 38px; + width: 38px; + border-radius: var(--border-radius-s); } .icon { width: var(--space-s); height: var(--space-s); + opacity: 0.6; } .content { @@ -32,8 +37,9 @@ .root { background-color: var(--base-color-grey-1000); color: var(--base-color-grey-500); - max-width: 280px; + max-width: 260px; width: 400px; + height: auto; border: 1px solid var(--brand-color-grey-8); } @@ -44,6 +50,7 @@ .icon { width: var(--space-xs); height: var(--space-xs); + opacity: 1; } .content { diff --git a/src/components/Sidenav/Sidenav.module.css b/src/components/Sidenav/Sidenav.module.css index 1b8eef1a..194132f3 100644 --- a/src/components/Sidenav/Sidenav.module.css +++ b/src/components/Sidenav/Sidenav.module.css @@ -10,7 +10,6 @@ margin-block-start: var(--space-l); padding-inline: var(--space-m); margin-block-end: var(--space-l); - border-right: 1px solid var(--brand-color-grey-2); } /* Mobile toggler */ @@ -157,6 +156,7 @@ .wrapper { padding-inline: var(--space-m) var(--space-xs); + border-right: 1px solid var(--brand-color-grey-2); } .toggleButton { From 3e9afab27bb09f6898628f36790e69079a763720 Mon Sep 17 00:00:00 2001 From: gerguno Date: Tue, 8 Jul 2025 18:33:05 +0200 Subject: [PATCH 045/127] toggleButton edits --- src/app/_styles/variables.css | 2 +- src/components/Navbar/Navbar.module.css | 1 - src/components/Sidenav/Sidenav.module.css | 5 ++--- src/components/Sidenav/Sidenav.tsx | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index ebb5089d..c1ab566c 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -290,7 +290,7 @@ --layer-overlay: 200; /* Specific measurements */ - --navbar-top-height: 50px; + --navbar-top-height: 67px; --navbar-bottom-height: 50px; --navbar-height: calc(var(--navbar-top-height) + var(--navbar-bottom-height)); diff --git a/src/components/Navbar/Navbar.module.css b/src/components/Navbar/Navbar.module.css index 6a8b5e80..b42b4856 100644 --- a/src/components/Navbar/Navbar.module.css +++ b/src/components/Navbar/Navbar.module.css @@ -9,7 +9,6 @@ .container { padding-inline: var(--space-m); - padding-block: var(--space-xs); } .isHome .container { diff --git a/src/components/Sidenav/Sidenav.module.css b/src/components/Sidenav/Sidenav.module.css index 194132f3..a84e3ba7 100644 --- a/src/components/Sidenav/Sidenav.module.css +++ b/src/components/Sidenav/Sidenav.module.css @@ -17,17 +17,16 @@ display: flex; inline-size: 100%; padding-inline: var(--space-m); - padding-block: var(--space-2xs); + padding-block: var(--space-s); align-items: center; color: var(--base-color-grey-100); cursor: pointer; background-color: var(--base-color-grey-1000); - font-size: var(--text-body-m); - line-height: var(--line-height-m); } .toggleButtonText { margin-inline-end: 6px; + opacity: 0.6; } .toggleIconDown { diff --git a/src/components/Sidenav/Sidenav.tsx b/src/components/Sidenav/Sidenav.tsx index f58f6a02..a7c41b68 100644 --- a/src/components/Sidenav/Sidenav.tsx +++ b/src/components/Sidenav/Sidenav.tsx @@ -37,7 +37,7 @@ export const Sidenav = ({ items }: SidenavProps) => { return ( <> From ca0bf5070bba7d790d75d8f2e555001c7380d90d Mon Sep 17 00:00:00 2001 From: gerguno Date: Tue, 8 Jul 2025 23:42:21 +0200 Subject: [PATCH 046/127] eyebrows restyling --- src/app/(api)/api/[...slug]/page.tsx | 24 +++++++++++++++++++++ src/app/(documentation)/[...slug]/page.tsx | 13 +++++++++++ src/app/(guides)/guides/[...slug]/page.tsx | 13 +++++++++++ src/app/_styles/variables.css | 2 +- src/components/ApiGrid/ApiGrid.module.css | 7 +----- src/components/ApiGrid/ApiGrid.tsx | 2 +- src/components/ApiMedia/ApiMedia.module.css | 4 ---- src/components/ApiMedia/ApiMedia.tsx | 12 +++++++---- src/components/Sidenav/Sidenav.module.css | 16 +++++++++++--- 9 files changed, 74 insertions(+), 19 deletions(-) diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index 7b72aaec..6310a25a 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -5,6 +5,7 @@ import { toRouteSegments, toSlug } from '@/lib/util'; import { notFound } from 'next/navigation'; import type { Metadata } from 'next'; import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; +import { getMenuItem, getActiveAncestors } from '@/lib/menu/util'; import WithQuicknav from '@/components/WithQuickNav'; import styles from './page.module.css'; @@ -70,6 +71,11 @@ const Page = async ({ params }: PageProps) => { const content = await loadMdxInfo('api'); const mdxInfo = content.find((info) => info.slug === qualifiedSlug); + const pathname = `/${qualifiedSlug}`; + const menuData = getMenuItem('api'); + const ancestors = getActiveAncestors(pathname, [menuData]); + const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; + if (mdxInfo) { const mdxModule = await import(`@/content/${mdxInfo.file}`); const { default: Post } = mdxModule; @@ -77,6 +83,13 @@ const Page = async ({ params }: PageProps) => { return ( + {parentTitle ? ( +

    + {parentTitle} +

    + ) : null} {lastUpdated ? : null}
    @@ -89,8 +102,19 @@ const Page = async ({ params }: PageProps) => { const operation = operations.find((op) => op.slug === qualifiedSlug); if (operation) { + const operationParentTitle = + parentTitle || + (operation.menuSegments.length > 1 ? operation.menuSegments[operation.menuSegments.length - 2] : null); + return (
    + {operationParentTitle ? ( +

    + {operationParentTitle} +

    + ) : null} {operation.title} {operation.description ? {operation.description} : null} diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index 832c25d6..f5b56faf 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -4,6 +4,7 @@ import { notFound } from 'next/navigation'; import type { Metadata } from 'next'; import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; import { TimeAgo } from '@/components'; +import { getMenuItem, getActiveAncestors } from '@/lib/menu/util'; import WithQuicknav from '@/components/WithQuickNav'; export const dynamicParams = false; @@ -44,8 +45,20 @@ const Page = async ({ params }: PageProps) => { const { default: Post } = mdxModule; const lastUpdated = getLastUpdated(mdxModule); + const pathname = `/${qualifiedSlug}`; + const menuData = getMenuItem('documentation'); + const ancestors = getActiveAncestors(pathname, [menuData]); + const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; + return ( + {parentTitle ? ( +

    + {parentTitle} +

    + ) : null} {lastUpdated ? : null}
    diff --git a/src/app/(guides)/guides/[...slug]/page.tsx b/src/app/(guides)/guides/[...slug]/page.tsx index d13a1977..922b347e 100644 --- a/src/app/(guides)/guides/[...slug]/page.tsx +++ b/src/app/(guides)/guides/[...slug]/page.tsx @@ -3,6 +3,7 @@ import { toSlug } from '@/lib/util'; import { notFound } from 'next/navigation'; import type { Metadata } from 'next'; import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; +import { getMenuItem, getActiveAncestors } from '@/lib/menu/util'; import { TimeAgo } from '@/components'; import WithQuicknav from '@/components/WithQuickNav'; @@ -44,8 +45,20 @@ const Page = async ({ params }: PageProps) => { const { default: Post } = mdxModule; const lastUpdated = getLastUpdated(mdxModule); + const pathname = `/${qualifiedSlug}`; + const menuData = getMenuItem('guides'); + const ancestors = getActiveAncestors(pathname, [menuData]); + const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; + return ( + {parentTitle ? ( +

    + {parentTitle} +

    + ) : null} {lastUpdated ? : null}
    diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index c1ab566c..209f20dd 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -157,7 +157,7 @@ --color-text-code: var(--base-color-blue-600); /* Border */ - --color-border: var(--base-color-grey-300); + --color-border: var(--brand-color-grey-2); --color-border-tabs: var(--base-color-blue-500); /* Accent */ diff --git a/src/components/ApiGrid/ApiGrid.module.css b/src/components/ApiGrid/ApiGrid.module.css index a2b4ddeb..d6e90404 100644 --- a/src/components/ApiGrid/ApiGrid.module.css +++ b/src/components/ApiGrid/ApiGrid.module.css @@ -34,14 +34,10 @@ border-top: 0; border-radius: var(--border-radius-m) var(--border-radius-m) 0 0; background-color: var(--color-background-light); - text-transform: uppercase; - font-family: var(--font-family-mono); - font-size: var(--text-body-xs); - color: var(--base-color-grey-600); + color: var(--brand-color-grey-7); } .subItem { - line-height: var(--line-height-s); padding-inline: var(--column-inline-padding); padding-block: var(--column-block-padding); @@ -55,7 +51,6 @@ .subItemType { color: var(--base-color-blue-500); font-family: var(--font-family-mono); - font-size: var(--text-body-xs); letter-spacing: var(--letter-http-type); } diff --git a/src/components/ApiGrid/ApiGrid.tsx b/src/components/ApiGrid/ApiGrid.tsx index bf8ea1e2..b4b8107f 100644 --- a/src/components/ApiGrid/ApiGrid.tsx +++ b/src/components/ApiGrid/ApiGrid.tsx @@ -8,7 +8,7 @@ import styles from './ApiGrid.module.css'; export const ApiGrid = ({ heading, children }: Grid) => (
    -
    {heading}
    +
    {heading}
    {children} diff --git a/src/components/ApiMedia/ApiMedia.module.css b/src/components/ApiMedia/ApiMedia.module.css index ab5cb8c1..1b476dd9 100644 --- a/src/components/ApiMedia/ApiMedia.module.css +++ b/src/components/ApiMedia/ApiMedia.module.css @@ -5,9 +5,6 @@ .responseTitle { color: var(--base-color-grey-600); - font-family: var(--font-family-mono); - font-size: var(--text-body-xs); - text-transform: uppercase; } .responseTypeContent { @@ -18,7 +15,6 @@ .responseTypeTitle { color: var(--base-color-grey-600); - font-size: var(--text-body-xs); } .responseGrid { diff --git a/src/components/ApiMedia/ApiMedia.tsx b/src/components/ApiMedia/ApiMedia.tsx index f27de6e9..e3edda94 100644 --- a/src/components/ApiMedia/ApiMedia.tsx +++ b/src/components/ApiMedia/ApiMedia.tsx @@ -13,7 +13,9 @@ export const ApiMediaResponse = (response: ResponseObject | RequestBodyObject) = <> {response.content ? (
    -

    {response.description || 'Response body'}

    +

    + {response.description || 'Response body'} +

    {Object.entries(response.content).map(([media, content]) => ( @@ -29,7 +31,9 @@ const Schema = ({ schema, description }: { media?: string; schema: SchemaObject; if (schema.type === 'array') { return ( <> -

    {description || `${schema.type} of ${schema.items.type}s`}

    +

    + {description || `${schema.type} of ${schema.items.type}s`} +

    @@ -40,7 +44,7 @@ const Schema = ({ schema, description }: { media?: string; schema: SchemaObject; if (schema.type === 'object') { return ( <> -

    {description || schema.type}

    +

    {description || schema.type}

    @@ -54,7 +58,7 @@ const Schema = ({ schema, description }: { media?: string; schema: SchemaObject; const Properties = ({ properties, required, type }: SchemaObject) => { return ( <> - {type ?

    {type}

    : null} + {type ?

    {type}

    : null} {properties ? (
    diff --git a/src/components/Sidenav/Sidenav.module.css b/src/components/Sidenav/Sidenav.module.css index a84e3ba7..e7f42848 100644 --- a/src/components/Sidenav/Sidenav.module.css +++ b/src/components/Sidenav/Sidenav.module.css @@ -7,7 +7,6 @@ } .wrapper { - margin-block-start: var(--space-l); padding-inline: var(--space-m); margin-block-end: var(--space-l); } @@ -59,7 +58,7 @@ .list { display: flex; flex-direction: column; - row-gap: var(--space-m); + row-gap: var(--space-2xs); padding: 0; list-style: none; @@ -154,6 +153,7 @@ } .wrapper { + margin-block-start: var(--space-l); padding-inline: var(--space-m) var(--space-xs); border-right: 1px solid var(--brand-color-grey-2); } @@ -173,6 +173,16 @@ .linkActive { background-color: transparent; color: var(--brand-color-blue-7); - border-left: 2px solid var(--brand-color-blue-7); + position: relative; + + &::before { + content: ''; + position: absolute; + inset-block-start: 0; + inset-inline-start: 0; + width: 2px; + height: 100%; + background-color: var(--brand-color-blue-7); + } } } From 535f74ec4aead405bd1c7d189a8f5eb166fb50d3 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 9 Jul 2025 00:43:26 +0200 Subject: [PATCH 047/127] searchfield styling done --- src/app/_styles/variables.css | 4 +- .../SearchDialog/FilterButtons.module.css | 11 ++-- src/components/SearchDialog/FilterButtons.tsx | 1 - .../SearchDialog/SearchDialog.module.css | 65 ++++++++----------- src/components/SearchDialog/SearchDialog.tsx | 23 +++---- .../SearchDialog/SearchForm.module.css | 8 ++- .../SearchDialog/SearchTrigger.module.css | 8 +-- src/icons/svgs/Search.tsx | 18 ++--- src/icons/svgs/utility/Guide.tsx | 17 ++--- 9 files changed, 65 insertions(+), 90 deletions(-) diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index 209f20dd..97096735 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -141,11 +141,11 @@ --color-background-warning: var(--base-color-yellow-100); --color-background-code: var(--base-color-blue-75); --color-background-pre: var(--base-color-grey-900); - --color-background-header: var(--base-color-grey-25); + --color-background-header: var(--brand-color-grey-0); /* Text */ --color-text-primary: var(--base-color-grey-900); - --color-text-secondary: var(--base-color-grey-600); + --color-text-secondary: var(--brand-color-grey-7); --color-text-link: var(--base-color-blue-500); --color-text-on-color: var(--base-color-white); --color-text-label: var(--base-color-grey-500); diff --git a/src/components/SearchDialog/FilterButtons.module.css b/src/components/SearchDialog/FilterButtons.module.css index 7810220f..cd9d96ca 100644 --- a/src/components/SearchDialog/FilterButtons.module.css +++ b/src/components/SearchDialog/FilterButtons.module.css @@ -2,7 +2,7 @@ display: flex; flex-direction: column; gap: var(--space-3xs); - margin-block-end: var(--space-m); + margin-block-end: var(--space-s); } .filtersHeadline { @@ -28,8 +28,8 @@ padding-block: var(--space-3xs); padding-inline: var(--space-xs); border-radius: var(--border-radius-m); - border: 1px solid var(--color-search-result-filter); - background-color: var(--base-color-blue-50); + border: 1px solid var(--brand-color-grey-3); + background-color: transparent; color: var(--base-color-grey-900); font-size: var(--text-body-s); white-space: nowrap; @@ -38,15 +38,16 @@ cursor: pointer; &:is(:hover, :focus) { - background-color: var(--base-color-blue-100); + background-color: var(--brand-color-grey-2); outline: none; } } } .filterActive { - background-color: var(--base-color-grey-900); + background-color: var(--base-color-grey-1000); color: var(--base-color-white); + border: none; &:not(.filterDisabled):is(:hover, :focus) { background-color: var(--base-color-grey-700); diff --git a/src/components/SearchDialog/FilterButtons.tsx b/src/components/SearchDialog/FilterButtons.tsx index cc39ab12..039551e6 100644 --- a/src/components/SearchDialog/FilterButtons.tsx +++ b/src/components/SearchDialog/FilterButtons.tsx @@ -13,7 +13,6 @@ export interface FilterButtonsProps { export const FilterButtons = ({ filters, activeSections, onFilterChange }: FilterButtonsProps) => { return (
    - Search in
    {filters.map((filter) => (
    + + Open Cloudsmith +
  2. ))} - {isWaiting &&

    Loading...

    } + {isWaiting &&

    Loading...

    } - {!isWaiting && term === '' &&

    Please enter a search term

    } + {!isWaiting && term === '' && ( +

    Please enter a search term

    + )} {!isWaiting && results.length === 0 && term !== '' && ( -

    No results

    +

    No results

    )} - -
    - -
    diff --git a/src/components/SearchDialog/SearchForm.module.css b/src/components/SearchDialog/SearchForm.module.css index 90662db8..b096277a 100644 --- a/src/components/SearchDialog/SearchForm.module.css +++ b/src/components/SearchDialog/SearchForm.module.css @@ -1,13 +1,17 @@ .root { flex: 1; - padding: var(--space-2xs) 0; + padding: var(--space-xs) 0; border: 1px solid transparent; border-radius: 0; outline: none; background-color: transparent; font-family: var(--font-family-body); - font-size: var(--text-body-m); + font-size: var(--text-body-s); text-overflow: ellipsis; + + &::placeholder { + color: var(--brand-color-grey-7); + } } .root:focus { diff --git a/src/components/SearchDialog/SearchTrigger.module.css b/src/components/SearchDialog/SearchTrigger.module.css index 06d9e54b..9249b1c2 100644 --- a/src/components/SearchDialog/SearchTrigger.module.css +++ b/src/components/SearchDialog/SearchTrigger.module.css @@ -5,7 +5,7 @@ max-width: var(--container-width-2xs); gap: var(--space-xs); cursor: pointer; - padding: var(--space-2xs) var(--space-s); + padding: var(--space-2xs) var(--space-s) var(--space-2xs) var(--space-xs); background-color: var(--base-color-grey-1000); border: 1px solid var(--brand-color-grey-8); @@ -15,9 +15,9 @@ } .icon { - width: var(--space-s); - height: var(--space-s); opacity: 0.6; + flex-shrink: 0; + transform: translateY(-1px); } .content { @@ -48,8 +48,6 @@ } .icon { - width: var(--space-xs); - height: var(--space-xs); opacity: 1; } diff --git a/src/icons/svgs/Search.tsx b/src/icons/svgs/Search.tsx index 36d8bf14..22d3521a 100644 --- a/src/icons/svgs/Search.tsx +++ b/src/icons/svgs/Search.tsx @@ -2,25 +2,19 @@ import { createIcon, SpecificIconProps } from '../util/create-icon'; export const SearchIcon = createIcon( 'search', - ({ width = 10, height = 10, ...props }) => ({ + ({ width = 16, height = 16, ...props }) => ({ ...props, width, height, - viewBox: '0 0 10 10', + viewBox: '0 0 16 16', fill: 'none', children: ( <> - + diff --git a/src/icons/svgs/utility/Guide.tsx b/src/icons/svgs/utility/Guide.tsx index 612ec50d..20d03f56 100644 --- a/src/icons/svgs/utility/Guide.tsx +++ b/src/icons/svgs/utility/Guide.tsx @@ -2,25 +2,20 @@ import { createIcon, SpecificIconProps } from '../../util/create-icon'; export const UtilityGuideIcon = createIcon( 'utility/guide', - ({ width = 44, height = 44, ...props }) => ({ + ({ width = 16, height = 16, ...props }) => ({ ...props, width, height, - viewBox: '0 0 44 44', + viewBox: '0 0 16 16', fill: 'none', children: ( <> - - ), }), From c709c30a71583ef35aabb5159d3b2c0637167cc1 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 9 Jul 2025 01:06:40 +0200 Subject: [PATCH 048/127] homepage header light theme done --- src/components/Navbar/Navbar.module.css | 20 +++++++++++++++++++ src/components/Navbar/Navbar.tsx | 8 ++++++-- .../SearchDialog/SearchTrigger.module.css | 17 +++++++++++++++- src/components/SearchDialog/SearchTrigger.tsx | 7 ++++++- 4 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/components/Navbar/Navbar.module.css b/src/components/Navbar/Navbar.module.css index b42b4856..a10f5261 100644 --- a/src/components/Navbar/Navbar.module.css +++ b/src/components/Navbar/Navbar.module.css @@ -108,6 +108,26 @@ background-color: var(--base-color-grey-900); } +.openCloudsmith.light { + background-color: var(--base-color-white); + color: var(--brand-color-grey-8); + border: 1px solid var(--brand-color-grey-3); +} + +.openCloudsmith.light:hover { + background-color: var(--base-color-grey-100); +} + +.menuButton.light { + background-color: var(--base-color-white); + color: var(--base-color-grey-900); + border: 1px solid var(--brand-color-grey-3); +} + +.menuButton.light:hover { + background-color: var(--base-color-grey-100); +} + .isHome { background-color: transparent; color: var(--color-text-primary); diff --git a/src/components/Navbar/Navbar.tsx b/src/components/Navbar/Navbar.tsx index 30002c47..7c6af08c 100644 --- a/src/components/Navbar/Navbar.tsx +++ b/src/components/Navbar/Navbar.tsx @@ -57,12 +57,16 @@ export const Navbar = () => { Open Cloudsmith - diff --git a/src/components/SearchDialog/SearchTrigger.module.css b/src/components/SearchDialog/SearchTrigger.module.css index 9249b1c2..5e49ba21 100644 --- a/src/components/SearchDialog/SearchTrigger.module.css +++ b/src/components/SearchDialog/SearchTrigger.module.css @@ -1,11 +1,11 @@ .root { display: flex; align-items: center; + justify-content: center; flex-direction: row; max-width: var(--container-width-2xs); gap: var(--space-xs); cursor: pointer; - padding: var(--space-2xs) var(--space-s) var(--space-2xs) var(--space-xs); background-color: var(--base-color-grey-1000); border: 1px solid var(--brand-color-grey-8); @@ -14,6 +14,12 @@ border-radius: var(--border-radius-s); } +.root.light { + background-color: var(--base-color-white); + color: var(--brand-color-grey-8); + border: 1px solid var(--brand-color-grey-3); +} + .icon { opacity: 0.6; flex-shrink: 0; @@ -41,6 +47,7 @@ width: 400px; height: auto; border: 1px solid var(--brand-color-grey-8); + padding: var(--space-2xs) var(--space-s) var(--space-2xs) var(--space-xs); } .root:hover { @@ -57,3 +64,11 @@ width: 100%; } } + +@media (--phablet-up) { + .root.light { + background-color: var(--base-color-white); + color: var(--brand-color-grey-8); + border: 1px solid var(--brand-color-grey-3); + } +} diff --git a/src/components/SearchDialog/SearchTrigger.tsx b/src/components/SearchDialog/SearchTrigger.tsx index 203d7b9b..ddeb4a21 100644 --- a/src/components/SearchDialog/SearchTrigger.tsx +++ b/src/components/SearchDialog/SearchTrigger.tsx @@ -1,12 +1,17 @@ import { Trigger } from '@radix-ui/react-dialog'; import { Icon } from '@/icons'; import { cx } from 'class-variance-authority'; +import { usePathname } from 'next/navigation'; import styles from './SearchTrigger.module.css'; export const SearchTrigger = () => { + const pathname = usePathname(); + + const isHome = pathname === '/'; + return ( - +
    Search From e1a62ae9ef719572cc4f5165c4e62de7baabe457 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 9 Jul 2025 09:52:28 +0200 Subject: [PATCH 049/127] another batch of changes from readme --- .../accounts-and-teams/invite-users.mdx | 2 +- .../accounts-and-teams/service-accounts.mdx | 2 + .../artifact-management/recycle-bin.mdx | 2 +- .../search-filter-sort-packages.mdx | 8 +- .../authentication/scim-with-onelogin.mdx | 2 +- src/content/developer-tools/cli.mdx | 4 +- .../developer-tools/terraform-provider.mdx | 4 +- src/content/formats/cargo-registry.mdx | 8 ++ src/content/formats/conan-repository.mdx | 54 +++++--- src/content/formats/conda-repository.mdx | 4 +- src/content/formats/dart-repository.mdx | 130 +----------------- src/content/formats/docker-registry.mdx | 4 +- src/content/formats/helm-chart-repository.mdx | 2 +- src/content/formats/luarocks-repository.mdx | 2 +- src/content/formats/maven-repository.mdx | 46 +++++++ src/content/formats/npm-registry.mdx | 8 +- src/content/formats/nuget-feed.mdx | 4 +- .../formats/terraform-modules-repository.mdx | 2 +- src/content/getting-started/api-bindings.mdx | 4 +- src/content/guides/dependency_firewall.mdx | 12 +- .../integrations/integrating-with-argocd.mdx | 5 +- .../integrating-with-chainguard-images.mdx | 4 +- .../integrating-with-docker-hub.mdx | 4 +- .../integrating-with-github-actions.mdx | 2 +- .../integrations/integrating-with-roadie.mdx | 13 +- .../integrating-with-terraform.mdx | 2 +- .../integrations/integrating-with-zapier.mdx | 2 +- .../logs-and-observability/audit-logs.mdx | 125 +++++++++++++++++ .../logs-and-observability/client-logs.mdx | 2 +- .../policy-management/block-until-scan.mdx | 2 +- .../policy-management/license-compliance.mdx | 3 +- .../vulnerability-policy.mdx | 52 +++---- .../repositories/create-a-repository.mdx | 9 +- .../repositories/custom-storage-regions.mdx | 2 +- .../enable-broadcasting.png | Bin 0 -> 383348 bytes .../entitlement-tokens-via-the-website-ui.mdx | 4 +- src/content/software-distribution/eula.mdx | 2 +- .../supply-chain-security/epm/index.mdx | 6 +- .../vulnerability-scanning.mdx | 4 +- src/content/support/billing.mdx | 6 +- .../support/operational-performance copy.mdx | 4 +- .../tbc/integrating-with-docker-hub.mdx | 4 +- src/content/workspaces/workspace-settings.mdx | 2 +- 43 files changed, 323 insertions(+), 240 deletions(-) create mode 100644 src/content/repositories/images/create-a-repository/enable-broadcasting.png diff --git a/src/content/accounts-and-teams/invite-users.mdx b/src/content/accounts-and-teams/invite-users.mdx index 46cab4e8..9ecbd074 100644 --- a/src/content/accounts-and-teams/invite-users.mdx +++ b/src/content/accounts-and-teams/invite-users.mdx @@ -2,7 +2,7 @@ import { Note, BlockImage } from '@/components' import img_invite_users_button from './images/invite-users/cce8732ea52a7f4c9099fb779a25f8963fbacdd631fb71c648155cf47d20cd09-invite-users-button.png' import img_invite_users_form from './images/invite-users/67b2a8ef4d084add3452112fc9a9cbf07192977f00e0f6fc8b90512fa167b26f-invite-users-form.png' - +You can add users (also known as "Accounts") to Cloudsmith directly via the web app, or you can use [SCIM](/authentication/scim). # Invite Users diff --git a/src/content/accounts-and-teams/service-accounts.mdx b/src/content/accounts-and-teams/service-accounts.mdx index c99f9ca2..66cafeb1 100644 --- a/src/content/accounts-and-teams/service-accounts.mdx +++ b/src/content/accounts-and-teams/service-accounts.mdx @@ -28,6 +28,8 @@ Fill Out the Service Creation Form: Enter a Name for your Service. Optionally, a +Once you create your service account, Cloudsmith will assign a `slug`, which will be used as an API-level identifier for the account. Note that service account slugs are automatically truncated at 30 characters, and may have random characters appended to ensure uniqueness. + ## Get Service Username The Service username is displayed in the NAME column: diff --git a/src/content/artifact-management/recycle-bin.mdx b/src/content/artifact-management/recycle-bin.mdx index ee1ddba5..6894dfe3 100644 --- a/src/content/artifact-management/recycle-bin.mdx +++ b/src/content/artifact-management/recycle-bin.mdx @@ -16,7 +16,7 @@ The repository recycle bin allows you to store deleted artifacts pending permane You can also restore artifacts to the repository from the Recycle Bin. This can be useful in cases of accidental artifact deletion or when evaluating/configuring [Artifact Lifecycle](/artifact-management/retention-rules) rules. -The Recycle Bin is currently an early access feature. If you would like to try this feature, please [Contact Us](https://cloudsmith.com/company/contact-us). +The Recycle Bin is an early access feature. If you would like to try this feature, please [Contact Us](https://cloudsmith.com/company/contact-us). diff --git a/src/content/artifact-management/search-filter-sort-packages.mdx b/src/content/artifact-management/search-filter-sort-packages.mdx index 47a3026e..fbd21139 100644 --- a/src/content/artifact-management/search-filter-sort-packages.mdx +++ b/src/content/artifact-management/search-filter-sort-packages.mdx @@ -124,14 +124,14 @@ For example, to retrieve all packages named `ms`: ```bash curl -sL --request GET \ - --url "https://api.cloudsmith.io/v1/packages///?query=name:ms" \ + --url "https://api.cloudsmith.io/packages///?query=name:ms" \ --header 'Authorization: Bearer ' ``` Alternatively, you can use `jq` to search for a package in a repository by using **any of the fields** available in the `json` returned by the request. For example: ```bash -curl -sL "https://api.cloudsmith.io/v1/packages///" \ +curl -sL "https://api.cloudsmith.io/packages///" \ --header 'Authorization: Bearer ' \ | jq '.[] | select(.name == "requests")' ``` @@ -189,7 +189,7 @@ The available sorting options are: - Total Downloads (Ascending) - Total Downloads (Descending) -Note that currently, the UI only supports sorting by one field at a time. +📘 Note that the UI only supports sorting by one field at a time. ## Sorting Packages via the Cloudsmith API @@ -203,7 +203,7 @@ For example, to retrieve all of the packages of the workspace `` o ```bash curl -sL --request GET \ - --url "https://api.cloudsmith.io/v1/packages//?sort=downloads" \ + --url "https://api.cloudsmith.io/packages//?sort=downloads" \ --header 'Authorization: Bearer ' ``` diff --git a/src/content/authentication/scim-with-onelogin.mdx b/src/content/authentication/scim-with-onelogin.mdx index 9ba421aa..8d722fba 100644 --- a/src/content/authentication/scim-with-onelogin.mdx +++ b/src/content/authentication/scim-with-onelogin.mdx @@ -6,7 +6,7 @@ import img_scim_steps from './images/scim-with-onelogin/821b638351f176305f092a4a SCIM, or System for Cross-domain Identity Management, is an open standard designed to manage user identity information. Cloudsmith is SCIM 2.0-compliant. With Cloudsmith's support for SCIM, you can automatically provision new users, de-provision existing users and update existing users profile information based on changes within OneLogin. - SCIM integration with OneLogin is currently available in early access. + SCIM integration with OneLogin is available in early access. To begin using SCIM, you need to enable the SCIM functionality in the [Cloudsmith Workspace Settings](/workspaces/workspace-settings) diff --git a/src/content/developer-tools/cli.mdx b/src/content/developer-tools/cli.mdx index 94cb133f..aa6a1c19 100644 --- a/src/content/developer-tools/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -197,11 +197,11 @@ api_key= ## CLI Scripting -The CLI provides a powerful interface for interacting with your packages and repositories in Cloudsmith. However, some operations currently require additional scripting to achieve the required result. Please see the examples below: +The CLI provides a powerful interface for interacting with your packages and repositories in Cloudsmith. However, some operations require additional scripting to achieve the required result. Please see the examples below: ## Copying/Moving Multiple Packages -Currently it is only possible to directly move one package at a time. However, it is easy to script a solution for moving multiple packages. +The CLI supports moving one package at a time. However, it is easy to script a solution for moving multiple packages. The following command will list all the packages returned by `YOUR-QUERY`. Extract the relevant metadata and run the copy command for each. diff --git a/src/content/developer-tools/terraform-provider.mdx b/src/content/developer-tools/terraform-provider.mdx index d7e9bdc4..23225e2c 100644 --- a/src/content/developer-tools/terraform-provider.mdx +++ b/src/content/developer-tools/terraform-provider.mdx @@ -48,7 +48,7 @@ provider "cloudsmith" { } ``` -You then run `terraform init` and Terraform will automatically install the provider. To specify a particular provider version when installing providers, see the Terraform documentation on [provider versioning](https://www.terraform.io/docs/configuration/providers.html#version-provider-versions). +You then run `terraform init` and Terraform will automatically install the provider. To specify a particular provider version when installing providers, see the Terraform documentation on [provider versioning](https://developer.hashicorp.com/terraform/language/providers/configuration#version-deprecated). ## Data Sources @@ -98,7 +98,7 @@ See the [repository documentation](/repositories) for more information on creati The repository privileges resource allows the management of privileges for a given Cloudsmith repository. Using this resource it is possible to assign users, teams, or service accounts to a repository, and define the appropriate permission level for each. -Note that while users can be added to repositories in this manner, since Terraform does not (and cannot currently) manage those user accounts, you may encounter issues if the users change or are deleted outside of Terraform. +Note that while users can be added to repositories in this manner, since Terraform does not manage those user accounts, you may encounter issues if the users change or are deleted outside of Terraform. ``` resource "cloudsmith_repository_privileges" "privs" { diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index f0a458d0..1e7a5659 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -173,6 +173,10 @@ token = "Token TOKEN" credential-provider = "cargo:token" ``` + +Once you’ve configured your credentials in the config.toml file, there’s no need to run cargo login. Cargo will automatically authenticate using the token from the configuration. + + ### Cargo \< v1.74 (HTTP Sparse Registry) If you are using Cargo version `< 1.74`, the only way to authenticate with a private sparse registry is using Cloudsmith's URL-based authentication. @@ -229,6 +233,10 @@ cargo install PACKAGE_NAME --registry REGISTRY_NAME` Not Supported. +## Known Limitations + +Currently, Cloudsmith does not support the cargo search command. + ## Troubleshooting **Q. It's not working...** diff --git a/src/content/formats/conan-repository.mdx b/src/content/formats/conan-repository.mdx index 2a421e1b..bb839f75 100644 --- a/src/content/formats/conan-repository.mdx +++ b/src/content/formats/conan-repository.mdx @@ -46,30 +46,36 @@ https://conan.cloudsmith.io/OWNER/REPOSITORY/ First, you need to set up the Repository as a Conan remote, with your Cloudsmith API-Key and Username for authentication: -```shell Shell - Conan v1 +```shell +# Shell - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p API-KEY -r OWNER-REPOSITORY USERNAME ``` -```shell Shell - Conan v2 +```shell +# Shell - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p API-KEY OWNER-REPOSITORY USERNAME ``` You can then upload natively using [Conan](https://docs.conan.io/en/latest/reference/commands/creator/export.html) with the command: -```shell Shell - Conan v1 +```shell +# Shell - Conan v1 conan upload PACKAGE_NAME/PACKAGE_VERSION --all -r OWNER-REPOSITORY ``` -```shell Shell - Conan v2 +```shell +# Shell - Conan v2 conan upload PACKAGE_NAME/PACKAGE_VERSION -r OWNER-REPOSITORY ``` An optional USER/CHANNEL can also be provided when uploading a package; this enables multiple versions of the same package to coexist using the user/channel to create a unique version of the package version: -```shell Shell - Conan v1 +```shell +# Shell - Conan v1 conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL --all -r OWNER-REPOSITORY ``` -```shell Shell - Conan v2 +```shell +# Shell - Conan v2 conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL -r OWNER-REPOSITORY ``` @@ -91,7 +97,8 @@ To upload via the Cloudsmith API/CLI, you'll need to generate a package first. T You can build a package with Conan by creating a new example project using new, create, and export: -```shell Shell - Conan v1 +```shell +# Shell - Conan v1 conan new PACKAGE_NAME/PACKAGE_VERSION -t conan create . conan install . @@ -156,11 +163,13 @@ First, the remote repository must be created and then credentials can be added f ### Public Repositories -```shell Shell - Conan v1 +```shell +# Shell - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p API-KEY -r OWNER-REPOSITORY USERNAME ``` -```shell Shell - Conan v2 +```shell +# Shell - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p API-KEY OWNER-REPOSITORY USERNAME ``` @@ -176,36 +185,44 @@ The setup method will differ depending on what authentication type you choose to Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, and you should ensure that you do not commit them in configurations files along with source code, or expose them in any logs. -```shell Entitlement Token Auth - Conan v1 +```shell +# Entitlement Token Auth - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p TOKEN -r OWNER-REPOSITORY OWNER/REPOSITORY ``` -```shell HTTP Basic Auth (User & Pass) - Conan v1 +```shell +# HTTP Basic Auth (User & Pass) - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p PASSWORD -r OWNER-REPOSITORY USERNAME ``` -```shell HTTP Basic Auth (API Key) - Conan v1 +```shell +# HTTP Basic Auth (API Key) - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p API-KEY -r OWNER-REPOSITORY USERNAME ``` -```shell HTTP Basic Auth (Token) - Conan v1 +```shell +# HTTP Basic Auth (Token) - Conan v1 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan user -p TOKEN -r OWNER-REPOSITORY token ``` -```shell Entitlement Token Auth - Conan v2 +```shell +# Entitlement Token Auth - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p TOKEN OWNER-REPOSITORY OWNER/REPOSITORY ``` -```shell HTTP Basic Auth (User & Pass) - Conan v2 +```shell +# HTTP Basic Auth (User & Pass) - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p PASSWORD OWNER-REPOSITORY USERNAME ``` -```shell HTTP Basic Auth (API Key) - Conan v2 +```shell +# HTTP Basic Auth (API Key) - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p API-KEY OWNER-REPOSITORY USERNAME ``` -```shell HTTP Basic Auth (Token) - Conan v2 +```shell +# HTTP Basic Auth (Token) - Conan v2 conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ conan remote login -p TOKEN OWNER-REPOSITORY token ``` @@ -214,7 +231,8 @@ conan remote login -p TOKEN OWNER-REPOSITORY token Once set up, Conan can download the package by running: -```shell Shell - Conan v1/v2 +```shell +# Shell - Conan v1/v2 conan download PACKAGE_NAME/PACKAGE_VERSION@ -r OWNER-REPOSITORY ``` diff --git a/src/content/formats/conda-repository.mdx b/src/content/formats/conda-repository.mdx index 63cafb66..596f88ec 100644 --- a/src/content/formats/conda-repository.mdx +++ b/src/content/formats/conda-repository.mdx @@ -15,8 +15,8 @@ For more information on Conda, please see: - [Conda Documentation](https://docs.conda.io/) - [Anaconda](https://www.anaconda.com/) - -Conda Support is currently in Beta and we welcome your feedback for improvements + +Conda Support is in Early Access. diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index b206ae35..a145af9a 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -40,7 +40,7 @@ In the following examples: ## Publish via Dart -Please note that Dart SDK version 2.15.1 or newer is required for native upload support. For older client versions, please continue to use the Cloudsmith CLI/API. +Please note that Dart SDK >= 2.15 is required to use Dart Repositories. The endpoint for the native Dart API is: @@ -82,7 +82,7 @@ Please see Dart's [documentation on creating packages](https://dart.dev/guides/l #### Creating Dart Packages -To upload via the Cloudsmith API/CLI, you'll need to generate a package first. While we expect the tooling in this area to improve over time, currently the process is a manual one and can be a little tricky. +To upload via the Cloudsmith API/CLI, you'll need to generate a package first. You can build a package with standard command-line tooling like `tar`. To illustrate the process we'll use [cli_util](https://github.com/dart-lang/cli_util) as an example: @@ -119,13 +119,9 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o ## Download / Install a Package -Instaling packages from this repository varies, depending on the version of the Dart SDK in use. - -### SDK Version >= 2.15 - **Public Repositories** -No further setup is required when using Dart SDK >= 2.15 with public repositories, you can add a dependency from this repository to your package `pubspec.yaml` automatically with `dart pub`. See [Installing a Package](/formats/dart-repository) +No further setup is required with public repositories, you can add a dependency from this repository to your package `pubspec.yaml` automatically with `dart pub`. See [Installing a Package](/formats/dart-repository) **Private Repositories** @@ -152,94 +148,7 @@ Enter secret token: Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. ``` -### SDK Version \<= 2.14 - -Before you can install packages from your Cloudsmith repository you'll need to configure your environment for access. The configuration is defined using the `PUB_HOSTED_URL` environment variable. - - -This approach is not recommended, and we strongly encourage the use of the method detailed for SDK 2.15 onwards. This approach has the effect of embedding access tokens within your generated `pubspec.lock file`. As these typically tend to get committed to source repositories, this is a potential attack vector. - - - -When using PUB_HOSTED_URL, all dependencies must be present in the specified Cloudsmith repository. Dart repositories don't (currently) proxy upstream sources and can only serve packages explicitly uploaded to Cloudsmith. So if set, you cannot resolve any dependencies from pub.dev. -If PUB_HOSTED_URL is unset, any packages not uploaded to Cloudsmith (and with a specific Cloudsmith URL set in the pubspec.yaml file) will be fetched from pub.dev - - -**Public Repositories** - -_Linux / Mac_ - -```shell -export PUB_HOSTED_URL=https://dl.cloudsmith.io/public/OWNER/REPOSITORY/dart/ -``` - -_Windows (cmd)_ - -```shell -set PUB_HOSTED_URL=https://dl.cloudsmith.io/public/OWNER/REPOSITORY/dart/ -``` - -_Windows (Powershell)_ - -```powershell -$env:PUB_HOSTED_URL=https://dl.cloudsmith.io/public/OWNER/REPOSITORY/dart/ -``` - -**Private Repositories** - - -Private Cloudsmith repositories require authentication. You can choose between two types of authentication, Entitlement Token Authentication or HTTP Basic Authentication. -The setup method will differ depending on what authentication type you choose to use. - - -_Linux / Mac_ - -```shell Entitlement Token Auth -export PUB_HOSTED_URL=https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/dart/ -``` -```shell HTTP Basic Auth (User & Pass) -export PUB_HOSTED_URL=https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```shell HTTP Basic Auth (API Key) -export PUB_HOSTED_URL=https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```shell HTTP Basic Auth (Token) -export PUB_HOSTED_URL=https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` - -_Windows (cmd)_ - -```text Entitlement Token Auth -set PUB_HOSTED_URL=https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/dart/ -``` -```text HTTP Basic Auth (User & Pass) -set PUB_HOSTED_URL=https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```text HTTP Basic Auth (API Key) -set PUB_HOSTED_URL=https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```text HTTP Basic Auth (Token) -set PUB_HOSTED_URL=https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` - -_Windows (Powershell)_ - -```powershell Entitlement Token Auth -$env:PUB_HOSTED_URL=https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/dart/ -``` -```powershell HTTP Basic Auth (User & Pass) -$env:PUB_HOSTED_URL=https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```powershell HTTP Basic Auth (API Key) -$env:PUB_HOSTED_URL=https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` -```powershell HTTP Basic Auth (Token) -$env:PUB_HOSTED_URL=https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/dart/ -``` - -## Installing a Package - -### SDK Version >= 2.15 +## Installing a package `dart pub` is capable of adding a dependency from this repository to your package `pubspec.yaml` automatically: @@ -253,35 +162,6 @@ Downloading your-package 1.2.3... Changed 1 dependency! ``` -### SDK Version \<= 2.14 - -**Public Repositories** - -A dependency may be manually added to your project `pubspec.yaml` file: - -```yaml -dependencies: - DEPENDENCY_NAME: - hosted: - name: PACKAGE_NAME - url: https://dl.cloudsmith.io/public/OWNER/REPOSITORY/dart/ - version: PACKAGE_VERSION -``` - -**Private Repositories** - -```yaml -dependencies: - your-package: - version: PACKAGE_VERSION -``` - -Once set up, pub will download the dependency to `.pub_cache` and update the `pubspec.lock` and `.packages` after running following command: - -```shell -pub get -``` - Please also see the [pubspec docs](https://dart.dev/tools/pub/pubspec) for further examples of pubspec files. ## Security Scanning @@ -293,7 +173,7 @@ Please see our [Security Scanning](/policy-management/vulnerability-policy) docu ## Upstream Proxying / Caching Configurable Proxying Caching -You can configure upstream Dart repositories that you wish to use for packages that are not available in your Cloudsmith repository. Proxied Dart packages cannot currently be cached. +You can configure upstream Dart repositories that you wish to use for packages that are not available in your Cloudsmith repository. Catching Dart packages is not supported. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index bf76e62d..44e7c2ae 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -245,9 +245,9 @@ Please see our [Security Scanning](/policy-management/vulnerability-policy) docu ## Current Limitations -The Cloudsmith Docker registry implementation currently has the following limitations: +The Cloudsmith Docker registry implementation has the following limitations: -- Remote layer mounting (for non-distributable layers, such as Windows) is currently not supported. +- Remote layer mounting (for non-distributable layers, such as Windows) is not supported. - Digests for images will not match those pushed to Docker Hub (but layers will match). - Digests for offline image uploads (via `docker save`) will not match those from `docker push`. diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index b88dfb4a..1ff5611d 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -61,7 +61,7 @@ Please see the [official Chart development](https://helm.sh/docs/developing_char -OCI support is currently in Early Access. Helm Charts uploaded via OCI will show as "Docker Packages" on Cloudsmith. Helm Charts uploaded via OCI aren't available to download via the classic `Chart.yaml` repository method. +OCI support is in Early Access. Helm Charts uploaded via OCI will show as "Docker Packages" on Cloudsmith. Helm Charts uploaded via OCI aren't available to download via the classic `Chart.yaml` repository method. ### Upload via the Cloudsmith CLI diff --git a/src/content/formats/luarocks-repository.mdx b/src/content/formats/luarocks-repository.mdx index df0aa7ac..7feff46b 100644 --- a/src/content/formats/luarocks-repository.mdx +++ b/src/content/formats/luarocks-repository.mdx @@ -44,7 +44,7 @@ This generates a `.rock` file like `MODULE_NAME-MODULE_VERSION.src.rock` that yo Please see the [official LuaRocks documentation](https://github.com/luarocks/luarocks/wiki/Creating-a-rock) for more information on building your own rocks. -The `luarocks upload` command currently only supports uploading modules to the official public rocks repository. To upload your modules to Cloudsmith, you can use the Web UI, the Cloudsmith CLI or the Cloudsmith API. +The `luarocks upload` command only supports uploading modules to the official public rocks repository. To upload your modules to Cloudsmith, you can use the Web UI, the Cloudsmith CLI or the Cloudsmith API. diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index d3f5f722..c56f7816 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -130,6 +130,38 @@ Example: cloudsmith push maven org/repo validation-api-1.0.0.GA.jar --pom-file=validation-api-1.0.0.GA.pom ``` + +### Uploading of extra files via the Cloudsmith CLI + +Customers can take advantage of the new extra-files option available for the Maven push command in cloudsmith-cli as of version 1.7.0. + +Here’s an example of how to use the command. You can either provide a comma-separated list or pass multiple `--extra-files` parameters. Using `extra-files` as a comma-separated list: + +```shell +cloudsmith push maven cloudsmith-test/cli-upload example-maven-project-1.0.0.jar \ + --javadoc-file example-maven-project-1.0.0-javadoc.jar \ + --sources-file example-maven-project-1.0.0-sources.jar \ + --pom-file example-maven-project-1.0.0.pom \ + --version 1.0.0 \ + --group-id com.example \ + --artifact-id maven-cli-push-test \ + --extra-files build-script.sh,random-file.xml +``` + +Or sing multiple `extra-files` parameters: + +```shell +cloudsmith push maven cloudsmith-test/cli-upload example-maven-project-1.0.0.jar \ + --javadoc-file example-maven-project-1.0.0-javadoc.jar \ + --sources-file example-maven-project-1.0.0-sources.jar \ + --pom-file example-maven-project-1.0.0.pom \ + --version 1.0.0 \ + --group-id com.example \ + --artifact-id maven-cli-push-test \ + --extra-files build-script.sh,random-file.xml \ + --extra-files readme.md +``` + ### Upload via Cloudsmith web app Please see [Upload a Package](/artifact-management/package-upload) for details of how to upload via the Cloudsmith web app. @@ -295,6 +327,20 @@ Please see our [Security Scanning](/policy-management/vulnerability-policy) docu Configurable Proxying Caching You can configure upstream Maven repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. +If you’ve configured your Maven upstream for caching, Cloudsmith will cache all files fetched from your upstream, including arbitrary files. + +Our supported upstreams for arbitrary file support are: + +- Maven Central +- Artifactory +- Gradle +- Nexus +- WSO2/JBOSS +- Google +- Confluent +- Shibbolenth +- Atlassian + Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index 5824a3ab..88687ca0 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -6,7 +6,7 @@ Cloudsmith provides public & private registries for npm (JavaScript) -npm is an extremely popular package manager for the [JavaScript](https://en.wikipedia.org/wiki/JavaScript), and is used for creating and using packaged [Node.js](https://en.wikipedia.org/wiki/Node.js) modules. A public index of packages is available from npm, inc. on [npmjs.org](https://npmjs.org). npm, Inc also develop and maintain the official `npm` client, ecosystem and tooling. +npm is an extremely popular package manager for [JavaScript](https://en.wikipedia.org/wiki/JavaScript), and is used for creating and using packaged [Node.js](https://en.wikipedia.org/wiki/Node.js) modules. A public index of packages is available from npm, inc. on [npmjs.org](https://npmjs.org). npm, Inc. also develop and maintain the official `npm` client, ecosystem and tooling. For more information on npm, please see: @@ -107,7 +107,7 @@ npm pack This will generate a tarball file (.tgz) like `your-package-1.2.3.tgz` that you can upload. -This assumes that you've created a `project.json` file for your project. Please see the official npmjs [package.json reference](https://docs.npmjs.com/files/package.json) (external link) for more information. +This assumes that you've created a `package.json` file for your project. Please see the official npmjs [package.json reference](https://docs.npmjs.com/files/package.json) (external link) for more information. The command to upload an npm package via the Cloudsmith CLI is: @@ -337,9 +337,9 @@ You can find out more about [security auditing](https://docs.npmjs.com/getting-s # Current Limitations -The Cloudsmith npm registry implementation currently has the following limitations: +The Cloudsmith npm registry implementation has the following limitations: -- The maximum size per-package file is currently limited to 100MiB (100 megabytes), but only when utilising the native npm-cli for publishing. If uploading using the cloudsmith-cli, then the absolute maximum size per-package file limit will be the standard 5GiB. +- The maximum size per-package file is limited to 100MiB (100 megabytes), but only when utilising the native npm-cli for publishing. If uploading using the cloudsmith-cli, then the absolute maximum size per-package file limit will be the standard 5GiB. Cloudsmith is unlikely to support the following (out-of-scope): diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index 49149b97..bef533f9 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -250,9 +250,9 @@ Install-Package PACKAGE_NAME -Source example-repo ## Current Limitations -The Cloudsmith NuGet feed implementation currently has the following limitations: +The Cloudsmith NuGet feed implementation has the following limitations: -- The maximum size per-package file is currently limited to 200MiB (~210 megabytes), but only when utilising the native nuget-cli for publishing. If uploading using the cloudsmith-cli, then the absolute maximum size per-package file limit will be the standard 5GiB. +- The maximum size per-package file is limited to 200MiB (~210 megabytes), but only when utilising the native nuget-cli for publishing. If uploading using the cloudsmith-cli, then the absolute maximum size per-package file limit will be the standard 5GiB. ## Security Scanning diff --git a/src/content/formats/terraform-modules-repository.mdx b/src/content/formats/terraform-modules-repository.mdx index 8b16947e..ff1995c2 100644 --- a/src/content/formats/terraform-modules-repository.mdx +++ b/src/content/formats/terraform-modules-repository.mdx @@ -35,7 +35,7 @@ In the following examples: ### Upload via the Cloudsmith CLI or Website -To upload via the Cloudsmith API/CLI, you'll need to generate a module first. While we expect the tooling in this area to improve over time, currently the process is a manual one, and can be a little tricky. +To upload via the Cloudsmith API/CLI, you'll need to generate a module first. You can build a package with standard command-line tooling like `tar.` To illustrate the process we'll use the [terraform vault module](https://github.com/hashicorp/terraform-aws-vault) for AWS as an example: diff --git a/src/content/getting-started/api-bindings.mdx b/src/content/getting-started/api-bindings.mdx index a3e85b2a..b28b9282 100644 --- a/src/content/getting-started/api-bindings.mdx +++ b/src/content/getting-started/api-bindings.mdx @@ -9,7 +9,7 @@ Please note that the generated client APIs are intended for developers and are s ## Releases -Releases for each language (where supported) are uploaded to the [Cloudsmith API repository](https://broadcasts.cloudsmith.com/cloudsmith/api). Support currently exists for the following languages: +Releases for each language (where supported) are uploaded to the [Cloudsmith API repository](https://broadcasts.cloudsmith.com/cloudsmith/api). The next languages are upported: | Language | Source | Location | | :------- | :----------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- | @@ -48,7 +48,7 @@ Where `` is the language you're generating bindings for (e.g. python). ## Versioning -The version of the generated library bindings is automatically made to match the upstream API. So if the Cloudsmith API is currently 0.21.5, then the language bindings will also be 0.21.5. +The version of the generated library bindings is automatically made to match the upstream API. So if the Cloudsmith API is 0.21.5, then the language bindings will also be 0.21.5. ## Releasing diff --git a/src/content/guides/dependency_firewall.mdx b/src/content/guides/dependency_firewall.mdx index 71809841..60f9a3fd 100644 --- a/src/content/guides/dependency_firewall.mdx +++ b/src/content/guides/dependency_firewall.mdx @@ -98,7 +98,7 @@ Let's [create a repository](/repositories/create-a-repository) for our microserv 3. select a region (default to `Dublin`), 4. and click on **+ Create Repository**. -Our new repo is created! +Our new repository is created! Depending on your use case or how you want to distribute your software, you have different visibility options for your repositories: - Public @@ -126,9 +126,9 @@ We can also use the cloudsmith CLI to manage artifacts from different formats, o {/* TODO, try to automate this via API to hide a bit what we are doing and avoid going to the old UI */} 📘 npm and pypi redirects -To continue with this guide, browse to your repo settings in the old UI ([https://cloudsmith.io/~demo-docs/repos/awesome-repo/settings/](https://cloudsmith.io/~/repos//settings/)) and disable the next two options: +To continue with this guide, browse to your repository settings in the old UI ([https://cloudsmith.io/~demo-docs/repos/awesome-repo/settings/](https://cloudsmith.io/~/repos//settings/)) and disable the next two options: - Proxy Python Packages? -- Proxy Npm Packages? +- Proxy npm Packages? {/* TODO: better use the file config instead of adding the registry option on every command */} @@ -194,7 +194,7 @@ Adding to this, you'll get another benefit from storing your dependencies in Clo --- -We can also use this repo to upload any kind of asset: from _NodeJS_, to Python_, _Golang_, or_Docker containers_. +We can also use this repository to upload any kind of asset: from _NodeJS_, to Python_, _Golang_, or_Docker containers_. Let's see a couple of examples. With python (pip3 required): ```bash @@ -238,7 +238,7 @@ Reach out to our [Support team](https://support.cloudsmith.com/) to learn more a {/* Ensure your teams are only pulling from Cloudsmith - which means setting up your teams and pipelines to point at Cloudsmith. Talk about teams, accounts, services, workspace members. */} -{/* Add example to push to the repo the app we just build, native + docker */} +{/* Add example to push to the repository the app we just build, native + docker */} Now, we not only block dependencies from other external repositories, but also have full visibility about all the dependencies being used by our applications. What about enforcing more advances criteria to guarantee that no known vulnerbale software is used? @@ -279,7 +279,7 @@ There's a multitude of security solutions that are great providing new findings, #### Observability and Logging -As part of the visibility features, Cloudsmith provides different observability functions to understand how dependencies are being used within your organization. Browse to your repo and click Logs. +As part of the visibility features, Cloudsmith provides different observability functions to understand how dependencies are being used within your organization. Browse to your repository and click Logs. The Client Logs are presented. Here you can see an overview of all of the different artifact files downloaded within your organization. This will give you insights about when, how, and by whom your packages are being used. diff --git a/src/content/integrations/integrating-with-argocd.mdx b/src/content/integrations/integrating-with-argocd.mdx index 55bf2948..dc1dceba 100644 --- a/src/content/integrations/integrating-with-argocd.mdx +++ b/src/content/integrations/integrating-with-argocd.mdx @@ -5,12 +5,13 @@ import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; You can integrate Cloudsmith with Argo CD to automate the deployment of your Kubernetes applications using Helm charts and Docker images securely stored in Cloudsmith repositories. This guide covers the steps to set up both Helm charts and Docker images with Cloudsmith in Argo CD, including secure authentication for private repositories. -It currently supports pulling: +This integration supports pulling: - [Docker](/formats/docker-registry) - [Helm](/formats/helm-chart-repository) + ## With this integration, you can - Use Cloudsmith to securely store and manage Helm charts and container images. @@ -97,7 +98,7 @@ argocd repo add --name cloudsmith-helm --type helm https://dl.cloudsmith.io/basi Where possible, use Entitlement tokens instead of API keys for more secure and flexible authentication when integrating with ArgoCD. Entitlement tokens are easier to manage and can be rotated more frequently for enhanced security. -In case of Entitlement token the command for adding the helm repo via ArgoCD CLI will be: +In case of Entitlement token the command for adding the helm repository via ArgoCD CLI will be: ```text bash argocd repo add --name cloudsmith-helm --type helm \ diff --git a/src/content/integrations/integrating-with-chainguard-images.mdx b/src/content/integrations/integrating-with-chainguard-images.mdx index 154cc5a0..a08fb770 100644 --- a/src/content/integrations/integrating-with-chainguard-images.mdx +++ b/src/content/integrations/integrating-with-chainguard-images.mdx @@ -23,8 +23,8 @@ Here's how you can integrate the Chainguard Registry into your Cloudsmith accoun Click the green "Create Upstream" button and select the Docker format. Provide a descriptive name for the upstream, e.g., Chainguard Public, and specify the URL for the Chainguard Registry. Enter the Chainguard Registry URL: - - For Chainguard's public images: `https://cgr.dev` - - For Chainguard's Private/Dedicated Registry: `https://cgr.dev/chainguard-private` + - For Chainguard's public images: `https://cgr.dev/chainguard` + - For Chainguard's Private/Dedicated Registry: `https://cgr.dev` Set the desired priority. Select Cache and Proxy. 2. **Configure SSL Certificate Verification** diff --git a/src/content/integrations/integrating-with-docker-hub.mdx b/src/content/integrations/integrating-with-docker-hub.mdx index b6006e34..50d5ce76 100644 --- a/src/content/integrations/integrating-with-docker-hub.mdx +++ b/src/content/integrations/integrating-with-docker-hub.mdx @@ -27,12 +27,12 @@ Here's how you can integrate the Docker Hub Registry into your Cloudsmith accoun Set the desired priority. Select Cache and Proxy. 3. **Provide authentication credentials** - Docker Hub currently requires authentication. Please select a Method of "Username and Password" and add your Docker Hub account credentials. + Docker Hub requires authentication. Please select a Method of "Username and Password" and add your Docker Hub account credentials. If you need help creating a Docker Hub account, see [here](https://docs.docker.com/docker-id/). -**Note:** For Docker Hub, Username & Password are currently required, not optional. +**Note:** For Docker Hub, Username & Password are required, not optional. 3. **Configure SSL Certificate Verification** Ensure SSL certificates are verified for added security, especially for public sources. diff --git a/src/content/integrations/integrating-with-github-actions.mdx b/src/content/integrations/integrating-with-github-actions.mdx index 7c9383cc..9e9c1f2f 100644 --- a/src/content/integrations/integrating-with-github-actions.mdx +++ b/src/content/integrations/integrating-with-github-actions.mdx @@ -7,7 +7,7 @@ How to integrate GitHub Actions with Cloudsmith -The Cloudsmith GitHub Action allows you to use the Cloudsmith CLI to upload/push packages to Cloudsmith repositories. It currently supports pushing: +The Cloudsmith GitHub Action allows you to use the Cloudsmith CLI to upload/push packages to Cloudsmith repositories. It supports pushing the next formats: - [Alpine](https://github.com/cloudsmith-io/action?tab=readme-ov-file#alpine-package-push) - [Cargo](https://github.com/cloudsmith-io/action?tab=readme-ov-file#cargo-crate-push) diff --git a/src/content/integrations/integrating-with-roadie.mdx b/src/content/integrations/integrating-with-roadie.mdx index 5dde3eb5..97640158 100644 --- a/src/content/integrations/integrating-with-roadie.mdx +++ b/src/content/integrations/integrating-with-roadie.mdx @@ -20,26 +20,27 @@ In order to get started please visit Roadie's [GitHub Page](https://github.com/c Once setup and running, you can add Cloudsmith Plugins by inserting them into `packages/app/src/components/home/HomePage.tsx`. -**There are currently 4 available plugins: -** +## Plugins -### **CloudsmithStatsCard:** +There are 4 available plugins: + +### CloudsmithStatsCard Displays how many packages are in use/inactive in the provided repository -### **CloudsmithQuotaCard:** +### CloudsmithQuotaCard Displays the current bandwidth and storage usage and how much is available. -### **CloudsmithRepositoryAuditLogCard:** +### CloudsmithRepositoryAuditLogCard Displays audit logs for a specified repository. -### **CloudsmithRepositorySecurityCard:** +### CloudsmithRepositorySecurityCard Displays Medium to Critical vulnerabilities found in a specified repository. diff --git a/src/content/integrations/integrating-with-terraform.mdx b/src/content/integrations/integrating-with-terraform.mdx index d64855ac..bba62e7c 100644 --- a/src/content/integrations/integrating-with-terraform.mdx +++ b/src/content/integrations/integrating-with-terraform.mdx @@ -86,7 +86,7 @@ See the [repository documentation](/repositories) for more information on creati The repository privileges resource allows the management of privileges for a given Cloudsmith repository. Using this resource it is possible to assign users, teams, or service accounts to a repository, and define the appropriate permission level for each. -Note that while users can be added to repositories in this manner, since Terraform does not (and cannot currently) manage those user accounts, you may encounter issues if the users change or are deleted outside of Terraform. +Note that while users can be added to repositories in this manner, since Terraform does not manage those user accounts, you may encounter issues if the users change or are deleted outside of Terraform. ``` resource "cloudsmith_repository_privileges" "privs" { diff --git a/src/content/integrations/integrating-with-zapier.mdx b/src/content/integrations/integrating-with-zapier.mdx index 01455aed..49432181 100644 --- a/src/content/integrations/integrating-with-zapier.mdx +++ b/src/content/integrations/integrating-with-zapier.mdx @@ -24,7 +24,7 @@ You can get your Cloudsmith API key from your user [settings](https://app.clouds ## Actions -The Cloudsmith Zapier Integration currently provides two actions: +The Cloudsmith Zapier Integration provides two actions: - Create Entitlement Token - Disable Entitlement Token diff --git a/src/content/logs-and-observability/audit-logs.mdx b/src/content/logs-and-observability/audit-logs.mdx index 107a06de..cb54f6b6 100644 --- a/src/content/logs-and-observability/audit-logs.mdx +++ b/src/content/logs-and-observability/audit-logs.mdx @@ -50,3 +50,128 @@ You can Search and Filter the Audit Log using the search box at the top. You can `>=foo` for values greater / equal ` - Currently, the system imposes a limit of 500 log entries for download operations. + There is a limit of 500 log entries for download operations. ## FAQs and troubleshooting diff --git a/src/content/policy-management/block-until-scan.mdx b/src/content/policy-management/block-until-scan.mdx index f0ddc396..e45d7955 100644 --- a/src/content/policy-management/block-until-scan.mdx +++ b/src/content/policy-management/block-until-scan.mdx @@ -13,7 +13,7 @@ Without Block Until Scan, packages could be served to clients *before* all neces ## How to Use It -📘 The Block Until Scan feature is currently in **Early Access (EA)**. To enable Block Until Scan for your workspace, please [contact Cloudsmith Support](https://cloudsmith.com/company/contact-us). +📘 The Block Until Scan feature is in **Early Access (EA)**. To enable Block Until Scan for your workspace, please [contact Cloudsmith Support](https://cloudsmith.com/company/contact-us). **Workspace-Wide Setting** diff --git a/src/content/policy-management/license-compliance.mdx b/src/content/policy-management/license-compliance.mdx index 78e23d02..afa80383 100644 --- a/src/content/policy-management/license-compliance.mdx +++ b/src/content/policy-management/license-compliance.mdx @@ -4,7 +4,6 @@ import img26d0615_licence_details from './images/license-compliance/26d0615-lice # License Compliance ---- License Compliance provides you with an overall view of license policy violations for your Workspace or Repository as a whole. @@ -23,7 +22,7 @@ The licensed packages chart shows the number of each license type in the reposit The licensed / unlicensed chart shows the total number of licensed versus unlicensed packages in the repository */} - Cloudsmith currently provides License data for the packages it knows about or has access to. A package might have a dependency on another package with a different license which is unknown and therefore not reported. + Cloudsmith provides License data for the packages it knows about or has access to. A package might have a dependency on another package with a different license which is unknown and therefore not reported. {/* ## Edit a License diff --git a/src/content/policy-management/vulnerability-policy.mdx b/src/content/policy-management/vulnerability-policy.mdx index 742aad74..8ef1288d 100644 --- a/src/content/policy-management/vulnerability-policy.mdx +++ b/src/content/policy-management/vulnerability-policy.mdx @@ -25,38 +25,38 @@ Vulnerability scanning and vulnerability policies are supported for the followin |Format|Vulnerability Scanning Support| |:---|:---| -|[Alpine](/formats/alpine-repository)|| -|[Cargo](/formats/cargo-registry)|| -|[Conan](/formats/conan-repository)|| -|[Cocoapods](/formats/cocoapods-repository)|| -|[Composer](/formats/composer-repository)|| -|[Conan](/formats/conan-repository)|| -|[Conda](/formats/conda-repository)|| -|[CRAN](/formats/cran-repository)|| -|[Dart](/formats/dart-repository)|| -|[Debian](/formats/debian-repository)|| -|[Docker](/formats/docker-registry)|| -|[Go](/formats/go-registry)|| -|[Helm](/formats/helm-chart-repository)|| -|[Hex](/formats/hex-repository)|| -|[LuaRocks](/formats/luarocks-repository)|| -|[Maven](/formats/maven-repository)|| -|[npm](/formats/npm-registry)|| -|[NuGet](/formats/nuget-feed)|| -|[P2](/formats/p2-repository)|| -|[Python](/formats/python-repository)|| -|[RPM](/formats/redhat-repository)|| -|[Ruby](/formats/ruby-repository) (Beta)|| -|[Swift](/formats/swift-registry)|| -|[Terraform](/formats/terraform-modules-repository)|| -|[Vagrant](/formats/vagrant-repository)|| +|[Alpine](/formats/alpine-repository)|❌| +|[Cargo](/formats/cargo-registry)|❌| +|[Conan](/formats/conan-repository)|✅| +|[Cocoapods](/formats/cocoapods-repository)|❌| +|[Composer](/formats/composer-repository)|✅| +|[Conan](/formats/conan-repository)|❌| +|[Conda](/formats/conda-repository)|❌| +|[CRAN](/formats/cran-repository)|❌| +|[Dart](/formats/dart-repository)|❌| +|[Debian](/formats/debian-repository)|❌| +|[Docker](/formats/docker-registry)|✅| +|[Go](/formats/go-registry)|✅| +|[Helm](/formats/helm-chart-repository)|❌| +|[Hex](/formats/hex-repository)|✅| +|[LuaRocks](/formats/luarocks-repository)|❌| +|[Maven](/formats/maven-repository)|✅| +|[npm](/formats/npm-registry)|✅| +|[NuGet](/formats/nuget-feed)|✅| +|[P2](/formats/p2-repository)|❌| +|[Python](/formats/python-repository)|✅| +|[RPM](/formats/redhat-repository)|❌| +|[Ruby](/formats/ruby-repository) (Beta)|✅| +|[Swift](/formats/swift-registry)|✅| +|[Terraform](/formats/terraform-modules-repository)|❌| +|[Vagrant](/formats/vagrant-repository)|❌| ## View Vulnerability Policies To manage vulnerability policies in your organization, go to your organization's "Settings" page and select "Vulnerability Policy" from the left-hand menu. - Deactivating a policy is not currently supported, so any policy created will remain active until deleted. + Deactivating a policy is not supported, so any policy created will remain active until deleted. diff --git a/src/content/repositories/create-a-repository.mdx b/src/content/repositories/create-a-repository.mdx index 6e34721e..7192d02d 100644 --- a/src/content/repositories/create-a-repository.mdx +++ b/src/content/repositories/create-a-repository.mdx @@ -3,6 +3,7 @@ import img12b8126_repo_create from './images/create-a-repository/12b8126-repo-cr import img_create_repository from './images/create-a-repository/5c579b6db69372fc661ddbee38b30cf4908cbfe1bf51f6eb3b859e745905eb08-create-repository.png' import img_create_a_new_repo from './images/create-a-repository/92ff99444bad9c24826e2964901365d3286245ff96bfbcfa403ddd544f279cee-create-a-new-repo.png' import img_repo_settings from './images/create-a-repository/28d77d9f603f2f346671ced886d5f1f537f6580dd709b46fa1fb57acec3542c3-repo-settings.png' +import enable_broadcasting from 'imagePath/enable-broadcasting.png'; # Create a Repository @@ -108,12 +109,16 @@ Private repositories are private. If required, external access to any files in a ### Broadcasts -Cloudsmith Broadcasts lets you distribute packages to the public. You can enable broadcasting during repository creation, which will make the packages in the repository available for download without authentication. +📘 Broadcasts is currently an early access feature. If you would like to try this feature, please [Contact Us](https://cloudsmith.com/company/contact-us). + +You can create a branded public repository using our new distribution feature, Broadcasts. Enabling broadcasting during repository creation creates a public page where users can browse, search, and download repository packages without requiring authentication. See [Broadcasts](/software-distribution/broadcasts) for more information. + + ## Via the Cloudsmith API For details on how to create a repository via the Cloudsmith API, please see the "Create a Repository" section of the [API Reference](/api/repos/create). - It is not currently possible to create Open Source repositories via the Cloudsmith API. + It is not possible to create Open Source repositories via the Cloudsmith API. \ No newline at end of file diff --git a/src/content/repositories/custom-storage-regions.mdx b/src/content/repositories/custom-storage-regions.mdx index fca22378..b1e00606 100644 --- a/src/content/repositories/custom-storage-regions.mdx +++ b/src/content/repositories/custom-storage-regions.mdx @@ -13,7 +13,7 @@ You can choose a storage region when creating a new repository or you can transf During the creation of a new package repository, you have the option to specify a custom storage region (other than the default region of Dublin, Ireland) for your new repository via the "Create Package Repository" form. -The currently supported storage regions are: +The next storage regions are supported: - Dublin, Ireland - Frankfurt, Germany diff --git a/src/content/repositories/images/create-a-repository/enable-broadcasting.png b/src/content/repositories/images/create-a-repository/enable-broadcasting.png new file mode 100644 index 0000000000000000000000000000000000000000..edf1df254d0254de0d3d8dad9667a8f8ce527a25 GIT binary patch literal 383348 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%0D|ymtar{US4O7<)J5+ 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%0Apw*OlHd6|5 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 z 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 F`!8zn-ZuaM literal 0 HcmV?d00001 diff --git a/src/content/software-distribution/entitlement-tokens-via-the-website-ui.mdx b/src/content/software-distribution/entitlement-tokens-via-the-website-ui.mdx index 41cb64f8..69b4d344 100644 --- a/src/content/software-distribution/entitlement-tokens-via-the-website-ui.mdx +++ b/src/content/software-distribution/entitlement-tokens-via-the-website-ui.mdx @@ -93,7 +93,7 @@ In addition, you can optionally add metadata to the token that is specific to yo ### EULA Acceptance - EULA for Entitlement Tokens is currently in Early Access. If you'd like to be included in early access to this feature please [contact us](https://cloudsmith.com/company/contact-us). + EULA for Entitlement Tokens is in Early Access. If you'd like to be included in early access to this feature please [contact us](https://cloudsmith.com/company/contact-us). You can specify that a EULA must be accepted before an Entitlement is enabled: @@ -168,7 +168,7 @@ You will then be presented with a form that will ask you to enter the repository ## Synchronising Entitlement Tokens -Synchronising Entitlement Tokens replaces all the tokens currently associated with a repository with those from another repository. This will invalidate any current tokens in use by existing users/clients. +Synchronising Entitlement Tokens replaces all the tokens associated with a repository with those from another repository. This will invalidate any current tokens in use by existing users/clients. You can synchronise Entitlement Tokens between repositories by clicking the dots to the right of the "Create New Token" button and then clicking "Sync Tokens": diff --git a/src/content/software-distribution/eula.mdx b/src/content/software-distribution/eula.mdx index adb1371d..a92d0206 100644 --- a/src/content/software-distribution/eula.mdx +++ b/src/content/software-distribution/eula.mdx @@ -63,7 +63,7 @@ curl https://dl.cloudsmith.io/uy7de6tvI8O9/cloudsmith/demo/raw/files/test.zip?ac ## EULA for Entitlement Tokens - EULA for Entitlement Tokens is currently in Early Access. If you'd like to be included in early access to this feature please [contact us](https://cloudsmith.com/company/contact-us). + EULA for Entitlement Tokens is in Early Access. If you'd like to be included in early access to this feature please [contact us](https://cloudsmith.com/company/contact-us). You can specify that a EULA must be accepted before an [Entitlement Token](/software-distribution/entitlement-tokens) can be used. This will allow you to enforce EULA acceptance for any package format, as Entitlement Tokens are used to provide controlled, read-only access to any artifact in a repository. diff --git a/src/content/supply-chain-security/epm/index.mdx b/src/content/supply-chain-security/epm/index.mdx index 163ed39e..fbb2d019 100644 --- a/src/content/supply-chain-security/epm/index.mdx +++ b/src/content/supply-chain-security/epm/index.mdx @@ -26,11 +26,11 @@ An example policy, explained in more detail below, quarantines a package followi Cloudsmith policies are continuously evaluated, so we detect changes in your security posture in near real time. Certain events will explicitly trigger a policy re-evaluation: -- When a package is added to a repository, it goes through a [synchronization process](https://help.cloudsmith.io/docs/resync-a-package#what-is-package-synchronization) that includes evaluating existing policies that may affect the package. Vulnerability Scanning should be enabled for the Workspace. +- When a package is added to a repository, it goes through a [synchronization process](/artifact-management/resync-a-package#what-is-package-synchronization) that includes evaluating existing policies that may affect the package. Vulnerability Scanning should be enabled for the Workspace. - When a package is resynchronized, provided it wasn't scanned within the 30 minutes before that. - When a package is copied from one repository to another. - When a vulnerability scan is triggered via the UI or API (Note that manual scan requests will only result in a re-scan 30 minutes after the previous scan). -- When a [recurring vulnerability scan](https://help.cloudsmith.io/docs/security-scanning#early-access-recurring-security-scans) is triggered. +- When a [recurring vulnerability scan](/supply-chain-security/vulnerability-scanning#early-access-recurring-security-scans) is triggered. - When Cloudsmith receives updated package data, such as CVSS or EPSS updates. ### Policies @@ -43,7 +43,7 @@ Policy matching occurs when the policy evaluation engine evaluates a policy agai ### Policy Actions -Actions can be assigned to policies to act on packages following policy evaluation. If a package has been matched in the matching step above, the policy actions associated with the policy will then be applied to the package. Multiple actions can be associated with a given policy, and the following actions are currently supported: +Actions can be assigned to policies to act on packages following policy evaluation. If a package has been matched in the matching step above, the policy actions associated with the policy will then be applied to the package. Multiple actions can be associated with a given policy, and the following actions are supported: - `set_state`. This allows you to control the state of the package. For example, whether to delete or quarantine the package. See the [PackageStateEnum](https://api.cloudsmith.io/v2/swagger/#/:~:text=MovePackageActionTyped-,PackageStateEnum,string,-AVAILABLE%20%2D%20The%20package) for more information. - `add_package_tags`. Add a set of tags to the package. diff --git a/src/content/supply-chain-security/vulnerability-scanning.mdx b/src/content/supply-chain-security/vulnerability-scanning.mdx index 29e1bd6b..a0857c50 100644 --- a/src/content/supply-chain-security/vulnerability-scanning.mdx +++ b/src/content/supply-chain-security/vulnerability-scanning.mdx @@ -1,7 +1,5 @@ import { BlockImage } from '@/components' - - import scans_repo_overview from './images/security-scanning/scans_repo_overview.png' import package_vulns from './images/security-scanning/package_vulns.png' import additional_scan from './images/security-scanning/additional_scan.png' @@ -101,4 +99,4 @@ You can request an additional security scan for a package using the [packages_sc ### Early Access: Recurring security scans -You can now also set up security scans to occur on a recurring basis. This feature is currently in Early Access. To set up recurring security scans for your workspace, contact us to be added to Early Access. +You can now also set up security scans to occur on a recurring basis. This feature is in Early Access. To set up recurring security scans for your workspace, contact us to be added to Early Access. diff --git a/src/content/support/billing.mdx b/src/content/support/billing.mdx index d9323a10..9c0b2c7e 100644 --- a/src/content/support/billing.mdx +++ b/src/content/support/billing.mdx @@ -2,7 +2,7 @@ ## Can I experiment with Cloudsmith as a developer? -Absolutely! The Core plan allows you to use the service at zero cost, with a modest allowance for artifact data and package delivery. You can upgrade to the Pro, Velocity, or Ultra plans if you need more generous allowances; these paid plans also allow you to pay by-the-gigabyte for on-demand usage that exceeds your allowances. +Absolutely! The Core plan allows you to use the service at zero cost, with a modest allowance for artifact data and package delivery. You can upgrade to the Core, Pro, Ultra, or Enterprise plans if you need more generous allowances; these paid plans also allow you to pay by-the-gigabyte for on-demand usage that exceeds your allowances. ## Do you offer plans for Open Source repositories? @@ -10,7 +10,7 @@ Yes, our Core plan includes support for open-source repositories. Just sign up a ## Do you have a separate pricing package for each artifact type? -No - you can store and deliver any type of artifact format in a Cloudsmith repository, in any pricing plan. Our pricing plans are differentiated by features and usage allowances. +No - you can store and deliver any type of artifact format in a Cloudsmith repository, in any pricing plan. Our pricing plans are differentiated by features and usage allowances. ## What happens if I use more than my allocation of artifact data and package delivery? @@ -26,7 +26,7 @@ Impressive! If you require more artifact data and package delivery than our Ultr ## How do I get billed? -Aside from the free Core plan, you will be required to enter a credit card within the billing settings for your organization before selecting a paid plan. Ultra plan customers can opt for annual billing via invoice. +Aside from the free Core plan, you will be required to enter a credit card within the billing settings for your organization before selecting a paid plan. Ultra plan customers can opt for annual billing via invoice. ## When do I get billed? diff --git a/src/content/support/operational-performance copy.mdx b/src/content/support/operational-performance copy.mdx index 41730ede..050cec45 100644 --- a/src/content/support/operational-performance copy.mdx +++ b/src/content/support/operational-performance copy.mdx @@ -13,7 +13,7 @@ Our uptime metrics (and incident/maintenance communications) are available via o ## Geographic Infrastructure -Cloudsmith serves customers all over the world, across all continents. Our architecture is CDN-driven, and our non-CDN infrastructure is currently stood up in the following locations: +Cloudsmith serves customers all over the world, across all continents. Our architecture is CDN-driven, and our non-CDN infrastructure is stood up in the following locations: - Oregon, USA - N. Virginia, USA @@ -21,7 +21,7 @@ Cloudsmith serves customers all over the world, across all continents. Our archi - Dublin, Ireland (primary) - Sydney, Australia -We currently provide eight geographic storage locations that you can choose from when creating a repository in the following locations: +We provide eight geographic storage locations that you can choose from when creating a repository in the following locations: - Dublin, Ireland - Frankfurt, Germany diff --git a/src/content/tbc/integrating-with-docker-hub.mdx b/src/content/tbc/integrating-with-docker-hub.mdx index 6e0200d2..a114bd24 100644 --- a/src/content/tbc/integrating-with-docker-hub.mdx +++ b/src/content/tbc/integrating-with-docker-hub.mdx @@ -26,12 +26,12 @@ Here's how you can integrate the Docker Hub Registry into your Cloudsmith accoun Set the desired priority. Select Cache and Proxy. 3. **Provide authentication credentials** - Docker Hub currently requires authentication. Please select a Method of "Username and Password" and add your Docker Hub account credentials. + Docker Hub requires authentication. Please select a Method of "Username and Password" and add your Docker Hub account credentials. If you need help creating a Docker Hub account, see [here](https://docs.docker.com/docker-id/). -**Note:** For Docker Hub, Username & Password are currently required, not optional. +**Note:** For Docker Hub, Username & Password are required, not optional. 3. **Configure SSL Certificate Verification** Ensure SSL certificates are verified for added security, especially for public sources. diff --git a/src/content/workspaces/workspace-settings.mdx b/src/content/workspaces/workspace-settings.mdx index 11e6b1fa..b255e6e9 100644 --- a/src/content/workspaces/workspace-settings.mdx +++ b/src/content/workspaces/workspace-settings.mdx @@ -37,7 +37,7 @@ The Workspace profile settings are where you configure the Workspace name, avata From within the Workspace profile settings, you have the ability to rename your organization's slug/identifier, and if you really need too, you can delete an organization (caution: this is a permanent action and cannot be undone). - If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that currently use the repositories as the URI would no longer be valid. + If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that use the repositories as the URI would no longer be valid. ### Billing From a4dd5b1a6fd516ed16672cfad72e0e2dbd3aa4cc Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 9 Jul 2025 12:48:39 +0200 Subject: [PATCH 050/127] clean up --- src/lib/swagger/parse.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index a863aff7..c8dfd4df 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -161,7 +161,7 @@ export const toMenuItems = (operations: ApiOperation[]): MenuItem[] => { */ const flattenMenuItems = (menuItems: MenuItem[]): MenuItem[] => { return menuItems.map((item) => { - let children = item.children ? flattenMenuItems(item.children) : undefined; + const children = item.children ? flattenMenuItems(item.children) : undefined; let flattenedItem: MenuItem = { ...item, children }; From fa8dc4864c2ba94884ce2574abfe2958e5fc4d71 Mon Sep 17 00:00:00 2001 From: gerguno Date: Thu, 10 Jul 2025 11:28:34 +0200 Subject: [PATCH 051/127] homepage edit done --- src/app/_styles/typography.css | 7 ++ src/app/page.module.css | 7 -- src/app/page.tsx | 3 +- src/components/Button/Button.module.css | 12 +++ src/components/Button/Button.tsx | 5 +- src/components/Card/Card.module.css | 32 +------ src/components/Card/Card.tsx | 8 +- .../HomepageHero/HomepageHero.module.css | 95 +++++++++++++++++-- src/components/HomepageHero/HomepageHero.tsx | 89 ++++++++++------- src/content/homepage.json | 19 ++-- 10 files changed, 180 insertions(+), 97 deletions(-) diff --git a/src/app/_styles/typography.css b/src/app/_styles/typography.css index 07ca7b1f..c141386b 100644 --- a/src/app/_styles/typography.css +++ b/src/app/_styles/typography.css @@ -37,6 +37,13 @@ letter-spacing: var(--letter-spacing-positive-xs); } + .headlineXXS { + font-family: var(--font-family-headline); + font-size: var(--text-headline-2xs); + line-height: var(--line-height-snug); + letter-spacing: var(--letter-spacing-positive-s); + } + /***************************************************** * BODY *****************************************************/ diff --git a/src/app/page.module.css b/src/app/page.module.css index 9fc5cb8d..2229c4d9 100644 --- a/src/app/page.module.css +++ b/src/app/page.module.css @@ -10,7 +10,6 @@ .sectionHeading { margin-bottom: var(--space-m); - font-size: var(--text-body-m); } .divider { @@ -24,9 +23,3 @@ height: 1px; background-color: var(--color-border); } - -@media (--phablet-up) { - .sectionHeading { - font-size: var(--text-body-xl); - } -} diff --git a/src/app/page.tsx b/src/app/page.tsx index e550be89..e8a73a0c 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,5 +1,6 @@ import { Card, Flex, HomepageHero, Container } from '@/components'; import { HomepageContent, Section, Card as CardType } from '@/lib/types'; +import { cx } from 'class-variance-authority'; import styles from './page.module.css'; import content from '@/content/homepage.json'; @@ -11,7 +12,7 @@ export default function Page() { case 'cards': return ( -

    {section.heading}

    +

    {section.heading}

    {section.cards.map((card: CardType, cardIndex: number) => ( + {icon && } {children} {withArrow && } {variant === 'secondary' && ( diff --git a/src/components/Card/Card.module.css b/src/components/Card/Card.module.css index 18d3bbdf..939415c4 100644 --- a/src/components/Card/Card.module.css +++ b/src/components/Card/Card.module.css @@ -6,7 +6,7 @@ border: 1px solid var(--color-background-info); display: flex; flex-direction: column; - gap: var(--space-s); + gap: var(--space-m); padding: var(--space-m); min-height: 200px; } @@ -33,7 +33,6 @@ } .description { - font-family: var(--font-family-body); padding-bottom: var(--space-2xs); } @@ -42,6 +41,7 @@ align-items: center; gap: var(--space-2xs); font-family: var(--font-family-headline); + margin-top: var(--space-2xs); } /* Size variants */ @@ -82,42 +82,18 @@ } .sizeSmall { - .title { - font-size: var(--text-body-m); - } - - .description { - font-size: var(--text-body-s); - } - .link { font-size: var(--text-body-xs); } } .sizeMedium { - .title { - font-size: var(--text-body-l); - } - - .description { - font-size: var(--text-body-m); - } - .link { font-size: var(--text-body-s); } } .sizeLarge { - .title { - font-size: var(--text-headline-s); - } - - .description { - font-size: var(--text-body-m); - } - .link { font-size: var(--text-body-m); justify-content: space-between; @@ -128,10 +104,6 @@ text-decoration: underline; } -.content:has(.description) .link { - margin-top: auto; -} - .content:not(:has(.description)) { justify-content: flex-end; } diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx index 93ef4f1b..01ae7ea2 100644 --- a/src/components/Card/Card.tsx +++ b/src/components/Card/Card.tsx @@ -1,4 +1,4 @@ -import { type VariantProps, cva } from 'class-variance-authority'; +import { type VariantProps, cva, cx } from 'class-variance-authority'; import Link from 'next/link'; import { Icon, IconName } from '@/icons'; import styles from './Card.module.css'; @@ -53,11 +53,11 @@ export function Card({
    -

    {title}

    - {description &&

    {description}

    } +

    {title}

    + {description &&

    {description}

    }
    - {linkText || title} + {linkText || title}
    diff --git a/src/components/HomepageHero/HomepageHero.module.css b/src/components/HomepageHero/HomepageHero.module.css index faa4fae1..37ef3c10 100644 --- a/src/components/HomepageHero/HomepageHero.module.css +++ b/src/components/HomepageHero/HomepageHero.module.css @@ -1,7 +1,7 @@ .root { - background-color: var(--base-color-grey-150); + background-color: var(--brand-color-grey-0); overflow: hidden; - height: 100%; + height: 518px; --offset-top: calc(var(--space-xl) + var(--navbar-top-height)); --hero-illustration-overlap: min(20vh, 150px); @@ -13,10 +13,72 @@ } .background { + height: 518px; + width: 100%; position: absolute; - height: 100%; - width: 800px; - right: -20%; + max-width: var(--container-width-l); + left: 50%; + transform: translateX(-50%); + overflow: hidden; + + & > svg { + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + max-inline-size: none; + max-block-size: none; + } + + .topVignette, + .bottomVignette { + height: 40px; + } + + .rightVignette, + .leftVignette { + width: 40px; + } + + .topVignette { + position: absolute; + top: 0; + left: 0; + right: 0; + background: linear-gradient(to top, transparent, var(--brand-color-grey-0)); + pointer-events: none; + z-index: 1; + } + + .rightVignette { + position: absolute; + top: 80px; + right: 0; + bottom: 0; + background: linear-gradient(to right, transparent, var(--brand-color-grey-0)); + pointer-events: none; + z-index: 1; + } + + .bottomVignette { + position: absolute; + bottom: 0; + left: 0; + right: 0; + background: linear-gradient(to bottom, transparent, var(--brand-color-grey-0)); + pointer-events: none; + z-index: 1; + } + + .leftVignette { + position: absolute; + top: 0; + left: 0; + bottom: 0; + background: linear-gradient(to left, transparent, var(--brand-color-grey-0)); + pointer-events: none; + z-index: 1; + } } .content { @@ -31,6 +93,14 @@ font-family: var(--font-family-headline); font-size: var(--text-headline-l); line-height: var(--line-height-compact); + letter-spacing: -0.0075em; +} + +.title strong { + background-clip: text; + background: linear-gradient(to right, var(--brand-color-blue-6), var(--brand-color-blue-8)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; } .description { @@ -46,11 +116,6 @@ } @media (--phablet-up) { - .background { - left: auto; - right: 10%; - } - .title { font-size: var(--text-headline-xl); } @@ -62,4 +127,14 @@ .button { width: var(--button-width-m); } + + .topVignette, + .bottomVignette { + height: 80px; + } + + .rightVignette, + .leftVignette { + width: 80px; + } } diff --git a/src/components/HomepageHero/HomepageHero.tsx b/src/components/HomepageHero/HomepageHero.tsx index f08d4646..e1ec6fc5 100644 --- a/src/components/HomepageHero/HomepageHero.tsx +++ b/src/components/HomepageHero/HomepageHero.tsx @@ -1,4 +1,5 @@ import { Button } from '../Button'; +import { type IconName } from '@/icons'; import { Container } from '../Container'; import { Flex } from '../Flex'; import styles from './HomepageHero.module.css'; @@ -6,6 +7,7 @@ import styles from './HomepageHero.module.css'; interface ButtonProps { label: string; href: string; + icon?: IconName; } interface HeroProps { @@ -16,43 +18,52 @@ interface HeroProps { const HeroBackground = () => (
    - - - - +
    +
    +
    +
    + + + - - - - - + + + + + + + + + + + - - - - + + + + + +
    @@ -63,12 +74,18 @@ export function HomepageHero({ description = 'This is the Hero Description. It can be as long as you want.', buttons = [], }: HeroProps) { + const hasHTML = /<[^>]+>/.test(title); + return ( + - -

    {title}

    + {hasHTML ? ( +

    + ) : ( +

    {title}

    + )}

    {description}

    {buttons.length > 0 && (
    @@ -76,7 +93,7 @@ export function HomepageHero({ Date: Fri, 11 Jul 2025 15:05:19 +0200 Subject: [PATCH 053/127] Andys extra edits --- src/app/_styles/variables.css | 8 ++--- src/app/page.module.css | 2 +- src/components/Button/Button.module.css | 3 +- src/components/Card/Card.module.css | 2 +- .../HomepageHero/HomepageHero.module.css | 3 +- src/components/HomepageHero/HomepageHero.tsx | 5 +-- src/components/QuickNav/QuickNav.module.css | 1 - src/components/Sidenav/Sidenav.module.css | 7 +++-- src/content/getting-started/index.mdx | 31 +++++++++++-------- src/content/homepage.json | 15 ++++----- src/icons/icon-registry.tsx | 7 +++++ src/icons/svgs/homepage/API.tsx | 26 ++++++++++++++++ src/icons/svgs/homepage/Documentation.tsx | 20 ++++++++++++ src/icons/svgs/homepage/Guide.tsx | 20 ++++++++++++ 14 files changed, 114 insertions(+), 36 deletions(-) create mode 100644 src/icons/svgs/homepage/API.tsx create mode 100644 src/icons/svgs/homepage/Documentation.tsx create mode 100644 src/icons/svgs/homepage/Guide.tsx diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index 97096735..05fdebf9 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -144,8 +144,8 @@ --color-background-header: var(--brand-color-grey-0); /* Text */ - --color-text-primary: var(--base-color-grey-900); - --color-text-secondary: var(--brand-color-grey-7); + --color-text-primary: var(--brand-color-grey-10); + --color-text-secondary: var(--brand-color-grey-8); --color-text-link: var(--base-color-blue-500); --color-text-on-color: var(--base-color-white); --color-text-label: var(--base-color-grey-500); @@ -157,7 +157,7 @@ --color-text-code: var(--base-color-blue-600); /* Border */ - --color-border: var(--brand-color-grey-2); + --color-border: var(--brand-color-grey-3); --color-border-tabs: var(--base-color-blue-500); /* Accent */ @@ -304,7 +304,7 @@ } @media (--desktop-up) { - --sidebar-width: 260px; + --sidebar-width: 272px; } } } diff --git a/src/app/page.module.css b/src/app/page.module.css index 2229c4d9..ea2cb294 100644 --- a/src/app/page.module.css +++ b/src/app/page.module.css @@ -1,7 +1,7 @@ .section { max-width: var(--container-width-l); margin: 0 auto; - padding: var(--space-l) var(--container-margin-home); + padding: var(--space-l) var(--space-m); } .section:first-of-type { diff --git a/src/components/Button/Button.module.css b/src/components/Button/Button.module.css index 8e53e096..a1ef5ade 100644 --- a/src/components/Button/Button.module.css +++ b/src/components/Button/Button.module.css @@ -2,7 +2,7 @@ --notch-size: 5px; display: inline-flex; - padding: 1em 1.25em 0.85em; + padding: var(--space-xs) var(--space-s); border: 0; font-family: var(--font-family-headline); font-size: var(--text-body-m); @@ -157,6 +157,7 @@ .icon { width: 16px; height: 16px; + opacity: 0.75; } .root:hover .secondaryBorderFill { diff --git a/src/components/Card/Card.module.css b/src/components/Card/Card.module.css index 939415c4..d426e99b 100644 --- a/src/components/Card/Card.module.css +++ b/src/components/Card/Card.module.css @@ -3,7 +3,7 @@ text-decoration: none; border-radius: var(--border-radius-2xl); background-color: var(--color-background-default); - border: 1px solid var(--color-background-info); + border: 1px solid var(--color-border); display: flex; flex-direction: column; gap: var(--space-m); diff --git a/src/components/HomepageHero/HomepageHero.module.css b/src/components/HomepageHero/HomepageHero.module.css index 37ef3c10..6ec8896d 100644 --- a/src/components/HomepageHero/HomepageHero.module.css +++ b/src/components/HomepageHero/HomepageHero.module.css @@ -85,7 +85,7 @@ z-index: var(--layer-hero); width: 100%; max-width: var(--container-width-s); - padding: var(--offset-top) var(--container-margin-home) var(--space-2xl); + padding: var(--offset-top) var(--space-m); font-family: var(--font-family-body); } @@ -106,6 +106,7 @@ .description { max-width: var(--container-width-xs); margin-bottom: var(--space-s); + color: var(--brand-color-grey-8); } .buttonContainer { diff --git a/src/components/HomepageHero/HomepageHero.tsx b/src/components/HomepageHero/HomepageHero.tsx index e1ec6fc5..e60ca3a5 100644 --- a/src/components/HomepageHero/HomepageHero.tsx +++ b/src/components/HomepageHero/HomepageHero.tsx @@ -3,6 +3,7 @@ import { type IconName } from '@/icons'; import { Container } from '../Container'; import { Flex } from '../Flex'; import styles from './HomepageHero.module.css'; +import { cx } from 'class-variance-authority'; interface ButtonProps { label: string; @@ -86,7 +87,7 @@ export function HomepageHero({ ) : (

    {title}

    )} -

    {description}

    +

    {description}

    {buttons.length > 0 && (
    {buttons.map((button) => ( @@ -94,7 +95,7 @@ export function HomepageHero({ key={button.label} href={button.href} icon={button.icon} - size="small" + size="medium" width="full" className={styles.button}> {button.label} diff --git a/src/components/QuickNav/QuickNav.module.css b/src/components/QuickNav/QuickNav.module.css index 74435a8e..8ac8845c 100644 --- a/src/components/QuickNav/QuickNav.module.css +++ b/src/components/QuickNav/QuickNav.module.css @@ -1,7 +1,6 @@ .root { position: sticky; top: calc(var(--space-l) + var(--navbar-height)); - padding-block: var(--space-xs); } .root::before { diff --git a/src/components/Sidenav/Sidenav.module.css b/src/components/Sidenav/Sidenav.module.css index e8b21a12..76bfd1f4 100644 --- a/src/components/Sidenav/Sidenav.module.css +++ b/src/components/Sidenav/Sidenav.module.css @@ -44,7 +44,7 @@ overflow-y: hidden; &:first-child { - padding-block: var(--space-xs); + padding-block: var(--space-l); } } @@ -154,9 +154,10 @@ } .wrapper { - margin-block-start: var(--space-l); - padding-inline: var(--space-m) var(--space-xs); + padding-inline: var(--space-m); border-right: 1px solid var(--brand-color-grey-2); + margin-block-end: 0; + min-height: calc(100vh - 130px); } .toggleButton { diff --git a/src/content/getting-started/index.mdx b/src/content/getting-started/index.mdx index 6c7adbed..4bdafd4a 100644 --- a/src/content/getting-started/index.mdx +++ b/src/content/getting-started/index.mdx @@ -13,7 +13,7 @@ Store public, private and open-source packages in Cloudsmith to help you manage, Learn more about [**Supported formats**](/formats). -Not sure where to start? +Not sure where to start?

    g+D!R`M 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 diff --git a/src/content/workspaces/images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png b/src/content/workspaces/images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png deleted file mode 100644 index 2a87aad0f7b5d784cd2d8a20a435bd26c58c9e9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411931 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

    ) : null} + {operation.experimental ? ( + + Early access + + ) : null} {operation.title} {operation.description ? {operation.description} : null} + {operation.experimental ? ( + + This endpoint is in early access, and may not be available to you. Contact us to request access + + ) : null}
    diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index 05fdebf9..c45b23f6 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -135,10 +135,10 @@ --color-background-default: var(--base-color-white); --color-background-light: var(--base-color-grey-25); --color-background-info: var(--base-color-blue-100); - --color-background-alert: var(--base-color-red-100); - --color-background-premium: var(--base-color-purple-100); - --color-background-success: var(--base-color-teal-100); - --color-background-warning: var(--base-color-yellow-100); + --color-background-alert: var(--brand-color-red-2); + --color-background-premium: var(--brand-color-purple-2); + --color-background-success: var(--brand-color-green-2); + --color-background-warning: var(--brand-color-yellow-2); --color-background-code: var(--base-color-blue-75); --color-background-pre: var(--base-color-grey-900); --color-background-header: var(--brand-color-grey-0); diff --git a/src/components/Note/Note.module.css b/src/components/Note/Note.module.css index d23c666f..5dff0e6f 100644 --- a/src/components/Note/Note.module.css +++ b/src/components/Note/Note.module.css @@ -53,3 +53,13 @@ --note-text: var(--color-text-alert); --color-text-code: var(--color-text-alert); } + +.noHeadline { + color: var(--brand-color-grey-10); + display: flex; + gap: var(--space-2xs); + align-items: flex-start; + padding-inline: var(--space-m); + font-size: var(--text-body-s); + line-height: var(--line-height-tight); +} diff --git a/src/components/Note/Note.tsx b/src/components/Note/Note.tsx index de24e668..f2671e46 100644 --- a/src/components/Note/Note.tsx +++ b/src/components/Note/Note.tsx @@ -1,4 +1,5 @@ import { cva, VariantProps } from 'class-variance-authority'; +import { Icon, IconName } from '@/icons'; import styles from './Note.module.css'; const defaultHeadings = { @@ -18,17 +19,25 @@ const note = cva(styles.root, { warning: styles.variantWarning, caution: styles.variantCaution, }, + noHeadline: { + true: styles.noHeadline, + }, }, defaultVariants: { variant: 'note', + noHeadline: false, }, }); -export function Note({ variant, headline, children, ...rest }: NoteProps) { +export function Note({ variant, headline, children, noHeadline, ...rest }: NoteProps) { return ( -
    -

    {headline ?? defaultHeadings[variant ?? 'note']}

    - {children} +
    + {noHeadline ? ( + + ) : ( +

    {headline ?? defaultHeadings[variant ?? 'note']}

    + )} + {children}
    ); } @@ -37,4 +46,5 @@ type VariantsProps = VariantProps; interface NoteProps extends VariantsProps, React.ComponentPropsWithoutRef<'blockquote'> { headline?: string; + noHeadline?: boolean; } diff --git a/src/components/Tag/Tag.module.css b/src/components/Tag/Tag.module.css index 62fef964..a771d6ce 100644 --- a/src/components/Tag/Tag.module.css +++ b/src/components/Tag/Tag.module.css @@ -5,6 +5,8 @@ --color-green-text: var(--brand-color-green-7); --color-yellow-base: var(--brand-color-yellow-2); --color-yellow-text: var(--brand-color-yellow-7); + --color-lightyellow-base: var(--brand-color-yellow-1); + --color-lightyellow-text: var(--brand-color-yellow-7); --color-red-base: var(--brand-color-red-2); --color-red-text: var(--brand-color-red-7); --color-grey-base: var(--brand-color-grey-2); @@ -32,6 +34,8 @@ --color-green-text: var(--brand-color-green-2); --color-yellow-base: var(--brand-color-yellow-7); --color-yellow-text: var(--brand-color-yellow-2); + --color-lightyellow-base: var(--brand-color-yellow-7); + --color-lightyellow-text: var(--brand-color-yellow-2); --color-red-base: var(--brand-color-red-7); --color-red-text: var(--brand-color-red-2); --color-grey-base: var(--brand-color-grey-7); @@ -86,6 +90,16 @@ } } +.lightyellow { + --method-bg-color: var(--color-lightyellow-base); + --method-text-color: var(--color-lightyellow-text); + + &.active { + --method-bg-color: var(--color-lightyellow-text); + --method-text-color: var(--color-lightyellow-base); + } +} + .red { --method-bg-color: var(--color-red-base); --method-text-color: var(--color-red-text); diff --git a/src/components/Tag/Tag.tsx b/src/components/Tag/Tag.tsx index 583afa63..57b50883 100644 --- a/src/components/Tag/Tag.tsx +++ b/src/components/Tag/Tag.tsx @@ -17,6 +17,7 @@ const tagVariants = cva(styles.root, { neutral: styles.neutral, green: styles.green, yellow: styles.yellow, + lightyellow: styles.lightyellow, red: styles.red, grey: styles.grey, }, diff --git a/src/content/schemas/api-schema-v2.json b/src/content/schemas/api-schema-v2.json index e072a09d..c94a24ea 100644 --- a/src/content/schemas/api-schema-v2.json +++ b/src/content/schemas/api-schema-v2.json @@ -370,6 +370,7 @@ "get": { "operationId": "workspaces_policies_actions_list", "description": "List all actions for the policy.", + "x-experimental": true, "parameters": [ { "name": "page", @@ -433,6 +434,7 @@ "post": { "operationId": "workspaces_policies_actions_create", "description": "Create an action for a policy.", + "x-experimental": true, "parameters": [ { "in": "path", @@ -517,6 +519,7 @@ "get": { "operationId": "workspaces_policies_actions_retrieve", "description": "Retrieve an action for a policy.", + "x-experimental": true, "parameters": [ { "in": "path", @@ -571,6 +574,7 @@ "put": { "operationId": "workspaces_policies_actions_update", "description": "Update an action for a policy.", + "x-experimental": true, "parameters": [ { "in": "path", @@ -634,6 +638,7 @@ "patch": { "operationId": "workspaces_policies_actions_partial_update", "description": "Partially update an action for a policy.", + "x-experimental": true, "parameters": [ { "in": "path", @@ -697,6 +702,7 @@ "delete": { "operationId": "workspaces_policies_actions_destroy", "description": "Delete an action for a policy.", + "x-experimental": true, "parameters": [ { "in": "path", diff --git a/src/icons/icon-registry.tsx b/src/icons/icon-registry.tsx index 71f6ff77..2bd740ef 100644 --- a/src/icons/icon-registry.tsx +++ b/src/icons/icon-registry.tsx @@ -5,6 +5,8 @@ import { ChevronIcon } from './svgs/Chevron'; import { ChevronSmallIcon } from './svgs/ChevronSmall'; import { ArrowIcon } from './svgs/Arrow'; import { SearchIcon } from './svgs/Search'; +import { InfoIcon } from './svgs/Info'; + import { UtilityDocumentationIcon } from './svgs/utility/Documentation'; import { UtilityGuideIcon } from './svgs/utility/Guide'; import { UtilityApiIcon } from './svgs/utility/Api'; @@ -107,6 +109,7 @@ export const iconRegistry = createIconRegistry({ arrowDown: (props) => , arrowLeft: (props) => , search: SearchIcon, + info: InfoIcon, 'utility/documentation': UtilityDocumentationIcon, 'utility/guide': UtilityGuideIcon, 'utility/api': UtilityApiIcon, diff --git a/src/icons/svgs/Info.tsx b/src/icons/svgs/Info.tsx new file mode 100644 index 00000000..590a9883 --- /dev/null +++ b/src/icons/svgs/Info.tsx @@ -0,0 +1,17 @@ +import { createIcon, SpecificIconProps } from '../util/create-icon'; + +export const InfoIcon = createIcon('info', ({ width = 16, height = 16, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 16 16', + fill: 'none', + children: ( + + ), +})); diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index c8dfd4df..f3514804 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -108,6 +108,7 @@ export const toOperations = (schemas: { schema: OpenAPIV3.Document; version: str menuSegments, slug, title: createTitle(menuSegments), + experimental: (operation as any)['x-experimental'] === true, }); } } diff --git a/src/lib/swagger/types.ts b/src/lib/swagger/types.ts index 93bf7fa7..b68047a7 100644 --- a/src/lib/swagger/types.ts +++ b/src/lib/swagger/types.ts @@ -14,6 +14,7 @@ export interface ApiOperation { slug: string; title: string; version: string; + experimental?: boolean; // Whether this endpoint is in early access // From OpenAPIV3.OperationObject tags?: string[]; From b5ed0439799b2aabf790715eba6c95d3647628a3 Mon Sep 17 00:00:00 2001 From: gerguno Date: Tue, 15 Jul 2025 14:23:01 +0200 Subject: [PATCH 069/127] clean up --- src/components/Note/Note.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Note/Note.tsx b/src/components/Note/Note.tsx index f2671e46..18dc43d6 100644 --- a/src/components/Note/Note.tsx +++ b/src/components/Note/Note.tsx @@ -1,5 +1,5 @@ import { cva, VariantProps } from 'class-variance-authority'; -import { Icon, IconName } from '@/icons'; +import { Icon } from '@/icons'; import styles from './Note.module.css'; const defaultHeadings = { From de4e9e62fcc1362417af14a3e42b37dbff7cd5e5 Mon Sep 17 00:00:00 2001 From: gerguno Date: Tue, 15 Jul 2025 14:33:04 +0200 Subject: [PATCH 070/127] clean up --- src/lib/swagger/parse.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index f3514804..7285b264 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -108,7 +108,7 @@ export const toOperations = (schemas: { schema: OpenAPIV3.Document; version: str menuSegments, slug, title: createTitle(menuSegments), - experimental: (operation as any)['x-experimental'] === true, + experimental: (operation as OpenAPIV3.OperationObject)['x-experimental'] === true, }); } } From 8a2585977d145b2f7ba7a147f152900954947e68 Mon Sep 17 00:00:00 2001 From: gerguno Date: Tue, 15 Jul 2025 14:41:14 +0200 Subject: [PATCH 071/127] clean up --- src/lib/swagger/parse.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/swagger/parse.ts b/src/lib/swagger/parse.ts index 7285b264..d0ab1943 100644 --- a/src/lib/swagger/parse.ts +++ b/src/lib/swagger/parse.ts @@ -6,6 +6,10 @@ import { ApiOperation } from './types'; import { isHttpMethod, createSlug, parseMenuSegments, apiOperationPath, createTitle } from './util'; import { MenuItem } from '../menu/types'; +interface OperationObjectWithExperimental extends OpenAPIV3.OperationObject { + 'x-experimental'?: boolean; +} + const SCHEMAS_DIR = 'src/content/schemas'; /** @@ -108,7 +112,7 @@ export const toOperations = (schemas: { schema: OpenAPIV3.Document; version: str menuSegments, slug, title: createTitle(menuSegments), - experimental: (operation as OpenAPIV3.OperationObject)['x-experimental'] === true, + experimental: (operation as OperationObjectWithExperimental)['x-experimental'] === true, }); } } From e87cb1f03064382a3e6974a431a54e298f142655 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 15 Jul 2025 15:16:19 +0200 Subject: [PATCH 072/127] after review with alan --- src/content/api/index.mdx | 4 +- src/content/artifact-management/index.mdx | 1 + .../artifact-management/retention-rules.mdx | 10 ++--- .../authentication/scim-with-jumpcloud.mdx | 2 +- src/content/formats/cargo-registry.mdx | 2 +- src/content/formats/docker-registry.mdx | 2 +- src/content/formats/oci-repository.mdx | 2 +- src/content/formats/python-repository.mdx | 2 +- src/content/homepage.json | 38 ++++++++++++++++++- .../integrations/integrating-with-datadog.mdx | 2 +- .../integrations/integrating-with-harness.mdx | 2 +- .../integrating-with-microsoft-teams.mdx | 2 +- .../integrations/integrating-with-roadie.mdx | 2 +- src/content/menu.json | 10 ++--- .../migrating-to-cloudsmith/import-docker.mdx | 2 +- src/content/migrating-to-cloudsmith/index.mdx | 2 +- .../policy-management/license-policy.mdx | 2 +- .../vulnerability-policy.mdx | 2 +- src/content/repositories/index.mdx | 2 +- src/content/repositories/upstreams/index.mdx | 4 +- .../broadcasts/index.mdx | 10 ++--- src/content/software-distribution/index.mdx | 2 +- .../continuous-security.mdx | 4 +- .../support/operational-performance.mdx | 4 +- .../custom-domains.mdx} | 21 +++++----- src/content/workspaces/workspace-settings.mdx | 6 +-- src/snippets/integrationsGroupSnippet.mdx | 1 - 27 files changed, 89 insertions(+), 54 deletions(-) rename src/content/{software-distribution/broadcasts/broadcasts-custom-domain.mdx => workspaces/custom-domains.mdx} (89%) diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index 0ec70d60..de3b60a7 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -6,10 +6,10 @@ The Cloudsmith REST (REpresentational State Transfer) API (Application Programmi The API is versioned to help reduce future compatibility issues if we need to change the API. The following is a list of the current API versions and their URI endpoints: -### v1 (Version 1.0) https://api.cloudsmith.io/v1/ +### v1 (Version 1.0) https://api.cloudsmith.io/ ### v2 (Version 2.0) https://api.cloudsmith.io/v2/ -If no explicit version has been specified then the latest version of the API will always be accessible at https://api.cloudsmith.io/ - so for example if the latest version is v1 then this will point to the v1 API. If we release a new v2 API then https://api.cloudsmith.io/ will automatically point to the v2 API, which may break clients that don't expect it. In order to maximise compatibility (if you need it), you should consider pointing at the fully-qualified endpoint for the version you need, such as https://api.cloudsmith.io/v1/, or use one of the alternative methods (see below) for specifying the version. +If no explicit version has been specified then the latest version of the API will always be accessible at https://api.cloudsmith.io/ - so for example if the latest version is v1 then this will point to the v1 API. If we release a new v2 API then https://api.cloudsmith.io/ will automatically point to the v2 API, which may break clients that don't expect it. In order to maximise compatibility (if you need it), you should consider pointing at the fully-qualified endpoint for the version you need, such as https://api.cloudsmith.io/, or use one of the alternative methods (see below) for specifying the version. In addition to explicitly specifying the endpoint in the URI, the following methods of specifying the version are supported by the Cloudsmith API: diff --git a/src/content/artifact-management/index.mdx b/src/content/artifact-management/index.mdx index b004fc72..006cae2b 100644 --- a/src/content/artifact-management/index.mdx +++ b/src/content/artifact-management/index.mdx @@ -74,6 +74,7 @@ Cloudsmith allows you to "promote" packages between repositories through either ### Package Deny policies +Package [deny policy rules](/policy-management/deny-policy) let you control which packages can be downloaded from your workspace's repositories. By defining these rules, organizations can enforce stricter security measures and maintain tighter control over their software artifacts. ### Block Until Scan diff --git a/src/content/artifact-management/retention-rules.mdx b/src/content/artifact-management/retention-rules.mdx index 6c2f45d7..ee10f2f3 100644 --- a/src/content/artifact-management/retention-rules.mdx +++ b/src/content/artifact-management/retention-rules.mdx @@ -41,7 +41,7 @@ Alternatively, use the API to enable it with: ```shell curl --request PATCH \ - --url 'https://api.cloudsmith.io/v1/repos/WORKSPACE/REPOSITORY/retention?=' \ + --url 'https://api.cloudsmith.io/repos/WORKSPACE/REPOSITORY/retention?=' \ --header 'Authorization: Bearer API_TOKEN' \ --form retention_enabled=true ``` @@ -64,7 +64,7 @@ Please note that the `Query String` is not available in the UI, use the API inst ### Configuration parameters via API -Visit [API reference](https://api.cloudsmith.io/v1/swagger/) and search by `/repos/{owner}/{repo}/retention`. +Visit [API reference](https://api.cloudsmith.io/swagger/) and search by `/repos/{owner}/{repo}/retention`. As a reference, use `GET` to consult an existing a retention rule or `PATCH` to update it. @@ -106,7 +106,7 @@ Delete all packages that are more than 30 days old and do not have any tag. ```shell curl --request PATCH \ - --url https://api.cloudsmith.io/v1/repos/cloudsmith-test/acme-prod/retention/ \ + --url https://api.cloudsmith.io/repos/cloudsmith-test/acme-prod/retention/ \ --header "X-Api-Key: test-key" \ --header "accept: application/json" \ --header content-type: application/json" \ @@ -123,7 +123,7 @@ Delete all packages that are more than 60 days old and have less than 10 downloa ```shell curl --request PATCH \ - --url https://api.cloudsmith.io/v1/repos/cloudsmith-test/acme-prod/retention/ \ + --url https://api.cloudsmith.io/repos/cloudsmith-test/acme-prod/retention/ \ --header "X-Api-Key: test-key" \ --header "accept: application/json" \ --header "content-type: application/json" \ @@ -140,7 +140,7 @@ Kept only 5 packages per format (python, docker, helm, etc.), that are not older ```shell curl --request PATCH \ - --url 'https://api.cloudsmith.io/v1/repos/WORKSPACE/REPOSITORY/retention?=' \ + --url 'https://api.cloudsmith.io/repos/WORKSPACE/REPOSITORY/retention?=' \ --header 'Authorization: Bearer API_TOKEN' \ --header "accept: application/json" \ --header content-type: application/json" \ diff --git a/src/content/authentication/scim-with-jumpcloud.mdx b/src/content/authentication/scim-with-jumpcloud.mdx index 9e6e2b8c..f6f7cc42 100644 --- a/src/content/authentication/scim-with-jumpcloud.mdx +++ b/src/content/authentication/scim-with-jumpcloud.mdx @@ -6,7 +6,7 @@ import img_scim_steps from './images/scim-with-jumpcloud/33a9e7ca325096db9b79c30 SCIM, or System for Cross-domain Identity Management, is an open standard designed to manage user identity information. Cloudsmith is SCIM 2.0-compliant. With Cloudsmith's support for SCIM, you can automatically provision new users, de-provision existing users, and update existing users' profile information based on changes within your Identity Provider (IdP). - SCIM integration with JumpCloud is currently available in early access + SCIM integration with JumpCloud is available in early access To begin using SCIM, you need to enable the SCIM functionality in the [Cloudsmith Workspace Settings](/workspaces/workspace-settings) diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index 1e7a5659..7ef73f13 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -235,7 +235,7 @@ cargo install PACKAGE_NAME --registry REGISTRY_NAME` ## Known Limitations -Currently, Cloudsmith does not support the cargo search command. +The cargo search command is not supported. ## Troubleshooting diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index 44e7c2ae..fd15c139 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -82,7 +82,7 @@ In the following examples: ## Upload an Image -If you have added a [Custom Domain](/software-distribution/broadcasts-custom-domain) for Docker, you must use it to authenticate and push. Please replace `docker.cloudsmith.io` in the following instructions with the Docker custom domain you have created. +If you have added a [Custom Domain](/workspaces/custom-domains) for Docker, you must use it to authenticate and push. Please replace `docker.cloudsmith.io` in the following instructions with the Docker custom domain you have created. ### Publish via Docker diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index cbb84afd..ff07e5b8 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -53,7 +53,7 @@ For consistency, the terms will be used within all of the OCI-related documentat ## Upload an Generic Artifact with ORAS -If you have added a [Custom Domain](/software-distribution/broadcasts-custom-domain) for Docker, you must use it to authenticate and push. Please replace `docker.cloudsmith.io` in the following instructions with the Docker custom domain you have created. +If you have added a [Custom Domain](/workspaces/custom-domains) for Docker, you must use it to authenticate and push. Please replace `docker.cloudsmith.io` in the following instructions with the Docker custom domain you have created. [ORAS (OCI Registry As Storage)](https://oras.land/) is an open-source tool that enables users to push, pull, and manage non-container artifacts in OCI-compliant registries. It extends the OCI specification beyond container images, turning registries into a general-purpose storage system for diverse artifact types. diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index f4aabdac..cd0e7081 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -239,7 +239,7 @@ dependencies = [ name = "cloudsmith" url = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/" # optional, but recommended for publish: -publish-url = "https://api.cloudsmith.io/python/OWNER/REPOSITORY/" +publish-url = "https://python.cloudsmith.io/python/OWNER/REPOSITORY/" ``` Then, define the next environmental variables for `uv` to perform basic HTTP Auth. Replace `API-KEY` with your user API Token: diff --git a/src/content/homepage.json b/src/content/homepage.json index 6ce3cb7d..d5143d79 100644 --- a/src/content/homepage.json +++ b/src/content/homepage.json @@ -57,6 +57,42 @@ } ] }, + { + "heading": "Leveling up your artifact management and package delivery", + "type": "cards", + "cards": [ + { + "title": "Broadcasts", + "description": "Distribute your packages with your own branding", + "href": "/software-delivery/broadcasts/", + "linkText": "Broadcasts", + "icon": "homepage/guide", + "size": "s", + "width": "third", + "type": "default" + }, + { + "title": "Supply Chain Security", + "description": "Define your security policies as code, and enforce them across all your organization's artifacts", + "href": "/supply-chain-security", + "linkText": "Secure your artifacts", + "icon": "homepage/documentation", + "size": "s", + "width": "third", + "type": "default" + }, + { + "title": "Upstreams", + "description": "Index, proxy, and cache popular public upstreams and control all your assets within a single repository.", + "href": "/repositories/upstreams", + "linkText": "Configure a new upstream", + "icon": "homepage/api", + "size": "s", + "width": "third", + "type": "default" + } + ] + }, { "heading": "Managing accounts and teams", "type": "cards", @@ -82,7 +118,7 @@ "type": "default" }, { - "title": "Workspace privileges", + "title": "Workspace RBAC", "description": "Learn how to apply the principle of least privilege to secure your supply chain.", "href": "/workspaces/privileges", "linkText": "Privileges", diff --git a/src/content/integrations/integrating-with-datadog.mdx b/src/content/integrations/integrating-with-datadog.mdx index 26009e92..8ac6e69b 100644 --- a/src/content/integrations/integrating-with-datadog.mdx +++ b/src/content/integrations/integrating-with-datadog.mdx @@ -112,7 +112,7 @@ Once installed, configure your integration similar to core integrations. There a | Config Name | Config Description | | :----------------- | :----------------------------------------------------------------------------------------- | -| `url` | The Cloudsmith API URL (https://api.cloudsmith.io/v1) | +| `url` | The Cloudsmith API URL (https://api.cloudsmith.io) | | `cloudsmith_api_key` | Your Cloudsmith API key | | `organization` | The Cloudsmith [Workspace](/workspaces) (Workspace) that you are monitoring | | `min_collection_interval` | Collection interval of the check. **We recommend to set it's value to 180**. | diff --git a/src/content/integrations/integrating-with-harness.mdx b/src/content/integrations/integrating-with-harness.mdx index c333bc10..fc11828d 100644 --- a/src/content/integrations/integrating-with-harness.mdx +++ b/src/content/integrations/integrating-with-harness.mdx @@ -41,7 +41,7 @@ Cloudsmith Repositories are added to Harness as an Artifact Server. At a minimu | :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Type | The type of Artifact Server, select "Docker Registry". | | Display Name | A name for the Artifact Server within Harness. You can use any name that you wish here. | -| Docker Registry URL | The URL for your Cloudsmith Repository. Enter `https://docker.cloudsmith.io/v2/` or your own docker [Custom Domain](/software-distribution/broadcasts-custom-domain) (if enabled in your Cloudsmith Account) | +| Docker Registry URL | The URL for your Cloudsmith Repository. Enter `https://docker.cloudsmith.io/v2/` or your own docker [Custom Domain](/workspaces/custom-domains) (if enabled in your Cloudsmith Account) | | Username | The Cloudsmith Username, or an Entitlement Token name that you wish to authenticate with Please see the Cloudsmith [Docker Registry](/formats/docker-registry) documentation for details of authentication methods. | | Select Encrypted Password | The Encrypted Secret that you wish to use for Authentication. Please see the [Harness documentation](https://developer.harness.io/docs/platform/secrets/secrets-management/harness-secret-manager-overview/) for further information on Encrypted Secrets. | diff --git a/src/content/integrations/integrating-with-microsoft-teams.mdx b/src/content/integrations/integrating-with-microsoft-teams.mdx index 43028c40..ab3f07f5 100644 --- a/src/content/integrations/integrating-with-microsoft-teams.mdx +++ b/src/content/integrations/integrating-with-microsoft-teams.mdx @@ -65,5 +65,5 @@ https://outlook.office.com/webhook/0f7eb16f-f6de-csm1-8272-3028fbf63fdb@1e93d1ef Upload a package and enjoy the awesome automated Microsoft Teams posts! -For more information about the events triggered by the package synchronization process please see [our Webhook documentation.](/logs-and-observability/webhooks#webhook-event-types) +For more information about the events triggered by the package synchronization process please see [our Webhook documentation.](/developer-tools/webhooks#webhook-event-types) \ No newline at end of file diff --git a/src/content/integrations/integrating-with-roadie.mdx b/src/content/integrations/integrating-with-roadie.mdx index 97640158..d6ac035d 100644 --- a/src/content/integrations/integrating-with-roadie.mdx +++ b/src/content/integrations/integrating-with-roadie.mdx @@ -83,7 +83,7 @@ Then you can edit the `app-config.yaml` for the backstage backend application, proxy: ... '/cloudsmith': - target: 'https://api.cloudsmith.io/v1' + target: 'https://api.cloudsmith.io' headers: X-Api-Key: ${CLOUDSMITH_API_KEY} ``` diff --git a/src/content/menu.json b/src/content/menu.json index db6bbacb..5808f4c4 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -100,6 +100,10 @@ "title": "Privileges", "path": "/workspaces/privileges" }, + { + "title": "Custom domains", + "path": "/workspaces/custom-domains" + }, { "title": "Authentication", "path": "/authentication/", @@ -218,7 +222,7 @@ }, { "title": "Member accounts", - "path": "/accounts-and-teams/invite-users" + "path": "/accounts-and-teams/user-accounts" }, { "title": "Service accounts", @@ -359,10 +363,6 @@ { "title": "Customization", "path": "/software-distribution/broadcasts/broadcasts-customization" - }, - { - "title": "Custom domains", - "path": "/software-distribution/broadcasts/broadcasts-custom-domain" } ] }, diff --git a/src/content/migrating-to-cloudsmith/import-docker.mdx b/src/content/migrating-to-cloudsmith/import-docker.mdx index 49ce6f66..57cd5bcc 100644 --- a/src/content/migrating-to-cloudsmith/import-docker.mdx +++ b/src/content/migrating-to-cloudsmith/import-docker.mdx @@ -19,7 +19,7 @@ Since Docker can be used in different ways including remote repositories and dif #### Re-tag the images with Cloudsmith URL -If you are a Velocity/Ultra customer, you are entitled to a [custom domain](/software-distribution/broadcasts-custom-domains) for your package types including Docker. Before proceeding, if you would like to use a custom domain we highly recommend requesting it first as you will have to re-point the images to your new domain. +If you are a Velocity/Ultra customer, you are entitled to a [custom domain](/workspaces/custom-domains) for your package types including Docker. Before proceeding, if you would like to use a custom domain we highly recommend requesting it first as you will have to re-point the images to your new domain. diff --git a/src/content/migrating-to-cloudsmith/index.mdx b/src/content/migrating-to-cloudsmith/index.mdx index 7affddb9..c077815f 100644 --- a/src/content/migrating-to-cloudsmith/index.mdx +++ b/src/content/migrating-to-cloudsmith/index.mdx @@ -54,4 +54,4 @@ If you are migrating packages and setting up Cloudsmith for the first time, you - Setup your [service accounts](/accounts-and-teams/service-accounts). - Setup your [logs export to s3](/logs-and-observability/access-log-exports-to-s3). - If you are a distributor, you may want to set up [Entitlement tokens](/software-distribution/entitlement-tokens) to distribute to 3rd parties -- Setup [Custom Domains](/software-distribution/broadcasts-custom-domain), which allow you to present your brand and domain when distributing from Cloudsmith. +- Setup [Custom Domains](/workspaces/custom-domains), which allow you to present your brand and domain when using native tooling or pulling packages from your Cloudsmith Workspace. diff --git a/src/content/policy-management/license-policy.mdx b/src/content/policy-management/license-policy.mdx index a49da209..5fdb0961 100644 --- a/src/content/policy-management/license-policy.mdx +++ b/src/content/policy-management/license-policy.mdx @@ -42,7 +42,7 @@ Cloudsmith will automatically match licenses for the following package formats: |[NuGet](/formats/nuget-feed)| ✅ | |[Python](/formats/python-repository)| ✅ | |[RPM](/formats/redhat-repository)| ✅ | -|[Ruby](/formats/ruby-repository) (Beta)| ✅ | +|[Ruby](/formats/ruby-repository)| ✅ | |[Terraform](/formats/terraform-modules-repository)| ❌ | |[Vagrant](/formats/vagrant-repository)| ❌ | diff --git a/src/content/policy-management/vulnerability-policy.mdx b/src/content/policy-management/vulnerability-policy.mdx index 8ef1288d..bbbaff4d 100644 --- a/src/content/policy-management/vulnerability-policy.mdx +++ b/src/content/policy-management/vulnerability-policy.mdx @@ -46,7 +46,7 @@ Vulnerability scanning and vulnerability policies are supported for the followin |[P2](/formats/p2-repository)|❌| |[Python](/formats/python-repository)|✅| |[RPM](/formats/redhat-repository)|❌| -|[Ruby](/formats/ruby-repository) (Beta)|✅| +|[Ruby](/formats/ruby-repository)|✅| |[Swift](/formats/swift-registry)|✅| |[Terraform](/formats/terraform-modules-repository)|❌| |[Vagrant](/formats/vagrant-repository)|❌| diff --git a/src/content/repositories/index.mdx b/src/content/repositories/index.mdx index c18e6f40..2acb0f1c 100644 --- a/src/content/repositories/index.mdx +++ b/src/content/repositories/index.mdx @@ -31,7 +31,7 @@ Use the top menu items to access the controls available: |[Signing Keys](/supply-chain-security/signing-keys)|GPG and RSA signing keys| |[Main Settings](/repositories/repository-settings)|Change the Name, Permissions, Visibility and if needed, delete the repository.| |[Access Controls](/repositories/repository-privileges#access-control)|Manage teams and user access to this repository| -|[Custom Domains](/software-distribution/broadcasts-custom-domain)|Setup domain configuration to support your named endpoint. [Contact us](https://cloudsmith.com/company/contact-us) for help!| +|[Custom Domains](/workspaces/custom-domains)|Setup domain configuration to support your named endpoint. [Contact us](https://cloudsmith.com/company/contact-us) for help!| |[Entitlement Tokens](/software-distribution/entitlement-tokens)|Manage entitlement tokens for external, read-only access to private repositories.| |[EULA Enforcement](/software-distribution/eula) | Manage End-User License Agreement enforcement| |[Geo/IP Rules](/policy-management/geoip-rules) | Manage download permissions by IP and/or Geographic area| diff --git a/src/content/repositories/upstreams/index.mdx b/src/content/repositories/upstreams/index.mdx index 0d72bf13..0dcc5ddc 100644 --- a/src/content/repositories/upstreams/index.mdx +++ b/src/content/repositories/upstreams/index.mdx @@ -114,8 +114,8 @@ You can create upstreams without leaving your terminal. For example, you can cre cloudsmith upstream deb create WORKSPACE/REPOSITORY ./upstream_config.json ``` -Please, refer to the [Config Reference](#supported-formats) column in the supported formats table to review fields available for each of the supported formats. - +This command will return the details about your new configured upstream. Please, refer to the [Config Reference](#supported-formats) column in the supported formats table to review fields available for each of the supported formats. + ### Using the manual configuration Click the "+ Add Upstream Proxy" button, and then select the format you want to create an upstream for: diff --git a/src/content/software-distribution/broadcasts/index.mdx b/src/content/software-distribution/broadcasts/index.mdx index 008f3e47..e08f1a7b 100644 --- a/src/content/software-distribution/broadcasts/index.mdx +++ b/src/content/software-distribution/broadcasts/index.mdx @@ -37,7 +37,7 @@ You can continue distributing artifacts within private repositories using entitl ## Broadcasts user-facing pages -- **Broadcasts Overview**: displays all repositories broadcasting artifacts inside of your organization. A [custom domain can be configured](./broadcasts-custom-domain) for it. +- **Broadcasts Overview**: displays all repositories broadcasting artifacts inside of your organization. A [custom domain can be configured]() for it. - **Broadcast**: displays all the artifacts available within a repository broadcast. Each of the repositories in a Workspace have their own Broadcast user facing page. - **Package**: displays different levels of information for your packages: - **Overview**: this page include instructions for the installation or configuration required for the format of the package, including package metadata and the README. @@ -61,7 +61,7 @@ This section contains three main areas: - Popular Broadcasts - Popular Packages - Workspace total public and OSS broadcasts count. -- **Broadcasts**: Shows a complete list of all your repositories that are being currently broadcasted. Clicking on a specific repository will show you analytics scoped just to that broadcast. +- **Broadcasts**: Shows a complete list of all your repositories that are being broadcasted. Clicking on a specific repository will show you analytics scoped just to that broadcast. - **Theme**: Allows you to [customize the look and feel of your broadcast](./broadcasts-customization) pages. ### Creating a New Broadcast @@ -112,10 +112,10 @@ To view analytics specific to a given Broadcast, select that Broadcast. The Over ### Broadcast custom domains -Broadcast analytics are only available for Ultra customers. +Broadcast custom domains are only available for Ultra customers. -Broadcasts can be displayed on a custom domain. To do so, please contact Cloudsmith via support. You will need to provide your chosen custom domain, and Cloudsmith will provide you a `CNAME` to add to this domain. Cloudsmith will then let you know when your domain is published and available to use. To learn more about it, visit the [Custom domains](./broadcasts-custom-domain) documentation. +Broadcasts can be displayed on a custom domain. To do so, please contact Cloudsmith via support. You will need to provide your chosen custom domain, and Cloudsmith will provide you a `CNAME` to add to this domain. Cloudsmith will then let you know when your domain is published and available to use. To learn more about it, visit the [Custom domains]() documentation. It is important to understand the two types of custom addresses associated with broadcasts and your repositories, as they serve different purposes. @@ -127,5 +127,5 @@ It is important to understand the two types of custom addresses associated with 2. **Workspace Custom Domains**: this is the address used in the command line or build scripts to pull packages with native tooling (e.g., Docker, npm, Maven): - Cloudsmith has long supported custom domains for package downloads (e.g., using `npm.cloudsmith.com` instead of the default cloudsmith domain). - The installation instructions provided on your broadcast pages will automatically use any custom domain you have configured for your workspace. This ensures that your users see your branded domain in the setup instructions they copy. - - To learn how to configure it, visit the [Workspace Settings](/workspaces/workspace-settings#custom-domains) documentation. + - To learn how to configure it, visit the [Workspace Settings](/workspaces/custom-domains) documentation. \ No newline at end of file diff --git a/src/content/software-distribution/index.mdx b/src/content/software-distribution/index.mdx index 4d5f2e76..7cf8d474 100644 --- a/src/content/software-distribution/index.mdx +++ b/src/content/software-distribution/index.mdx @@ -16,7 +16,7 @@ Cloudsmith for distribution: - [Broadcasts](/software-distribution/broadcasts) - [Entitlement Tokens](/software-distribution/entitlement-tokens) - [EULA Enforcement](/software-distribution/eula) -- [Custom Domains](/software-distribution/broadcasts-custom-domain) +- [Custom Domains](/workspaces/custom-domains) - Connect to payment providers via our [Zapier Connector](/integrations/integrating-with-zapier) ## Link Software Licenses to Entitlement Tokens diff --git a/src/content/supply-chain-security/continuous-security.mdx b/src/content/supply-chain-security/continuous-security.mdx index 336e56d0..6093d69e 100644 --- a/src/content/supply-chain-security/continuous-security.mdx +++ b/src/content/supply-chain-security/continuous-security.mdx @@ -4,7 +4,7 @@ import { Note } from '@/components' Continuous Security is a feature that provides an hourly feed of vulnerability data from multiple sources (see [refresh intervals]() for each source). When new vulnerabilities are published, we check them against existing artifacts in your Cloudsmith repositories. This enables faster identification of affected artifacts compared to scheduled or on-demand [vulnerability scanning](./vulnerability-scanning). -📘 Continuous Security is currently in Early Access (EA) through Cloudsmith’s Enterprise Policy Management. +📘 Continuous Security is in Early Access (EA) through Cloudsmith’s Enterprise Policy Management. ## Vulnerability Scanning vs. Continuous Security @@ -33,4 +33,4 @@ Continuous Security uses the following data sources: #### Supported Formats -Continuous Security is available for [all package formats](./vulnerability-scanning) currently supported by Cloudsmith’s Vulnerability Scanning feature. \ No newline at end of file +Continuous Security is available for [all package formats](./vulnerability-scanning) supported by Cloudsmith’s Vulnerability Scanning feature. \ No newline at end of file diff --git a/src/content/support/operational-performance.mdx b/src/content/support/operational-performance.mdx index 41730ede..050cec45 100644 --- a/src/content/support/operational-performance.mdx +++ b/src/content/support/operational-performance.mdx @@ -13,7 +13,7 @@ Our uptime metrics (and incident/maintenance communications) are available via o ## Geographic Infrastructure -Cloudsmith serves customers all over the world, across all continents. Our architecture is CDN-driven, and our non-CDN infrastructure is currently stood up in the following locations: +Cloudsmith serves customers all over the world, across all continents. Our architecture is CDN-driven, and our non-CDN infrastructure is stood up in the following locations: - Oregon, USA - N. Virginia, USA @@ -21,7 +21,7 @@ Cloudsmith serves customers all over the world, across all continents. Our archi - Dublin, Ireland (primary) - Sydney, Australia -We currently provide eight geographic storage locations that you can choose from when creating a repository in the following locations: +We provide eight geographic storage locations that you can choose from when creating a repository in the following locations: - Dublin, Ireland - Frankfurt, Germany diff --git a/src/content/software-distribution/broadcasts/broadcasts-custom-domain.mdx b/src/content/workspaces/custom-domains.mdx similarity index 89% rename from src/content/software-distribution/broadcasts/broadcasts-custom-domain.mdx rename to src/content/workspaces/custom-domains.mdx index a094ff02..bea2ed2e 100644 --- a/src/content/software-distribution/broadcasts/broadcasts-custom-domain.mdx +++ b/src/content/workspaces/custom-domains.mdx @@ -1,18 +1,17 @@ ---- -title: Custom Domains ---- # Custom domains -## About custom domains - Your company brand and trust are important to you and your customers, and with custom domains you can present your own company as the endpoint for distribution, APIs, and configuration (e.g. retrieving GPG keys). This is a great idea if you are: - A vendor that is selling and distributing software to your customers - A security-conscious DevOps team that is looking to control the source endpoint for artifacts -Custom domains are available with our Velocity and Ultra plans. We strongly recommend - and may require - custom domains for any customer with significant Cloudsmith package delivery traffic. + +If you are looking for Broadcast URL customization, please refer to the [Broadcasts](/software-delivery/broadcasts) documentation or [contact us](https://cloudsmith.com/company/contact-us). + + +Custom domains are available with our Ultra and Enterprise plans. We strongly recommend - and may require - custom domains for any customer with significant Cloudsmith package delivery traffic. ## Configuration Options @@ -68,23 +67,23 @@ To configure a custom domain within Cloudsmith, we require you to provide: Example request: +``` Domain: `docker.mycompany.com` (Docker) Account wide No redirect +``` Once created within Cloudsmith, you will need to create two DNS CNAME entries for each domain you wish to configure within your DNS provider. -*** - -#### Step 1: +### Step 1 - The process begins when you [contact us](https://cloudsmith.com/company/contact-us) via support with a list of custom domains you would like to configure. We will review and start processing your request, ensuring your plan is eligible to make use of the custom domain feature. -#### Step 2: +### Step 2 - After confirming the domains you need, a member of the team will review and configure them within Cloudsmith. Once set, the DNS CNAME entries will be visible in your account (in the "Custom Domains" section of any repository) -#### Step 3: +### Step 3 - You then add the DNS CNAME entries to your domain DNS records with your DNS provider. The first CNAME is for authorizing the domain, and the second is to make it visible and accessible to your users. - Once you have configured the CNAME's, you will then be able to make use of your custom domains. diff --git a/src/content/workspaces/workspace-settings.mdx b/src/content/workspaces/workspace-settings.mdx index b255e6e9..18deae68 100644 --- a/src/content/workspaces/workspace-settings.mdx +++ b/src/content/workspaces/workspace-settings.mdx @@ -9,7 +9,7 @@ import img_teams from './images/workspaces/5a7210ce89a4ad40fc961f1500a76a7fa469f import img_custom_domains from './images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png' import img_usage_limits from './images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png' -# Workspaces +# Workspace Settings To configure the settings for the Workspace, just click on the Settings menu item: @@ -56,8 +56,8 @@ Workspace Accounts and Teams settings is used to control the default visibility -- Hidden - Non-Members are not able to view the team -- Visible - Non-Members are able to view the team +- **Hidden**: Non-Members are not able to view the team. +- **Visible**: Non-Members are able to view the team. ### Authentication diff --git a/src/snippets/integrationsGroupSnippet.mdx b/src/snippets/integrationsGroupSnippet.mdx index ee998505..8202d025 100644 --- a/src/snippets/integrationsGroupSnippet.mdx +++ b/src/snippets/integrationsGroupSnippet.mdx @@ -109,7 +109,6 @@ Cloudsmith supports the following integrations:
    Octopus Deploy
    -3=======
    AWS CodeBuild From e50c3b10da9e429fb6599bee806a2798e50c5c9c Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 15 Jul 2025 15:29:51 +0200 Subject: [PATCH 073/127] fix import --- src/content/support/operational-performance.mdx | 1 - src/content/workspaces/custom-domains.mdx | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/support/operational-performance.mdx b/src/content/support/operational-performance.mdx index 050cec45..08dc5fe4 100644 --- a/src/content/support/operational-performance.mdx +++ b/src/content/support/operational-performance.mdx @@ -6,7 +6,6 @@ For customers on our Ultra plan, it's 99.9%, although our internal Service Level [View Service Level Agreement](https://help.cloudsmith.io/docs/service-level-agreement-sla) - ## High Availability Our uptime metrics (and incident/maintenance communications) are available via our [status page](https://status.cloudsmith.io) which publishes to [@iscloudsmithup](https://twitter.com/iscloudsmithup) twitter account. diff --git a/src/content/workspaces/custom-domains.mdx b/src/content/workspaces/custom-domains.mdx index bea2ed2e..4be0de19 100644 --- a/src/content/workspaces/custom-domains.mdx +++ b/src/content/workspaces/custom-domains.mdx @@ -1,3 +1,4 @@ +import { Note, BlockImage } from '@/components' # Custom domains From c8d49e8dd4337a45da6ed37b48cf046afaf5a451 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 15 Jul 2025 17:23:46 +0200 Subject: [PATCH 074/127] final check swift --- src/content/formats/swift-registry.mdx | 97 ++++++++++++++------------ 1 file changed, 54 insertions(+), 43 deletions(-) diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index 640a977f..59cad8ef 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -122,34 +122,32 @@ Navigate to the Swift project directory that contains the `Package.swift` file f swift package-registry publish SCOPE.PACKAGE_NAME VERSION ``` - -- replace `SCOPE` below with the scope you want to use to publish the package with. In Swift, scope's are namespaces for package names. You can publish any scope to your Cloudsmith repository. -- Package scopes are case-insensitive (for example, mona ≍ MONA). -- Version numbers should follow semantic versioning + +In Swift, scope are namespaces for package names. You can publish any scope to your Cloudsmith repository. Package scopes are case-insensitive (for example, mona ≍ MONA). + +**Version numbers** should follow semantic versioning. #### Upload Verification After publishing, You should receive a confirmation message similar to the following: -```shell -PACKAGE_NAME version VERSION was successfully published to and is available at +``` +SCOPE.PACKAGE_NAME version VERSION was successfully published to https://swift.cloudsmith.io/WORKSPACE/REPOSITORY and is available at 'https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/SCOPE/PACKAGE_NAME/VERSION' ``` -You can verify that your package is available in your Cloudsmith repository by navigating to the repository URL in your browser or using Cloudsmith's CLI tools. +You can verify that your package is available in your Cloudsmith repository by navigating to the repository URL in your browser or using the Cloudsmith CLI. ### Alternative example: from source code -In the next steps we cover how to package an existing project from GitHub and upload it to your Cloudsmith repository. - -For this example, we'll be using **Alamofire**: a popular HTTP networking library written in Swift. +In the next steps we cover how to package an existing project from GitHub using swift, and then upload it to a Cloudsmith repository. For this example, we'll be using **Alamofire**: a popular HTTP networking library written in Swift. Download its source code and checkout version `5.9.1`: ```bash -cd .. #get back to the previous root dir +cd .. # get back to the previous dir git clone https://github.com/Alamofire/Alamofire.git --depth 1 cd Alamofire git fetch --depth 1 origin tag 5.9.1 @@ -178,11 +176,11 @@ Create this file in the root of the `Alamofire` directory and paste in the follo } ``` -You are ready to publish the package to your Cloudsmith Registry. Follow the previous steps to configure and login to your registry (replace `WORKSPACE` and `REPOSITORY` with your own): +You are ready to publish the package to your Cloudsmith Registry. Follow the previous steps to configure and login to your registry (no need to run it again if you executed the previous example) and replace `WORKSPACE` and `REPOSITORY` with your own: ```bash -swift package-registry set "https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/" -swift package-registry login https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/ --username USERNAME --password API-TOKEN +# swift package-registry set "https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/" +# swift package-registry login https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/ --username USERNAME --password API-TOKEN swift package-registry publish alamofire.alamofire 5.9.1 --metadata-path ./package-metadata.json ``` @@ -190,32 +188,48 @@ swift package-registry publish alamofire.alamofire 5.9.1 --metadata-path ./packa ## Upload via the Cloudsmith CLI -For full details of how to install and setup the Cloudsmith CLI, see [Command Line Interface](/developer-tools/cli). + +For full details of how to install and setup the Cloudsmith CLI, see [Command Line Interface](/developer-tools/cli) documentation: +- [Installation](/developer-tools/cli#installation). +- [Authentication](/developer-tools/cli#getting-your-api-key). + -To upload via the Cloudsmith CLI / API, you'll need to generate your package first. We can use the first example to test it: +To upload via the Cloudsmith CLI (or via API), you'll need to generate your package first: ```shell -cd ../swift_sample -swift package archive-source +swift package archive-source ``` -This will generate a zip file like`your-package.zip` that you can upload. - -The command to upload a swift package via the Cloudsmith CLI is: +This will generate a zip file named `Alamofire.zip` that you can upload. Use the previous command to upload your new swift package via the Cloudsmith CLI and rememver to use a different version number (for example `5.9.2`): ```shell cloudsmith push swift WORKSPACE/REPOSITORY PACKAGE_NAME.zip --name PACKAGE_NAME --version VERSION --scope SCOPE ``` +The next output will be displayed: + +```text +Checking swift package upload parameters ... OK +Checking Alamofire.zip file upload parameters ... OK +Requesting file upload for Alamofire.zip ... OK +Uploading Alamofire.zip: [####################################] 100% +Creating a new swift package ... OK +Created: demo-docs/awesome-repo/alamofirezip-z54v (DIElCIDoFtvd) + +Synchronising alamofirezip-z54v: [####################################] 100% Completed / Fully Synchronised + +Package synchronised successfully in 51.71964 second(s)! +``` + ## Upload via Cloudsmith web app -Please see [Upload a Package](/artifact-management/package-upload#upload-via-website-ui) for details of how to upload via the Cloudsmith web app. +Please see [Upload a Package](/artifact-management/package-upload#upload-via-website-ui) for details of how to upload via the Cloudsmith web app. Generate your package first using `swift package archive-source`. ## Download / Install a Package -Now, let's see how to use the package from your registry in a new project. +Now, let's see how to use the package from your registry in a new project: -Create a new directory for a sample project and `cd` into it. +1. Create a new directory for a sample project and `cd` into it. ```bash cd .. @@ -223,20 +237,15 @@ mkdir MySwiftApp && cd MySwiftApp swift package init --type executable ``` -### Configure the Registry for the New Project +2. **Configure the Registry for the New Project**: following the steps described above to configure Swift to use your Cloudsmith registry URL and then login to it. -Just as before, set the registry URL and log in. - -```bash -swift package-registry set "https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/" -swift package-registry login "https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/" --username USER --password API_TOKEN -``` - -### Add your project dependencies +3. **Add your project dependencies**: + Package dependencies are declared in the `Package.swift` file. Edit the `Package.swift` file in your application project folder to update the package dependencies to be used by your project: 1. In the dependencies section of `Package.swift`, add the package you want to use by adding its package identifier. The package identifier consists of the scope and package name separated by a period. See the code snippet following a later step for an example. 2. In the targets section of `Package.swift`, add the targets that will need to use the dependency. + The following is an example showing configured dependencies and targets sections in a `Package.swift` file to include Alamofire as a dependency: @@ -266,19 +275,21 @@ After this, use the `--replace-scm-with-registry` flag to prioritize fetching fr swift package --replace-scm-with-registry resolve ``` - -📘 Using `id:` in your `Package.swift` is powerful. When you run `resolve` with the flag, Swift Package Manager will first try to find a matching version in your configured registry. If it fails, it can fall back to the Git repository specified in the `package-metadata.json` file. This provides a robust, hybrid approach. - - You will see output indicating that Swift is downloading `alamofire.alamofire` directly from your Cloudsmith registry. You should see the following printed out when resolving dependancies -```shell -Fetching -Computing version for -Fetched () (9Wo4^L< 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


    l>&{-H6{WM{xsGg9$UOUq|B84sLr&=RALU)o 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
    {{P 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ⅅu%v`zWXS5dH04jeC*u{@2n0l7J*uG6KpoqsCz=D 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%0DQo+a(alYZ}RO{`s+$xy1+K zO08DB3(J#CHzQa*p)hsDwM}NsKae}#FzVi)TvNEFdmz$Jl5h7ps0QJ5)RsddB+SBM zaM<4<7Wr-C2L8-qyD2xk$()X<;%)X?LF#m%&}PW~Sw61*)jp6!cxgp4n)}Mnw?n<4 zqsLg;9oTV_!a7MS08oA(>)jJoMiYw3^eZ*9ExFqa;Hn%O2sWAS81Qj;dKH&bj7ASk zrE;yPiL73$-idmQ zs?CIlrzLckN~LX8Tfg{&x^*j2{{|zcq~IWB%5jz~{Tr|GrbN*wv+jmO6P0}3!CNtp zLVjpeVRpEx!>ptkJ|r~>pWgHvHOTkmh zN0y8~ujY-lntN%cQrUl^Wc4-9L@N;phP9+jlnJs_r?jqV#MJ0r48E;~5OCzj`40#e zs@KzsCwI&TVyZLe-h6hk6A4@&BX~J`c+%zQNbvLkfPdEY<(qW;Fyx>8ERoVdg?*aM zVL#t6ga(LWO``GVwnghEnH;Vj>aCO2~bhkm7Ds9=7TIIHLr z;QfDX{Z_BakC7g&woZ0#ObZ9yk<7BV$3e}a=_B>t=5axk=7xOe!>D72a<_EjygOF~ ziAL>Jy_SW)FJKfk^*daJ5`l^ek3aBh(@G45Ct7M2I99WjZcP{rHb<(xvU&VFkl>Vf zPTwVOYEy2GnWxlwS!8l_nk|pF#ivgyKa>4z=A&J`aq#}h9a#<_os-p*7vrNDx&6|k z*i6#0#a&inQWkP2%H0dP+_c9%awPfeZ0Vt*Bpi#@`mX2W;>WIJGa|J;r6g`}$bukn z`^CAI8=Q|abmR;0!A{FVK!KXg^014o%PgO81S;xU%NNoXD)M5voVYztPl#^C>u1N( z0{owTDy|)^3-B4gsNb>G9D`M1Wwl?OCDd0Z9BZSbSvA-aM^z_=n%lnEszx3Ka#&Dj z&-1(Czz+DkUqHXKVyw+0vPis8%zeX1~Z2H^Ir=)yJu=+wT!Uzxu6apEsEb(IrZr^B? z%d~7d9ZA;mjn62jJhCJ26=K6O!nfmF{8K^CyZnF?9#fhs&QmNeU&$oti>Sl`$Bdl0 zf$6NyGV9>##N=cWiZE?S;Gt%p#(NH;NrN9Z;znL)=)F-Ks1|0^lAUSqr6yj;ooi|} zIuNa4p|v=Zm*upzQEEuQ<8#B4IJsIF7o zn8KO!Q|b#g)7&`vkhVth8t{l+QoDB)!OcMp`CfAXtF=OmT1PPAPNeJU4kvHCGDPKt z@-1Ep%26t=IHGu=&=L^=lf`YYjVsN{GC<^wsCDmm#$gcW%`R;cB!qN3VJch5x}q%@3-*Bt8)0(!z<-z zMuknNS{b(|Ok!^QU+8>hyr2ZIGk_6P%KV%>JCBBOnB|9SGdUsA2ksa)FTX6iVvKf}sIM?B)ApnT$JS*|?GZ zVysD`wF(4N0xNt4Wk*8soU%vrswNy-IgjKF18eFH+)jL_H4Q&Gc-*SE)p^CFtE|aH zTN;`(rbekK4$YzKnXgmKBkAa6MdWHc)_s^Im-jPmR3`S&A<*abE1U5kRhuWAx_KRy zB>*7H!tYumHu%Xr?VCOK9&q#{|usOwf zG>eTuic+9D2^0AUfrl^O3uJ2de;8!DT#3A~MzQyOR(24e;qzoT=#}RE%#j)-j%O`k zV`(JA=VgUF3j(-*IUi9`8+WqJhzkWD7eL;CaMPJ;J$ zzbVW{56KpP?R?X{(qT?sE^zg#4tL89^8GG?(_!W+pjWa&E9XI2e~e}yH95~Z45ubj zFFuK3ywlhI^;8`a(f)1~D`b|8FDwz)%mD{Xgp}V$|H)kAi`HeQR@mlN!;LOCYOM*# z{A=^#W|8cA=w_ad!H5O~gCpVSNG+E?C%DqAG`qgBu8pVgcKpNHodYC~E|5al{drFc zt#E&Bs-5wz?XH_b!RjXSx9-(C$MxskH9(E9XpXW_SCYXe2?Xf;C@VE22}i);3WO|1 z%ki}BY1pvHx*+9&CNZzK1p4I8$Ld3}B!q2DBoJeRsxvaJ=q?j~kP+KYXJ@cvpuD~> z8rwuR?&$VXx!bPUw+4|vuL|U-_fO>63Z6~W;2YXE_)wATtidCIvkmoUZJRgPW!h9> zqPv!o2^p@u_0*n%!9LvE`TLPEywLYuN3=*Spw!0R1H>9XG|*q`ZTJ#1fwHE&K%FMd zNS7&JE9V+eO+Xj;zcx*`PC6|!sjpgi^gOoa?sll|TtsY~M^#PFig~u`&B&wX@)|zc zRQ}N_i}!4F(&)XI%%2@0O*2lOGiV0B1yL>+x1gNCrRN`qdPku*5nc^+;#z%uRu?P7 z>^P&*lTZ7D!!p@LAK{1oE^a{8H6`C}>gGsgso_!hh<8J5V+ks1VPG*Dc_uXg6w%5% z<{wafGp(yqf8ryS`yBM}>j|Adf8LeScyPs0xZ}txfQO{oXFB_>SuYglN7T?K+?Glr z9;u|7KQd2m`f>%krbmQ28YHGHo!o~%FPp|37?mphsVEGq%OU>bWSr)ix~A^-=V3yF z%7;_zd5+TnIk6F~>S&e)%O3kVZ^S)11$ailI3!V@F_Eg`GO+^P`T!-E^W(m=ffwrbXC$)^dOIbav!Tq zadQX1Y?PF_a7*U8eF+h(uX+~@9IgwQ0p)0r?{rlb<&Dmm5?B&MyTtqpD5zg-)Brq+ zgXg{5C#ybVyz+B-V^*fx7_29{nn-@QrTEZYG;sarPQDGq(SG+AYcQ{jA=B#m^VKF( z92)$6;E-1HVBx;i_3!soY90>q&fjh1yiS9=n$2u%LdcFdbFo#eZ%a{+emSNeX~daH z*O69lRN70mYVTQkKZLHels7P*Ecpis|Cqtqn>@g!s|IZV;moq^CXd-3AcDEZ4nJA+ zOZ3ET=A|#DKZjhu!IOJp5xQ)mRR|nEQyN&z3kzSw#_4+ww8$@~jx=7GxX~}fU;^$a zf0BVBE}?7jb@2eeUq4C9UcCO9jI}a-!O>blGg`d^my3&d1QgW*i%X1tq-XByCopu% z)XBzDh)arBOjZ!)O-f2Um-VQZF}}MVk-E5{v|`1d$p1`Mn_^IC`2i%~C) zBxvEK9>B{E5_+Zsn*P2q7Tnk9>>&q)u9|*W1@AO82PazFuX%FCgBeXA3UaO3${CwV z(-}A#MO?&v3D%!5O1%9BZbKWFn82w*^o%C_zQnz*Phom+H(eKS7~ZLZ4y}44VS>rF z{tOSb#EN1rHLt2N?|u{OxOXu&{KjNZ(-&7T?P&+UMPT!3yYTOak4D;pDHy*rrQ>EP zn-VfYl5+TLZ+$)vc(>t2yWb@hm!8&bt(U%O;?~*mJlisdVq!da_A{3-;IWMC_zaxK zmECIs4-$xK#ivBN;sq8Z*%n}(k(L|e%LgWhbr~-0J_IUM6;PqkD|f^@i3w%m{JH3< zdN7QRarK(|XcH5@uT?>lxAt3@nQbqgQ64%nJ+FJvl+n-MG;eyPLzU6_qh$c$hPz1P zCm+5M$#3Wr%YL;gJ`oe~e8taq!ug2KV!{mHcLjDT#V)G`wYZo$OdY_tWL>kbnwk<- z6s*1HCrc=+rzMZDKi7FDc8F2aAE704T5hUW(kucAlumwqHLrN;7tN4-aCJ}oz0y$w z{vjr)w2ocZUZQevfJI+lhv9g_q}$ca;9o*{l(o)yYvPgW6O=UkyGm-xaVcvx0e^#g z1GPO05_Eg0^Fum^M$~mEB6?Rxr$-cU0Ka*#LGMqi`bTu-#M0tORVqiv5%O}$nIu7JPgCIsKJaO?M#Sh!E7Z(6_Uw1ZsSYO_ zbYyuqKJoNSj zpFE)ja)`Y5=+!0Dx%^CUY4vrwp$?kL!1<|q{xlh!0h}RZ)3FbZS~w7RVC@c)Nog)k z2s%a9^|gQcg%beWa)|wPsUgWIusq``79{S!2HMwHV7H~^Or^q0kMFX?(1;~J|kr{uL{iI_7DvQ~#U>YJF zHHP%6ysBYA7|z&(gH9^@$3?zT{C0hJFQTl)C+dLr(0uc*fZGnHW*v^_7P&lrU3;8Ce{jdueL|VMzsRKTGbQC zQ@i9=n1Ctu;4A8D4!HHWhBTC+O4)n`uwJAZz=!2Tn7OnrSDaMkiZ0TmgObwmoicky zd?Qdb3cxrV*ve=1stYafmk<8?1y?ec_TtT)1KSb3UbyGQLh{gmkdp8#05a73#;Jy* z`q8>}S(v5>Wq3h4(k=wZL3T7iu$P*QKtnb0Zi6!_P3!~pyxD>N3a0W1Gb$mx|Ayoyvri33Ie=9z`rWe$g196`($#$*`0O@98Co9d#x_k)PdAv+U9!M z_DroW=0*+(%Ap(}@i>=d(|>`j{#~;F z`2|!BkVD5~aDyihRZ5umW7U3ol^C8ZIM3k4Uq#78VX_;VWvNhv&)B~FS`S9s-@2mP zpj>Vu*g^>Plx^);_~k{qVgwtB0zll!3BT-Z?qZ;Jp^XhJ6?*G zf;A{ZkV+Pyo(dp2G}ESTho%n)Q4q;kfi+=lAYDkKuk;+yj{~3S5%3N2syW}Wf4h(V zaZzZ1eh;J^xV|7CsnY)^nl?DM0y2J9afDTp=31lnBom83fb6+n|5jrhore1_aCm9D!Wo zdJaK8eX;ope+RfwA*d(!$sz*t(bkU&0JOnF86z-IKdoH^P>or+=$mfiTNE*O-G1*q z5IaIxD|jv*AhGGm0FrqfRr~0#jM_#~tO&uSnw=ZID2KG&vCIQKVTk_LygU9d8tgcd ziqDV&tnX{bdVi#71Te;o{S8E7Ch%AjUz=ZQsPx#&Cu^_Ebn7n+_DWf(bxmX|<)x*4 z>Je1l+$}&JsDopchjgz5BX)4Q%W^9{2>{nd8-&5@_`x1_U8fIce zfyZZ+{f}a~e+Ezd+v~qIJ~3GA1B}7*UZ5CzBRMaGKBV~&M>~iaFdbJlP6u=>6c`w; zc=$;lp$NfXU-lmNkw*17KI7yO(Anm)-|?(-v=E|tG*)(8&-sAH+F>(z+@a6ks&y?) z>Z;ofGvM%r2_1j+p-AQ)Mcn(>Z^5#Wnx!^?g-f z!qiE2xBW$ z42DD`6F;YpXocpX#jt9BKC}JDp+S_umpe9t_D_)Oo6O)ko6;rL#{y68&H7((v;ZPC z#Scib_s!2LUiwIY*jY-2y!4$iL;(*=+S!Ya$3+uCXY^lxOLg8sfB z6?hAUt^<6Dzwn&?_L*9i5Fbt?J8ew$YuE&3A{gEZuA)o?IY&OId4`9f0Bp~zst6;P zK_*s08+dBSw`0M8E5mF{{?j7tN(AWO+J7`$(M3a6Wk57;< z8{A0T%_o4p9D*3cFt6_n*y<6S)LU5x=+%o&FmvBv5+#~?7~&z!)vag9cA)U=Hh8O& zhrx07HbA%*Hq1sU1OgT(l(RcAX$a$@AxioBdqr(c;=iY; z0Gn+>p`1UM&~42&Ja|9H{1fk5yXq4H;E4lO+4G7K?h9K8E+h+EFp4^el6Gf-tHhp74UBW>!cEFH(~`WpMB3x z?LQmY|Ih1Biuehu?_Ubg+qEQ(v2Yp*wSMot)VuT{3!aJqq!yq50PV64uUslQUHfC4 z!^}N0PGyUIvU~2d|91EN`-?x+@dpj!htbIu6M(GHbRvXx0m?rxIb*{7N&}U`!L>w} zN31;Rsn*gZaey2W!>PT}3XMOuLUo0?$fN#(W%?iU4OP3BT%7;_IxgiL+92qZdHLnd zG#QCx8p25B6f!}R{VbzAes3*{*?E#ts1skZ{S2>co$IL%UmEA1*3j#b7`-Sq zs0f|C&dT`ceC!WDNj2!YgHf;(PWoP&jD=ZWzgvSI7Lt*Jnph8<>fgSkz|fL@zf`ok z0k4lro~E+=WmN-+Z>=}pssmVOl%5UwjF>Pobnq9;$dtd8!5_czTSX?;(eV5H*b>zp z+FjNk0RD`O@|+_A$TmY2<%E~{}n&SsH!k-xJ|KY6+Jzn8LghE)z zEBvsLV09C#Ltq_?_3@N-dtbU;&<~Z^A2*p|d;NrHLVz^AEO)kgTAR&C&$%FX%g2sr zdq2%A%2R# zxXfd^+h1WkowtX`7k>DD5Mq_F5Q49q@7ZLJ#tDd+Y+bsT{v_o=e{qbRzqj!%-0B62p zU47R_h7iy-zGng3!Bb4IU~6PBcJ{%z2>ilij6UVLN=uzpdDHoT@#t~o$ss)X?o2dz zz{U6vRsR1`WdF1M|M9U;{Fe?XvF6i(ei>_EsVh?m;kUr$Wa=(HuoNc34GL*ph~xWn zL%1OjoN$2^41}W6u@3=79g#K3_TOxRzpHT{LVTc`iUQ+xw;hh45ov3@6x-t1GMA5F zH*4V{b{$9{VdLjBei|aUcAEPt3>JG#0j?C&OeTUahPV^`7dGhc0|Frig`YXZa4{=D z&$O*=nJU=>6+%2f+#Aw>=HWc0{LAwDXVLbds3ozWZXjdeD6Z!eTfF@|g-U|i?9pjiqX|h zC-spgPP`E9cW1#DT^EQ2U5p%sZ#tIqNcLe~I#G$N2c*lUfD+v6`CP?+f|Cjihl-ZU z{};Z}Keqc1Q9uP43akh3n4Q<`^foMZ+KG$h^Nirm^X)4{XR*OYu?roi z{lvb_HSwq@-l&a*>Tltg8)M}@U;i=b|4aA%hd*7%1JG%?G~-iK*bf$x%h^j@HY2^~ z?tKEDx4;--_fl92c)vcv5u)2KmMVp{zr8& z5nKwstT^A<;tznq8V{pUX{Z7K33NWp&sNjeQw`F)CJMq`5K~^d z^1e3nbN@Rfa63VP%j)X3Am8d!uvelv%c5P~u(3pjTKQ+-un3g?nbCuEcr~4GBG1Z# z&x5~VlRdjli?}-47O`S>75&(64uK-Y`9$lxL20f)6k*-YN7S!Z_PPS zPu2C3kz!^}*jfhKI#y)JD0A`~k9HJ#L$J%MS5pU~xrLdDfI0R<#dFhS){5Vr6iqG* z^FOIcIP`k&NLNx2u~>N=I2NJ%F7`kPDcpzCypWEhm>iT;a1VWX~r&_il_@JJKMYVq;XcakEnl3{4_ zU@Oc7jIM?Nbkz;`r%&mKb-?Z-`{U!$mnu5sqPbCA#mOi#_X?-g#bl2}TXWPA?UhiU zE3$9(=Gi?3-dcv(lHH1RGNJm{9R0q2K1bdK=WYSoduRX0L_e42uU_jORtAFLkH23z#`TqI=$lV1)aF z%!P#WOJy-}DC1bvdJchUk-xDfqgG&#zk>nNz3&+u=eKI+pLg=kXD@J;tg!RxvPSOw z8_%Xn3ryq$C{la1&;;#lYtjakg?m~Jw;o^2VkSlu!k^l`LNW~qO;1W(Y)N12UkC<$ zB`2R`mHDf8p>#clfUfJ<^cFMHK{5z5P zd4ouT(lF4`T*xBA4B0f62{aZ>!7!*!lOt00p)%#KWwCyi=0ee?ZSdnZAqB(2<0Hta zhKL3VYj6Vl(WU|K0q-)kidAAU{l}$0*KnVp+r&A;IZ}J^D5&*^C#eS;#rxlRP=2Jn zmHSw_SD9#dHTuNd(GEiDZq}9=D2h7CvDm+XLsWtOpUuPnxsM_sL_W`c3IY=C-~5aO zI_*RnTDV~I?OG>GKLL1%L8xk?wb;IB$;n)3%WC}VJP+J%Us&rz|GVRiV0KW@Cr3}u zOh^rv8{hZ(3z9YG2n{U#D1V~ersS+h-s`)wByj7^2OBUeb^0L3mWdywhSKkX0oKh^ zi)qUff5+=m^bn17@Aw~N8=vruHN=0ed)%N;7*Y6ir%Z-9G)d_i zd~twA*d*JiiIx#OFJNho?i~_A6mBg)vLuD^s-bZjhG1-vQx)RiREpN{Zg%e$OE|bq zn%t}=Z|lSq>DFy7VqO;KvPB@+x@gZp0U8O{^7?0fOv; z_eY0d27gU#Rf_HH5+j(JstABC-G51@zcjPBJZY!XY9J7|40WbQiOi~9gL7~jQWj#X zOXsjBR-}kRSsP%YyOlt%YI{kC<6nxlXy+)$oT1txBav0p$+e2JRO3#6Si+gGJBAIM_VX~VLIP*ABrkxkPEs4ts>CC;C)$;*8qC-9N* zCf3?qsOpZ9pwxDoBgf9xQRA(wWNCa3*;0MSn{lG&!>K z%NoK;sQ)>mz9rPF$PT^H9M0@4gpA3a^?&C*JDJCUX^hy)=VT^>(G2%|&a85loF;*L zSq%OVJT3LY7?`6Gm^kaXQB@;6c+WUKc+12y`!AU|Krp^E-*XW;s&)UmH>IRb|Jv2x zed*H-g&`pJu}RFNEni);=&tmdrG~H8?+69pl+A@SJW8!ROO|hjVBFecg@lj$en2IU z^0t1DpZc@s8;(v$xClR|_&ojT@3lo80iXkU|BQ71U!FNRrO%V~BXkIct;ocytqev^YA0AZiNqb>-D`_bhi6GKJrwnjU04`f;R;78wpLgy73#L9%BhG#7 z#p!2fFjDb&7x2HNO8R@-V1aQSlYT~A4GqF`c{8_!vKli^<)`D zKk_6}^=cVC5E%UgeFG2-Q=-EQF=G`I+4B%vPl;2m(%}Jbocbfr>i+S7eGF#1|21ex z!ai@!kKc5*H2vVX#<4!Y^8u>f(a4b$Zr40I8+^`qt*6Xqbm{-83H~(SOZ_&h`qTD} zYxOFi8cMEuYQ(=LvZr{WKsNgL=gzUIxzG(`U70Gq+@%5FHh6_d5GnokIzrZ({b+>O zZo7hJ-V_pV_M(Rwh>~sImPG1 z*`7rmMzAHjKNX~R*$(^O{XN0)h0Ju~mo=^Wz5~_2q;Y{+_Y(#HT4rN+lr_Nj2`W7+ zHm6?*WhnLaCVv&fq?Wy{C*v#RMlstLh&12RF#($?w@G`)*E}Z~g&4F48s8k7tt1D> zjc5DLZv}hR_Sz-C}eZ2-~n&@UtkVzYCdl%=0k)mUaxDK8To<;mM zlK@OmTIOfNb+ELXZBKPK9}llNx!AW#(Bfd*Lu5i&qh290vtfSlsVr#hF%*IIN%j3pcF!l8ld7<>E2}~ zLZytO(!-@*bYIm zUSu+0%%F_k;-AGB0y`xe=(TwsBPl$`e$avMhQW><^ZltqdzM>af%A5m)|rB4k!(*G zHn)&onEImTeeRy~Z-S0_mDM9h%A|_(H;h3<0muY73qh~!g;(TyjO?zX@8W>4JGDa1box>-d1CLIM%?i#z{)ESkc32 z7ii#5MP(r>#M}?xFYe7CAvrHnM1;o(Vj>dMlPGt^iwLn9p*A}J?7jG{AY1)j8w!Y| zTXHnZUlfawVA-E(=JVqz7{D42@xak@I~zRkz^4ul`qPev8ng?Vw&8V-*cZ^ygwS#2Kv;ZE0VKV+*HE9hpDLvJLL z(gQ}#WxZZej({I;+O;cAc&vnoDI976cuW!MSyk}$X!(7kU zld3zS>TEk|VJ%^#f5-ORnI24nzH*BDN%kmpB^FffYmS>ogGBdReGLbb2AVr|?%mY) z>uBDi>e&>8Va9^$)1Us*e={8sVGf$E+;iwW9MF*_?cI5zIIAhoYhanP-0OMyp?naQ zGW7M8OP}H~$!RmgYxumH(4%{O4|v=uo3eqY3ni#2ypmW!?Sm!*A-JB?S?Eb(WD0PU zn$;9Q`I0Nn-P0`5I~1mU8IgW9?7T({@I`s7$JSpC57frqJ>QhQ71uS|bC(382lF|K zKDlwjG4pekGIxw@Zf2ASEZLCDxfswby76T*91ho6_K|VrIqrPkQ>AF#>=r-35JWBz zZbMgCBMXX>VbU*`ZM7JBb#GPywWvw_M1-I!7(W z^>`8AbNqHu1dBsdVhjdBPfAB(qUW}-QXM;*Gz!}GL*jQ!3{xI*(MF=#*Y}OAuFnju zwM8VY61~j!it?LXT>7RMTW%E>9dGA=aw7=6v}faI%fmCGDa8}7?m>SXZqKf8HrI}` z`S!NXMKH)4k5RpK6Ub^(8w!tqDAOn%1npCfOzQBrEsSNVjMebQ@HAdiijRYAdh1cg zwoBKCFm>_6k~Xmx*Xe5%DiI;QzXx0oq`G32^Q;jM?15$|Y=QhTgDVMGR7A)J=otU#n zer4(4X2yf=d&3_+t|NSx{89yazVE+|6^E$n{ygLwc@dASykF@^NVMRjL{zKXC{m_* zJAG4#$Xzg*;W{{aVQer}MqGe=$ znbG@yb*blnD0Kn-2j~K1L{q6Tm>+zXsq6a=-i&>IgW(5^O(E9|-awvV(QGVu!5oX3 zj_kg;w@DInF_&42)6jl<_(Gi=U0tFHf680Sy-Ga7w57}1M3Kl_Ewjnz*5bBUBid^- z^0KG~6CH19fRYxx93W7urko9Jvefn8jf(!mfZNVjx>g@NX1|P=itL(wcE2}uB1}Gu zzJO#XaN)3ftxjJ?>plP|^waTp4whPkRfd_e-eq-8 ln&(E!l}M`a5rd##^qC0!d#S@$!h%8POvE*{R4^#cQyb3 literal 0 HcmV?d00001 diff --git a/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx b/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx index 14d6bf5b..e90c8a83 100644 --- a/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx +++ b/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx @@ -1,8 +1,10 @@ -import { BlockImage } from '@/components' +import { BlockImage, Note } from '@/components' + import imgdcf4d99_Group_2551 from './images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png' +import oidc_form from './images/oidc_form.png'; -# Setup GitHub Actions to authenticate to Cloudsmith using OIDC" +# Setup GitHub Actions to authenticate to Cloudsmith using OIDC Our workflow using GitHub Actions and Cloudsmith with OIDC will push a package to Cloudsmith from Github Actions using OIDC to authenticate. @@ -12,105 +14,111 @@ The following diagram gives an overview of how GitHub's OIDC provider integrates -**Prerequisite**: Cloudsmith creates an OIDC trust relationship between your service account and your GitHub workflows that need access to Cloudsmith. +### OIDC flow overview -### OIDC flow: +1. **Request token**: Github Actions Worker initiates the workflow by requesting a token from the GitHub OIDC service to authenticate with Cloudsmith. +2. **Return token**: GitHub OIDC service receives the token request. After verification and validation, it generates a JWT token. The GitHub OIDC service and the GitHub Actions Worker have implicit trust, allowing for this token exchange. +3. **Present token**: GitHub Actions Worker presents a JWT token to Cloudsmith for access to resources. +4. **Verify token**: Cloudsmith verifies the JWT token with the GithHub OIDC service to ensure its authenticity and validity. This step includes verifying claims. +5. **Return new token**: Upon successful validation, Cloudsmith issues a short-lived access token to the GitHub Actions Worker, granting access to Cloudsmith's resources for around 90 mins to cover the duration of the job. -1. Request token: Github Actions Worker initiates the workflow by requesting a token from the GitHub OIDC service to authenticate with Cloudsmith. -2. Return token: GitHub OIDC service receives the token request. After verification and validation, it generates a JWT token. The GitHub OIDC service and the GitHub Actions Worker have implicit trust, allowing for this token exchange. -3. Present token: GitHub Actions Worker presents a JWT token to Cloudsmith for access to resources. -4. Verify token: Cloudsmith verifies the JWT token with the GithHub OIDC service to ensure its authenticity and validity. This step includes verifying claims. -5. Return new token: Upon successful validation, Cloudsmith issues a short-lived access token to the GitHub Actions Worker, granting access to Cloudsmith's resources for around 90 mins to cover the duration of the job. +## Step-by-Step Guide -### Workflow Enhancement with OIDC, Cloudsmith, and GitHub Actions +Follow the steps below for the Cloudsmith and GitHub Actions OIDC Setup: -Our workflow using GitHub Actions and Cloudsmith with OIDC will push a package to Cloudsmith from Github Actions using OIDC to authenticate. +### 1. Create a Service Account in Cloudsmith and set Access Controls -### Step-by-Step Guide - -Follow the steps below for the Cloudsmith and Github Actions OIDC Setup: - -1. Create a Service Account in Cloudsmith: - 1. [Service accounts ](/accounts-and-teams/service-accounts)are a specific type of account that allows you to create a Cloudsmith API Key not tied to a specific user. - 2. Navigate to the Services section on your Cloudsmith organization's accounts page and click "Create Service." - 3. You are then presented with the Service creation form. Give your Service a name and optionally add a description and choose any teams in your organization that you wish to add the service to. -2. Set Access Controls - 1. Configure the repository access controls to allow the [Service Account ](/repositories/repository-privileges#access-control)to push packages to Cloudsmith. -3. Configure GitHub OIDC in Cloudsmith - 1. Navigate to the OIDC Provider Settings at: https://app.cloudsmith.com/{WORKSPACE}/settings/authentication/openid - NOTE: You must have the Manager or Owner role in your Cloudsmith organization to configure OIDC Provider Settings. - 2. Click "Create" to open the Edit Provider Settings form: - 3. Fill in the OIDC form: - 1. The Provider Name is a Unique name for the provider - 2. The Provider URL is unique to each provider, for Github Actions it is https://token.actions.githubusercontent.com - 3. The Required OpenID Token Claims field is very important. We strongly encourage people to set at least one claim. If you don't add claims any Github Action Worker will have permissions if they knew the service account(s) to target. In the image example above, we have set repository_owner as the claim, other supported claims can be found [here](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#understanding-the-oidc-token). - 4. The service accounts that the user wants to be able to authenticate as with the configured provider & claims combination. -4. Update your GitHub Actions for OIDC: - - 1. Open your Github Actions YAML file which sets up your Github Actions workflow. - 2. Add the permissions setting to request the JWT: - ```shell - Permissions: - id-token: write # This is required for requesting the JWT - contents: read # This is required for actions/checkout - ``` - 3. Generate the OIDC Token in GitHub Actions: - To [generate a token in Github Actions](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#updating-your-actions-for-oidc) you can use getIDToken() or you can use the curl command below to request the JWT. - - ``` - curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=api://AzureADTokenExchange" - ``` - 4. Make a POST request to the Cloudsmith OpenID endpoint to receive the JWT token. - If successful, this will give a JWT token that can be used as an API key. This token is active for 2 hours from the time of creation. - This POST request must have: - 1. A body of `oidc_token`, with the OpenID Token as its value. - 2. A `service_slug` as the slug of the service account the request wants to attempt to authenticate as. - 3. The OIDC Endpoint for your Cloudsmith organization will be: https://api.cloudsmith.io/openid/{ACCOUNT}/ - 5. This token works with all Cloudsmith API endpoints to manage resources, as well as format-specific endpoints, e.g. The Ruby endpoint to get all available packages - This token will also, work with the Command-Line Interface when specified as `CLOUDSMITH_API_KEY`. - 6. The JWT token generated by the OIDC endpoint can be used like an API key: - `X-Api-Key header: "X-Api-Key:Bearer OIDC_TOKEN"` -5. Trigger a build in GitHub Actions, and OIDC will authenticate into Cloudsmith. +1. [Service accounts ](/accounts-and-teams/service-accounts) are a specific type of account that allows you to create a Cloudsmith API Key not tied to a specific user. +2. Navigate to the Services section on your Cloudsmith workspace's accounts page and click "Create Service". +3. In the form, give your Service a name and optionally add a description and choose any teams in your workspace that you wish to add the service to. +4. Configure the repository access controls to allow the [Service Account ](/repositories/repository-privileges#access-control) to push packages to Cloudsmith. -## Example GitHub Actions Workflow +### 2. Configure GitHub OIDC in Cloudsmith + + +NOTE: Manager or Owner role required in your Cloudsmith workspace to configure OIDC Provider Settings. + + +1. Navigate to the OIDC Provider Settings at: https://app.cloudsmith.com/{WORKSPACE}/settings/authentication/openid +2. Click "Create" to open the Edit Provider Settings form. +3. Fill in the OIDC form: + - **Provider Name**: set a unique name for the provider. + - **Provider URL**: `https://token.actions.githubusercontent.com`. + - **Required OpenID Token Claims**: To validate the token, the cloud provider checks if the OIDC token's subject and other claims are a match for the conditions that were preconfigured on the cloud role's OIDC trust definition. + - **Service Accounts**: Select the service accounts that can be authenticated with this provider and claim combination. + + + We strongly encourage you to set at least one claim. Without claims, any GitHub Action that knows the service account slug could gain access. In the example, we use `repository_owner`. + + + + +### 3. Update your GitHub Actions for OIDC + +Cloudsmith provides a native GitHub action integration, that avoids a manualexchange of tokens. + +1. **Add permissions**: In your GitHub Actions YAML file, add the permissions block to allow the workflow to request an OIDC token. + +```yaml +permissions: + id-token: write # Required for requesting the JWT + contents: read # Required for actions/checkout +``` -Below is a full example of pushing a package to Cloudsmith in GitHub Actions using OIDC to authenticate: +2. **Authenticate using the Cloudsmith Action**: Add the following step to your job. It will handle the entire OIDC token exchange process automatically and configure the Cloudsmith CLI for any subsequent steps. +```yaml +- name: Authenticate with Cloudsmith via OIDC + uses: cloudsmith-io/cloudsmith-cli-action@v1.0.3 + with: + oidc-namespace: 'your-workspace' # Your Cloudsmith workspace + oidc-service-slug: 'your-service-account-slug' # Your Cloudsmith service account slug + oidc-auth-only: 'true' # Ensures the action only performs authentication ``` -name: Push a debian package to Cloudsmith with OIDC + +The action fetches the OIDC token from GitHub, exchanges it for a Cloudsmith token, and sets the `CLOUDSMITH_API_KEY` environment variable for the rest of the job. Finally, add any extra step for your workflow and trigger a build in GitHub Actions. + +## Example GitHub Actions Workflow + +Below is a full example of pushing a package to Cloudsmith in GitHub Actions using the modern OIDC authentication method. + +```yaml +name: Push a Debian package to Cloudsmith with OIDC on: push: branches: [ main ] + permissions: - id-token: write # Necessary to GH Identity Provider to write the JWT token which Cloudsmith needs to read - contents: read + id-token: write # Required to request the OIDC token from GitHub + contents: read # Required for actions/checkout to read the repository jobs: push: runs-on: ubuntu-latest - name: Push a Debian package to Cloudsmith using OIDC to authenticate + name: Push a Debian package to Cloudsmith using OIDC steps: - name: Check out code - uses: actions/checkout@v2 - - - name: Get OIDC token - run: | - value=$(curl -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" "$ACTIONS_ID_TOKEN_REQUEST_URL&audience=api://AzureADTokenExchange" | jq '.value') - token=$(curl -X POST -H "Content-Type: application/json" -d "{\"oidc_token\":$value, \"service_slug\":\"SERVICE_ACCOUNT_SLUG\"}" https://api.cloudsmith.io/openid/ORGANIZATION/ | jq -r '.token') - curl --request GET --url https://api.cloudsmith.io/user/self/ --header "X-Api-Key:Bearer $token" --header 'accept: application/json' - - echo "CLOUDSMITH_API_KEY=$token" >> $GITHUB_ENV - + uses: actions/checkout@v4 + + # This step handles the entire OIDC authentication flow automatically. + # It gets a token from GitHub and exchanges it for a Cloudsmith token. + - name: Authenticate with Cloudsmith via OIDC + uses: cloudsmith-io/cloudsmith-cli-action@v1.0.3 + with: + oidc-namespace: 'WORKSPACE' # Replace with your Cloudsmith workspace + oidc-service-slug: 'SERVICE_ACCOUNT_SLUG' # Replace with your service account slug + oidc-auth-only: 'true' + + # The step above configures the CLOUDSMITH_API_KEY for subsequent steps. - name: Cloudsmith Push Debian Package - uses: cloudsmith-io/action@v0.5.3 + uses: cloudsmith-io/action@v1 with: command: 'push' format: 'deb' - owner: 'DEMO_ORG' # Your Cloudsmith account name or org name (namespace) + owner: 'WORKSPACE' # Your Cloudsmith account name (namespace) repo: 'DEMO_REPOSITORY' # Your Cloudsmith Repository name (slug) - distro: 'debian' # Your Distribution (i.e Debian, Ubuntu) - release: 'buster' # Your Distribution Release (i.e xenial, buster) - republish: 'true' # needed if version is not changing - file: 'test/cloudsmith-debian-example-1.0.0-amd64.deb' # debian package filename - -``` + distro: 'debian' + release: 'buster' + republish: 'true' + file: 'test/cloudsmith-debian-example-1.0.0-amd64.deb' +``` \ No newline at end of file diff --git a/src/content/getting-started/dependencies-for-developers.mdx b/src/content/getting-started/dependencies-for-developers.mdx index cca802e3..edfaf68a 100644 --- a/src/content/getting-started/dependencies-for-developers.mdx +++ b/src/content/getting-started/dependencies-for-developers.mdx @@ -10,9 +10,9 @@ We are building Cloudsmith to provide universal format support for all package t Configure Cloudsmith for dependency management: -- [**Upstreams Proxying/Caching**](/repositories/upstreams): You can isolate your packages from unstable, community-driven public upstreams. Giving you control of what assets are available to your developers. -- [**Package Retention Rules**](/artifact-management/retention-rules): Automate the cleanup of artifacts that you don't use and keep your repositories in order no matter what's the package format. -- [**Package Groups**](/artifact-management/package-groups): Get an overview of all the assets in your registries. +- [Upstreams Proxying/Caching](/repositories/upstreams): You can isolate your packages from unstable, community-driven public upstreams. Giving you control of what assets are available to your developers. +- [Package Retention Rules](/artifact-management/retention-rules): Automate the cleanup of artifacts that you don't use and keep your repositories in order no matter what's the package format. +- [Package Groups](/artifact-management/package-groups): Get an overview of all the assets in your registries. ## Secure your Packages diff --git a/src/content/getting-started/index.mdx b/src/content/getting-started/index.mdx index 9683d07a..f57c65af 100644 --- a/src/content/getting-started/index.mdx +++ b/src/content/getting-started/index.mdx @@ -11,12 +11,12 @@ Cloudsmith is a cloud-native, hosted, package management service with deep focus Store public, private and open-source packages in Cloudsmith to help you manage, track and control the software used within your development and deployment pipelines or when you distribute it to your customers. -Learn more about [**Supported formats**](/formats). +Learn more about [Supported formats](/formats). Not sure where to start? - diff --git a/src/content/logs-and-observability/index.mdx b/src/content/logs-and-observability/index.mdx index 4a429856..0de8bb0b 100644 --- a/src/content/logs-and-observability/index.mdx +++ b/src/content/logs-and-observability/index.mdx @@ -2,10 +2,10 @@ Cloudsmith's observability features provide the tools to understand how your artifacts are being accessed, used, and managed. This section covers the key data sources that enable deep visibility into your artifact management lifecycle. -- [**Client Logs**](/logs-and-observability/client-logs): these logs are the foundational data layer, capturing the granular, real-time interactions with your repository. They record every request, download, and deployment, providing a detailed view from the perspective of the developer machines and CI/CD pipelines that consume your artifacts. They are invaluable to understand package consumption patterns. +- [Client Logs](/logs-and-observability/client-logs): these logs are the foundational data layer, capturing the granular, real-time interactions with your repository. They record every request, download, and deployment, providing a detailed view from the perspective of the developer machines and CI/CD pipelines that consume your artifacts. They are invaluable to understand package consumption patterns. -- [**Client Stats**](/logs-and-observability/client-statistics): analyzes and aggregates client logs information to provide insights and a general overview of your usage data. +- [Client Stats](/logs-and-observability/client-statistics): analyzes and aggregates client logs information to provide insights and a general overview of your usage data. -- [**Audit Logs**](/logs-and-observability/audit-logs): Provides a critical security and compliance perspective of your Workspace. This feature tracks significant events related to governance of your Workspaces and repositories, such as user authentications, permission changes, or modifications to repository settings. This creates an immutable record of "_who did what, and when_" which is fundamental for security forensics and meeting regulatory requirements. +- [Audit Logs](/logs-and-observability/audit-logs): Provides a critical security and compliance perspective of your Workspace. This feature tracks significant events related to governance of your Workspaces and repositories, such as user authentications, permission changes, or modifications to repository settings. This creates an immutable record of "_who did what, and when_" which is fundamental for security forensics and meeting regulatory requirements. Together, these logging mechanisms offer a comprehensive view of your artifact ecosystem. While this section also touches on advanced capabilities like exporting this data for long-term retention or specialized analysis, the core principle is to provide you with the foundational visibility needed to secure and manage your software supply chain effectively. \ No newline at end of file diff --git a/src/content/menu.json b/src/content/menu.json index 5808f4c4..9a44d8be 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -5,79 +5,29 @@ "icon": "action/documentation", "children": [ { - "title": "About Cloudsmith", + "title": "Getting Started", "path": "/getting-started", "children": [ { - "title": "Key concepts", + "title": "Key Concepts", "path": "/getting-started/key-concepts" }, { - "title": "Common use cases", + "title": "Common Use Cases", "path": "/getting-started/common-use-cases" }, { - "title": "Signing-up", + "title": "Sign Up", "path": "/getting-started/sign-up" }, { - "title": "Signing-in", + "title": "Log In", "path": "/getting-started/sign-in" } ] }, { - "title": "Migrating to Cloudsmith", - "path": "/migrating-to-cloudsmith", - "children": [ - { - "title": "Migrating from JFrog Artifactory", - "path": "/migrating-to-cloudsmith/export-from-jfrog-artifactory" - }, - { - "title": "Migrating from Nexus Sonatype", - "path": "/migrating-to-cloudsmith/export-from-nexus-sonatype" - }, - { - "title": "Exporting NuGet", - "path": "/migrating-to-cloudsmith/exporting-nuget" - }, - { - "title": "Import files from a folder", - "path": "/migrating-to-cloudsmith/import-files-from-a-folder" - }, - { - "title": "Import Maven", - "path": "/migrating-to-cloudsmith/import-maven" - }, - { - "title": "Import npm", - "path": "/migrating-to-cloudsmith/import-npm" - }, - { - "title": "Import NuGet", - "path": "/migrating-to-cloudsmith/import-nuget" - }, - { - "title": "Import Docker", - "path": "/migrating-to-cloudsmith/import-docker" - }, - { - "title": "Import Python", - "path": "/migrating-to-cloudsmith/import-python" - }, - { - "title": "Import Debian", - "path": "/migrating-to-cloudsmith/import-debian" - }, - { - "title": "Import RPM", - "path": "/migrating-to-cloudsmith/import-rpm" - } - ] - }, - { - "title": "Supported formats", + "title": "Supported Formats", "path": "/formats/" }, { @@ -101,7 +51,7 @@ "path": "/workspaces/privileges" }, { - "title": "Custom domains", + "title": "Custom Domains", "path": "/workspaces/custom-domains" }, { @@ -177,7 +127,7 @@ "path": "/authentication/openid-connect", "children": [ { - "title": "Setup GitHub Actions to authenticate to Cloudsmith using OIDC", + "title": "Setup GitHub Actions to Authenticate to Cloudsmith using OIDC", "path": "/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions" } ] @@ -199,16 +149,16 @@ "path": "/repositories/repository-settings" }, { - "title": "Privileges", - "path": "/repositories/repository-privileges" - }, - { - "title": "Custom storage regions", + "title": "Custom Storage Regions", "path": "/repositories/custom-storage-regions" }, { "title": "Upstreams", "path": "/repositories/upstreams" + }, + { + "title": "Privileges", + "path": "/repositories/repository-privileges" } ] }, @@ -221,21 +171,21 @@ "path": "/accounts-and-teams/teams" }, { - "title": "Member accounts", + "title": "Member Accounts", "path": "/accounts-and-teams/user-accounts" }, { - "title": "Service accounts", + "title": "Service Accounts", "path": "/accounts-and-teams/service-accounts" }, { - "title": "About privileges", + "title": "Privileges", "path": "/accounts-and-teams/about-privileges" } ] }, { - "title": "Artifact management", + "title": "Artifact Management", "path": "/artifact-management", "children": [ { @@ -257,7 +207,7 @@ ] }, { - "title": "Supply chain security", + "title": "Supply Chain Security", "path": "/supply-chain-security", "children": [ { @@ -268,6 +218,10 @@ "title": "Continuous Security", "path": "/supply-chain-security/continuous-security" }, + { + "title": "Vulnerability Scanning", + "path": "/supply-chain-security/vulnerability-scanning" + }, { "title": "Policies", "path": "/policy-management/", @@ -295,11 +249,11 @@ ] }, { - "title": "Enterprise Policy Management", + "title": "Enterprise Policy Mgmt.", "path": "/supply-chain-security/epm", "children":[ { - "title": "Getting started", + "title": "Getting Started", "path": "/supply-chain-security/epm/getting-started" }, { @@ -309,11 +263,7 @@ ] }, { - "title": "Vulnerability scanning", - "path": "/supply-chain-security/vulnerability-scanning" - }, - { - "title": "Package signing", + "title": "Package Signing", "path": "/supply-chain-security/signing-keys" }, { @@ -323,41 +273,41 @@ ] }, { - "title": "Logs & observability", + "title": "Observability and Logs", "path": "/logs-and-observability/", "children": [ { - "title": "Client logs", + "title": "Client Logs", "path": "/logs-and-observability/client-logs" }, { - "title": "Client stats", + "title": "Client Statistics", "path": "/logs-and-observability/client-statistics" }, { - "title": "Audit logs", + "title": "Audit Logs", "path": "/logs-and-observability/audit-logs" }, { - "title": "Exporting logs to Azure", + "title": "Exporting Logs to Azure", "path": "/logs-and-observability/exports-to-azure" }, { - "title": "Exporting logs to S3", + "title": "Exporting Logs to S3", "path": "/logs-and-observability/access-log-exports-to-s3" }, { - "title": "Analyzing logs with Athena", + "title": "Analyzing Logs with Athena", "path": "/logs-and-observability/analyzing-s3-download-logs" } ] }, { - "title": "Software distribution", + "title": "Software Distribution", "path": "/software-distribution", "children": [ { - "title": "Cloudsmith Broadcasts", + "title": "Broadcasts", "path": "/software-distribution/broadcasts", "children":[ { @@ -367,25 +317,25 @@ ] }, { - "title": "Entitlement tokens", + "title": "Entitlement Tokens", "path": "/software-distribution/entitlement-tokens", "children": [ { - "title": "Entitlement tokens via the API", + "title": "Via the API", "path": "/software-distribution/entitlement-tokens-via-the-cloudsmith-api" }, { - "title": "Entitlement tokens via the CLI", + "title": "Via the CLI", "path": "/software-distribution/entitlement-tokens-via-the-cloudsmith-cli" }, { - "title": "Entitlement tokens via web app", + "title": "Via web app", "path": "/software-distribution/entitlement-tokens-via-the-website-ui" } ] }, { - "title": "EULA enforcement", + "title": "EULA Enforcement", "path": "/software-distribution/eula" } ] @@ -395,11 +345,11 @@ "path": "/integrations/" }, { - "title": "Developer tools", + "title": "Developer Tools", "path": "/getting-started#developer-tools", "children": [ { - "title": "Generating an API key", + "title": "Generating an API Key", "path": "/getting-started/api-key" }, { @@ -425,7 +375,57 @@ ] }, { - "title": "Contact us", + "title": "Migrating to Cloudsmith", + "path": "/migrating-to-cloudsmith", + "children": [ + { + "title": "Migrating from JFrog Artifactory", + "path": "/migrating-to-cloudsmith/export-from-jfrog-artifactory" + }, + { + "title": "Migrating from Nexus Sonatype", + "path": "/migrating-to-cloudsmith/export-from-nexus-sonatype" + }, + { + "title": "Exporting NuGet", + "path": "/migrating-to-cloudsmith/exporting-nuget" + }, + { + "title": "Import files from a folder", + "path": "/migrating-to-cloudsmith/import-files-from-a-folder" + }, + { + "title": "Import Maven", + "path": "/migrating-to-cloudsmith/import-maven" + }, + { + "title": "Import npm", + "path": "/migrating-to-cloudsmith/import-npm" + }, + { + "title": "Import NuGet", + "path": "/migrating-to-cloudsmith/import-nuget" + }, + { + "title": "Import Docker", + "path": "/migrating-to-cloudsmith/import-docker" + }, + { + "title": "Import Python", + "path": "/migrating-to-cloudsmith/import-python" + }, + { + "title": "Import Debian", + "path": "/migrating-to-cloudsmith/import-debian" + }, + { + "title": "Import RPM", + "path": "/migrating-to-cloudsmith/import-rpm" + } + ] + }, + { + "title": "Contact Us", "path": "https://cloudsmith.com/company/contact-us" } ] diff --git a/src/content/repositories/repository-privileges.mdx b/src/content/repositories/repository-privileges.mdx index 9141916a..cb0b1568 100644 --- a/src/content/repositories/repository-privileges.mdx +++ b/src/content/repositories/repository-privileges.mdx @@ -9,9 +9,9 @@ import img_repo_access_controls from './images/access-controls/7777990f16d3b240b There are three different repository settings defining user's access to artifacts and repository settings: -- [**Repository Privileges**](#repository-privileges): Defines the minimum level of privilege required for a user to perform specific actions. This setting is override by _User/Self_ privileges when the user is the ownser of a package. -- [**Self Privileges**](#self-privileges): Defines which actions users can always do with their own packages, no matter what are the privileges defined at other privilege levels (workspace, repository, team). -- [**Access control**](#access-control): Defines the default level of privilege assigned to all workspace members (no collaborators) for this repository. +- [Repository Privileges](#repository-privileges): Defines the minimum level of privilege required for a user to perform specific actions. This setting is override by _User/Self_ privileges when the user is the ownser of a package. +- [Self Privileges](#self-privileges): Defines which actions users can always do with their own packages, no matter what are the privileges defined at other privilege levels (workspace, repository, team). +- [Access control](#access-control): Defines the default level of privilege assigned to all workspace members (no collaborators) for this repository. Before we dig deeper into each of them, here we can find the different levels of access that you can assign to users, services and members of teams in a repository: diff --git a/src/content/supply-chain-security/index.mdx b/src/content/supply-chain-security/index.mdx index f8cadeb8..8d08ae4f 100644 --- a/src/content/supply-chain-security/index.mdx +++ b/src/content/supply-chain-security/index.mdx @@ -1,6 +1,6 @@ # Supply Chain Security -Modern software delivery pipelines face growing complexities and a rising wave of sophisticated supply chain attacks, requiring artifact management to go beyond traditional storage. According to the [**Cloudsmith 2025 Artifact Management Report**](https://cloudsmith.com/campaigns/2025-artifact-management-report), this is top of mind for engineering teams, with 56% of respondents citing improved security as the leading benefit of their artifact management tools. +Modern software delivery pipelines face growing complexities and a rising wave of sophisticated supply chain attacks, requiring artifact management to go beyond traditional storage. According to the [Cloudsmith 2025 Artifact Management Report](https://cloudsmith.com/campaigns/2025-artifact-management-report), this is top of mind for engineering teams, with 56% of respondents citing improved security as the leading benefit of their artifact management tools. Our platform is designed to meet this challenge head-on. We provide a comprehensive suite of features to help you secure your software supply chain by enabling you to define your policies and responses to policy violations as code; identifying, mitigating, and blocking risks from vulnerabilities and non-compliant licenses in your dependencies. From 5cecd3083384b6bfcfa7b476e4bae96c2d793196 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 16 Jul 2025 17:22:50 +0200 Subject: [PATCH 079/127] done --- .env | 2 + src/app/(documentation)/[...slug]/page.tsx | 5 ++- src/app/_styles/variables.css | 1 + src/components/SidePanel/SidePanel.module.css | 23 ++++++++++ src/components/SidePanel/SidePanel.tsx | 32 ++++++++++++++ src/components/SidePanel/index.ts | 1 + src/components/WithQuickNav/WithQuicknav.tsx | 7 ++- src/icons/icon-registry.tsx | 5 +++ src/icons/svgs/Edit.tsx | 30 +++++++++++++ src/icons/svgs/Github.tsx | 18 ++++++++ src/icons/svgs/Search.tsx | 4 +- src/icons/svgs/homepage/API.tsx | 4 +- src/icons/svgs/integration/Ansible.tsx | 4 +- src/icons/svgs/integration/Jenkins.tsx | 44 +++++++++---------- src/icons/svgs/utility/Guide.tsx | 4 +- src/lib/metadata/types.ts | 6 +++ src/lib/metadata/util.ts | 19 ++++++-- 17 files changed, 172 insertions(+), 37 deletions(-) create mode 100644 src/components/SidePanel/SidePanel.module.css create mode 100644 src/components/SidePanel/SidePanel.tsx create mode 100644 src/components/SidePanel/index.ts create mode 100644 src/icons/svgs/Edit.tsx create mode 100644 src/icons/svgs/Github.tsx diff --git a/.env b/.env index a41eafb3..870fb1bb 100644 --- a/.env +++ b/.env @@ -1,3 +1,5 @@ NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io" +NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs" +NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH="staging" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index f5569465..9c1eb1a5 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -44,9 +44,10 @@ const Page = async ({ params }: PageProps) => { const mdxInfo = content.find((info) => info.slug === qualifiedSlug); if (mdxInfo) { + const repoPath = `src/content/${mdxInfo.file}`; const mdxModule = await import(`@/content/${mdxInfo.file}`); const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); + const lastUpdated = await getLastUpdated(mdxInfo); const pathname = `/${qualifiedSlug}`; const menuData = getMenuItem('documentation'); @@ -54,7 +55,7 @@ const Page = async ({ params }: PageProps) => { const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; return ( - + {parentTitle ? (

    {parentTitle} diff --git a/src/app/_styles/variables.css b/src/app/_styles/variables.css index 05fdebf9..b8526b43 100644 --- a/src/app/_styles/variables.css +++ b/src/app/_styles/variables.css @@ -146,6 +146,7 @@ /* Text */ --color-text-primary: var(--brand-color-grey-10); --color-text-secondary: var(--brand-color-grey-8); + --color-text-tertiary: var(--brand-color-grey-7); --color-text-link: var(--base-color-blue-500); --color-text-on-color: var(--base-color-white); --color-text-label: var(--base-color-grey-500); diff --git a/src/components/SidePanel/SidePanel.module.css b/src/components/SidePanel/SidePanel.module.css new file mode 100644 index 00000000..06cbf50b --- /dev/null +++ b/src/components/SidePanel/SidePanel.module.css @@ -0,0 +1,23 @@ +.root { + display: flex; + flex-direction: column; + gap: var(--space-xs); + margin-top: var(--space-xs); +} + +.dateUpdated { + padding-block: var(--space-3xs); + color: var(--color-text-tertiary); +} + +.githubLink, +.addCommentLink { + display: flex; + align-items: center; + gap: var(--space-3xs); + color: var(--color-text-secondary); + + &:hover { + color: var(--brand-color-blue-7); + } +} diff --git a/src/components/SidePanel/SidePanel.tsx b/src/components/SidePanel/SidePanel.tsx new file mode 100644 index 00000000..320f3346 --- /dev/null +++ b/src/components/SidePanel/SidePanel.tsx @@ -0,0 +1,32 @@ +import styles from './SidePanel.module.css'; +import { Link } from '@/components/Link'; +import { cx } from 'class-variance-authority'; +import { Icon } from '@/icons'; +import { intlFormatDistance, parseISO } from 'date-fns'; + +export const SidePanel = ({ path = '', lastUpdated }: SidePanelProps) => { + const githubLink = `${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_URL}/tree/${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH}/${path}`; + + const getUpdatedLabel = (date: string) => { + const compare = parseISO(date); + const today = new Date(); + return `Updated ${intlFormatDistance(compare, today, { locale: 'en' })}`; + }; + + return ( +
    + {lastUpdated ? ( +
    {getUpdatedLabel(lastUpdated)}
    + ) : null} + + + View on GitHub + +
    + ); +}; + +interface SidePanelProps { + path: string; + lastUpdated?: string; +} diff --git a/src/components/SidePanel/index.ts b/src/components/SidePanel/index.ts new file mode 100644 index 00000000..35517eae --- /dev/null +++ b/src/components/SidePanel/index.ts @@ -0,0 +1 @@ +export { SidePanel } from './SidePanel'; diff --git a/src/components/WithQuickNav/WithQuicknav.tsx b/src/components/WithQuickNav/WithQuicknav.tsx index 758789fd..35202a54 100644 --- a/src/components/WithQuickNav/WithQuicknav.tsx +++ b/src/components/WithQuickNav/WithQuicknav.tsx @@ -1,6 +1,7 @@ import { Icon } from '@/icons'; import { quickNavContentId } from '@/lib/constants/quickNav'; import { QuickNav } from '../QuickNav'; +import { SidePanel } from '../SidePanel'; import styles from './WithQuicknav.module.css'; @@ -9,7 +10,7 @@ import styles from './WithQuicknav.module.css'; See next.config.mjs for the SVG symbol usage. */ -const WithQuicknav = ({ children }: WithQuicknavProps) => { +const WithQuicknav = ({ children, showSidePanel = false, path = '', lastUpdated }: WithQuicknavProps) => { return (
    @@ -18,6 +19,7 @@ const WithQuicknav = ({ children }: WithQuicknavProps) => {
    ); @@ -25,6 +27,9 @@ const WithQuicknav = ({ children }: WithQuicknavProps) => { interface WithQuicknavProps { children: React.ReactNode; + showSidePanel?: boolean; + path?: string; + lastUpdated?: string; } export default WithQuicknav; diff --git a/src/icons/icon-registry.tsx b/src/icons/icon-registry.tsx index 52c0382b..c4263fc8 100644 --- a/src/icons/icon-registry.tsx +++ b/src/icons/icon-registry.tsx @@ -5,6 +5,9 @@ import { ChevronIcon } from './svgs/Chevron'; import { ChevronSmallIcon } from './svgs/ChevronSmall'; import { ArrowIcon } from './svgs/Arrow'; import { SearchIcon } from './svgs/Search'; +import { EditIcon } from './svgs/Edit'; +import { GithubIcon } from './svgs/Github'; + import { UtilityDocumentationIcon } from './svgs/utility/Documentation'; import { UtilityGuideIcon } from './svgs/utility/Guide'; import { UtilityApiIcon } from './svgs/utility/Api'; @@ -108,6 +111,8 @@ export const iconRegistry = createIconRegistry({ arrowDown: (props) => , arrowLeft: (props) => , search: SearchIcon, + edit: EditIcon, + github: GithubIcon, 'utility/documentation': UtilityDocumentationIcon, 'utility/guide': UtilityGuideIcon, 'utility/api': UtilityApiIcon, diff --git a/src/icons/svgs/Edit.tsx b/src/icons/svgs/Edit.tsx new file mode 100644 index 00000000..53479f14 --- /dev/null +++ b/src/icons/svgs/Edit.tsx @@ -0,0 +1,30 @@ +import { createIcon, SpecificIconProps } from '../util/create-icon'; + +export const EditIcon = createIcon('edit', ({ width = 16, height = 16, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 16 16', + fill: 'none', + children: ( + <> + + + + + + + + + + + ), +})); diff --git a/src/icons/svgs/Github.tsx b/src/icons/svgs/Github.tsx new file mode 100644 index 00000000..c7c9f1ee --- /dev/null +++ b/src/icons/svgs/Github.tsx @@ -0,0 +1,18 @@ +import { createIcon, SpecificIconProps } from '../util/create-icon'; + +export const GithubIcon = createIcon( + 'github', + ({ width = 16, height = 16, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 16 16', + fill: 'none', + children: ( + + ), + }), +); diff --git a/src/icons/svgs/Search.tsx b/src/icons/svgs/Search.tsx index 22d3521a..76820d3b 100644 --- a/src/icons/svgs/Search.tsx +++ b/src/icons/svgs/Search.tsx @@ -12,8 +12,8 @@ export const SearchIcon = createIcon( <> diff --git a/src/icons/svgs/homepage/API.tsx b/src/icons/svgs/homepage/API.tsx index 883800f4..9cb9d60e 100644 --- a/src/icons/svgs/homepage/API.tsx +++ b/src/icons/svgs/homepage/API.tsx @@ -15,8 +15,8 @@ export const HomepageAPIIcon = createIcon( fill="currentColor" /> diff --git a/src/icons/svgs/integration/Ansible.tsx b/src/icons/svgs/integration/Ansible.tsx index efdf0f6a..16ad751c 100644 --- a/src/icons/svgs/integration/Ansible.tsx +++ b/src/icons/svgs/integration/Ansible.tsx @@ -11,8 +11,8 @@ export const IntegrationAnsibleIcon = createIcon( children: ( <> diff --git a/src/icons/svgs/integration/Jenkins.tsx b/src/icons/svgs/integration/Jenkins.tsx index 5800bfb8..10480f76 100644 --- a/src/icons/svgs/integration/Jenkins.tsx +++ b/src/icons/svgs/integration/Jenkins.tsx @@ -13,70 +13,70 @@ export const IntegrationJenkinsIcon = createIcon( diff --git a/src/icons/svgs/utility/Guide.tsx b/src/icons/svgs/utility/Guide.tsx index 20d03f56..a172f6c9 100644 --- a/src/icons/svgs/utility/Guide.tsx +++ b/src/icons/svgs/utility/Guide.tsx @@ -11,8 +11,8 @@ export const UtilityGuideIcon = createIcon( children: ( <> diff --git a/src/lib/metadata/types.ts b/src/lib/metadata/types.ts index 797a9d15..31f1e7ff 100644 --- a/src/lib/metadata/types.ts +++ b/src/lib/metadata/types.ts @@ -9,6 +9,12 @@ export interface MdxModule extends Partial { rawContent?: string; } +export interface MdxInfo { + file: string; + segments: string[]; + slug: string; +} + export interface MetadataOptions { defaultTitle: string; templatePrefix?: string; diff --git a/src/lib/metadata/util.ts b/src/lib/metadata/util.ts index 6c01882b..85716187 100644 --- a/src/lib/metadata/util.ts +++ b/src/lib/metadata/util.ts @@ -1,7 +1,8 @@ import type { Metadata } from 'next'; import fs from 'fs/promises'; import path from 'path'; -import { MdxModule, MetadataOptions } from './types'; +import { MdxModule, MetadataOptions, MdxInfo } from './types'; +import { execSync } from 'child_process'; /** * Generates default metadata for any page. @@ -87,8 +88,18 @@ const extractFirstH1Title = (content: string): string | undefined => { }; /** - * Gets the last updated date using frontmatter + * Gets the last updated date using frontmatter, + * or Git if not present. */ -export function getLastUpdated(mdxModule: MdxModule) { - return mdxModule.frontmatter?.lastUpdated; +export async function getLastUpdated(mdxInfo: MdxInfo): Promise { + const mdxModule = (await import(`@/content/${mdxInfo.file}`)) as MdxModule; + const lastUpdated = mdxModule.frontmatter?.lastUpdated; + + if (lastUpdated) { + return lastUpdated; + } else { + const fullPath = path.join('src/content', mdxInfo.file); + const gitDate = execSync(`git log -1 --format=%cI -- ${fullPath}`)?.toString().trim(); + return gitDate || undefined; + } } From 05d534c01fdd832157a87655c9195577db17e0e0 Mon Sep 17 00:00:00 2001 From: gerguno Date: Wed, 16 Jul 2025 23:00:31 +0200 Subject: [PATCH 080/127] edits --- src/app/(api)/api/[...slug]/page.tsx | 7 +++---- src/app/(api)/api/page.tsx | 5 ++--- src/app/(documentation)/[...slug]/page.tsx | 3 +-- src/app/(guides)/guides/[...slug]/page.tsx | 5 ++--- src/app/(guides)/guides/page.tsx | 5 ++--- src/components/QuickNav/QuickNav.module.css | 3 +-- src/components/WithQuickNav/WithQuicknav.module.css | 5 +++++ src/components/WithQuickNav/WithQuicknav.tsx | 6 ++++-- src/lib/metadata/util.ts | 7 ++++++- 9 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index c7310bbd..37abab4a 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -1,4 +1,4 @@ -import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph } from '@/components'; +import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph, Tag, Note } from '@/components'; import { loadMdxInfo } from '@/lib/markdown/util'; import { parseSchemas, toOperations } from '@/lib/swagger/parse'; import { toRouteSegments, toSlug } from '@/lib/util'; @@ -78,9 +78,8 @@ const Page = async ({ params }: PageProps) => { const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); + const { default: Post } = await import(`@/content/${mdxInfo.file}`); + const lastUpdated = await getLastUpdated(mdxInfo); return ( diff --git a/src/app/(api)/api/page.tsx b/src/app/(api)/api/page.tsx index 6b73b3fb..20af68a0 100644 --- a/src/app/(api)/api/page.tsx +++ b/src/app/(api)/api/page.tsx @@ -35,9 +35,8 @@ const Page = async () => { const mdxInfo = content.find((info) => info.slug === ''); if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); + const { default: Post } = await import(`@/content/${mdxInfo.file}`); + const lastUpdated = await getLastUpdated(mdxInfo); return ( diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index 9c1eb1a5..5902aecf 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -44,9 +44,8 @@ const Page = async ({ params }: PageProps) => { const mdxInfo = content.find((info) => info.slug === qualifiedSlug); if (mdxInfo) { + const { default: Post } = await import(`@/content/${mdxInfo.file}`); const repoPath = `src/content/${mdxInfo.file}`; - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; const lastUpdated = await getLastUpdated(mdxInfo); const pathname = `/${qualifiedSlug}`; diff --git a/src/app/(guides)/guides/[...slug]/page.tsx b/src/app/(guides)/guides/[...slug]/page.tsx index e84fae51..d934943f 100644 --- a/src/app/(guides)/guides/[...slug]/page.tsx +++ b/src/app/(guides)/guides/[...slug]/page.tsx @@ -44,9 +44,8 @@ const Page = async ({ params }: PageProps) => { const mdxInfo = content.find((info) => info.slug === qualifiedSlug); if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); + const { default: Post } = await import(`@/content/${mdxInfo.file}`); + const lastUpdated = await getLastUpdated(mdxInfo); const pathname = `/${qualifiedSlug}`; const menuData = getMenuItem('guides'); diff --git a/src/app/(guides)/guides/page.tsx b/src/app/(guides)/guides/page.tsx index a9e867e3..a05a69fe 100644 --- a/src/app/(guides)/guides/page.tsx +++ b/src/app/(guides)/guides/page.tsx @@ -33,9 +33,8 @@ const Page = async () => { const mdxInfo = content.find((info) => info.slug === ''); if (mdxInfo) { - const mdxModule = await import(`@/content/${mdxInfo.file}`); - const { default: Post } = mdxModule; - const lastUpdated = getLastUpdated(mdxModule); + const { default: Post } = await import(`@/content/${mdxInfo.file}`); + const lastUpdated = await getLastUpdated(mdxInfo); return ( diff --git a/src/components/QuickNav/QuickNav.module.css b/src/components/QuickNav/QuickNav.module.css index 8ac8845c..0b487b20 100644 --- a/src/components/QuickNav/QuickNav.module.css +++ b/src/components/QuickNav/QuickNav.module.css @@ -1,6 +1,5 @@ .root { - position: sticky; - top: calc(var(--space-l) + var(--navbar-height)); + position: relative; } .root::before { diff --git a/src/components/WithQuickNav/WithQuicknav.module.css b/src/components/WithQuickNav/WithQuicknav.module.css index 60605c10..30eb3bd8 100644 --- a/src/components/WithQuickNav/WithQuicknav.module.css +++ b/src/components/WithQuickNav/WithQuicknav.module.css @@ -16,6 +16,11 @@ display: none; } +.navWrapper { + position: sticky; + top: calc(var(--space-l) + var(--navbar-height)); +} + @media (--desktop-up) { .nav { display: block; diff --git a/src/components/WithQuickNav/WithQuicknav.tsx b/src/components/WithQuickNav/WithQuicknav.tsx index 35202a54..3487b281 100644 --- a/src/components/WithQuickNav/WithQuicknav.tsx +++ b/src/components/WithQuickNav/WithQuicknav.tsx @@ -18,8 +18,10 @@ const WithQuicknav = ({ children, showSidePanel = false, path = '', lastUpdated {children} ); diff --git a/src/lib/metadata/util.ts b/src/lib/metadata/util.ts index 85716187..38622c48 100644 --- a/src/lib/metadata/util.ts +++ b/src/lib/metadata/util.ts @@ -100,6 +100,11 @@ export async function getLastUpdated(mdxInfo: MdxInfo): Promise Date: Wed, 16 Jul 2025 23:01:25 +0200 Subject: [PATCH 081/127] clean up --- src/app/(api)/api/[...slug]/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index 37abab4a..c58b1d6f 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -1,4 +1,4 @@ -import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph, Tag, Note } from '@/components'; +import { ApiRequest, ApiResponses, TimeAgo, Heading, Paragraph } from '@/components'; import { loadMdxInfo } from '@/lib/markdown/util'; import { parseSchemas, toOperations } from '@/lib/swagger/parse'; import { toRouteSegments, toSlug } from '@/lib/util'; From 91ce55aa1233c0fee2ecdc945ddb7d6e6ddd310f Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 17:08:30 +0200 Subject: [PATCH 082/127] fix(multiple): @alan suggestions + new langs + others --- src/app/(documentation)/[...slug]/page.tsx | 9 +- .../artifact-management/package-upload.mdx | 2 +- src/content/authentication/openid-connect.mdx | 1 - ...thenticate-with-oidc-in-github-actions.mdx | 39 +- src/content/formats/alpine-repository.mdx | 1 + src/content/formats/cargo-registry.mdx | 1 + src/content/formats/chocolatey-repository.mdx | 7 +- src/content/formats/cocoapods-repository.mdx | 1 + src/content/formats/composer-repository.mdx | 1 + src/content/formats/conan-repository.mdx | 5 +- src/content/formats/conda-repository.mdx | 5 +- src/content/formats/cran-repository.mdx | 1 + src/content/formats/dart-repository.mdx | 1 + src/content/formats/debian-repository.mdx | 1 + src/content/formats/docker-registry.mdx | 1 + src/content/formats/go-registry.mdx | 1 + src/content/formats/gradle-repository.mdx | 7 +- src/content/formats/helm-chart-repository.mdx | 1 + src/content/formats/hex-repository.mdx | 5 +- src/content/formats/luarocks-repository.mdx | 1 + src/content/formats/maven-repository.mdx | 2 +- src/content/formats/npm-registry.mdx | 1 + src/content/formats/nuget-feed.mdx | 4 +- src/content/formats/nuget-symbol-server.mdx | 5 +- src/content/formats/oci-repository.mdx | 5 +- src/content/formats/p2-repository.mdx | 7 +- .../formats/powershell-modules-repository.mdx | 4 +- src/content/formats/python-repository.mdx | 1 + src/content/formats/raw-repository.mdx | 5 +- src/content/formats/redhat-repository.mdx | 1 + src/content/formats/ruby-repository.mdx | 1 + src/content/formats/sbt-repository.mdx | 7 +- src/content/formats/swift-registry.mdx | 3 +- .../formats/terraform-modules-repository.mdx | 1 + src/content/formats/unity-registry.mdx | 1 + src/content/formats/vagrant-repository.mdx | 5 +- .../getting-started/common-use-cases.mdx | 25 +- src/content/getting-started/images/device.png | Bin 418126 -> 679841 bytes ...-your-cloudsmith-account-and-workspace.mdx | 2 +- .../integrations/integrating-with-aikido.mdx | 3 +- .../integrations/integrating-with-ansible.mdx | 1 + .../integrating-with-aws-codebuild.mdx | 2 + .../integrating-with-azure-devops.mdx | 7 +- .../integrating-with-bitbucket-pipelines.mdx | 1 + .../integrating-with-buildkite.mdx | 2 + .../integrating-with-chainguard-images.mdx | 2 + .../integrating-with-codefresh.mdx | 3 +- .../integrations/integrating-with-datadog.mdx | 2 + .../integrating-with-dependabot.mdx | 1 + .../integrating-with-docker-hub.mdx | 2 + .../integrating-with-drone-ci.mdx | 1 + .../integrating-with-gcp-cloudbuild.mdx | 1 + .../integrating-with-github-actions.mdx | 1 + .../integrating-with-gitlab-cicd.mdx | 1 + .../integrations/integrating-with-harness.mdx | 2 + .../integrations/integrating-with-jenkins.mdx | 6 +- .../integrating-with-microsoft-teams.mdx | 2 + .../integrating-with-octopus-deploy.mdx | 9 +- .../integrations/integrating-with-puppet.mdx | 1 + .../integrating-with-renovate.mdx | 1 + .../integrations/integrating-with-roadie.mdx | 1 + .../integrating-with-semaphore-ci.mdx | 2 +- .../integrations/integrating-with-slack.mdx | 2 + .../integrating-with-teamcity.mdx | 1 + .../integrating-with-terraform.mdx | 1 + .../integrating-with-travis-ci.mdx | 2 + .../integrations/integrating-with-zapier.mdx | 2 + .../integrations/upload-via-postman.mdx | 2 + .../client-statistics.mdx | 2 +- src/content/menu.json | 4 + .../exporting-nuget.mdx | 6 +- .../migrating-to-cloudsmith/import-maven.mdx | 16 + .../migrating-to-cloudsmith/import-python.mdx | 9 + .../policy-management/block-until-scan.mdx | 2 +- .../repositories/create-a-repository.mdx | 6 +- .../repositories/repository-settings.mdx | 14 +- src/content/repositories/upstreams/index.mdx | 40 +- .../supply-chain-security/epm/rego.mdx | 40 +- src/lib/highlight.tsx | 2 + src/lib/lang/rego.json | 128 + src/lib/lang/swift.json | 4239 +++++++++++++++++ 81 files changed, 4559 insertions(+), 184 deletions(-) create mode 100644 src/lib/lang/rego.json create mode 100644 src/lib/lang/swift.json diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index f5569465..27f14370 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -48,10 +48,17 @@ const Page = async ({ params }: PageProps) => { const { default: Post } = mdxModule; const lastUpdated = getLastUpdated(mdxModule); + // 1. Look for a `parentTitle` exported from the .mdx file first. + const mdxParentTitle = mdxModule.parentTitle || null; + + // 2. Original logic: Get parentTitle from the menu system. const pathname = `/${qualifiedSlug}`; const menuData = getMenuItem('documentation'); const ancestors = getActiveAncestors(pathname, [menuData]); - const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; + const menuParentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; + + // 3. Prioritize the title from the MDX file, then fall back to the menu. + const parentTitle = mdxParentTitle || menuParentTitle; return ( diff --git a/src/content/artifact-management/package-upload.mdx b/src/content/artifact-management/package-upload.mdx index 3862653c..f23ba924 100644 --- a/src/content/artifact-management/package-upload.mdx +++ b/src/content/artifact-management/package-upload.mdx @@ -30,7 +30,7 @@ In the following examples: | API-KEY | Your Cloudsmith API Key | | PACKAGE_NAME | The name of your package | | PACKAGE_VERSION | The version number of your package | -| FORMAT | The package formats e.g. Nuget, Cargo, Raw | +| FORMAT | The package formats e.g. NuGet, Cargo, Raw | | DISTRO | Linux distribution | diff --git a/src/content/authentication/openid-connect.mdx b/src/content/authentication/openid-connect.mdx index 4abf26bc..8b48dff8 100644 --- a/src/content/authentication/openid-connect.mdx +++ b/src/content/authentication/openid-connect.mdx @@ -177,7 +177,6 @@ pipelines: #### GitHub Actions Example ```yaml - name: OpenID Connect Demo run-name: ${{ github.actor }} is testing out GitHub Actions with OpenID Connect 🚀 on: [push] diff --git a/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx b/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx index e90c8a83..4f632481 100644 --- a/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx +++ b/src/content/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions.mdx @@ -3,12 +3,11 @@ import { BlockImage, Note } from '@/components' import imgdcf4d99_Group_2551 from './images/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions/dcf4d99-Group_2551.png' import oidc_form from './images/oidc_form.png'; - # Setup GitHub Actions to authenticate to Cloudsmith using OIDC -Our workflow using GitHub Actions and Cloudsmith with OIDC will push a package to Cloudsmith from Github Actions using OIDC to authenticate. +Our workflow using GitHub Actions and Cloudsmith with OIDC will push a package to Cloudsmith from GitHub Actions using OIDC to authenticate. -## How does OIDC work with Github Actions and Cloudsmith? +## How does OIDC work with GitHub Actions and Cloudsmith? The following diagram gives an overview of how GitHub's OIDC provider integrates with your workflows and Cloudsmith: @@ -16,11 +15,11 @@ The following diagram gives an overview of how GitHub's OIDC provider integrates ### OIDC flow overview -1. **Request token**: Github Actions Worker initiates the workflow by requesting a token from the GitHub OIDC service to authenticate with Cloudsmith. +1. **Request token**: GitHub Actions Worker initiates the workflow by requesting a token from the GitHub OIDC service to authenticate with Cloudsmith. 2. **Return token**: GitHub OIDC service receives the token request. After verification and validation, it generates a JWT token. The GitHub OIDC service and the GitHub Actions Worker have implicit trust, allowing for this token exchange. 3. **Present token**: GitHub Actions Worker presents a JWT token to Cloudsmith for access to resources. -4. **Verify token**: Cloudsmith verifies the JWT token with the GithHub OIDC service to ensure its authenticity and validity. This step includes verifying claims. -5. **Return new token**: Upon successful validation, Cloudsmith issues a short-lived access token to the GitHub Actions Worker, granting access to Cloudsmith's resources for around 90 mins to cover the duration of the job. +4. **Verify token**: Cloudsmith verifies the JWT token with the GitHub OIDC service to ensure its authenticity and validity. This step includes verifying claims. +5. **Return new token**: Upon successful validation, Cloudsmith issues a short-lived access token to the GitHub Actions Worker, granting access to Cloudsmith's resources for around 90 minutes to cover the duration of the job. ## Step-by-Step Guide @@ -42,8 +41,10 @@ NOTE: Manager or Owner role required in your Cloudsmith workspace to configure O 1. Navigate to the OIDC Provider Settings at: https://app.cloudsmith.com/{WORKSPACE}/settings/authentication/openid 2. Click "Create" to open the Edit Provider Settings form. 3. Fill in the OIDC form: - - **Provider Name**: set a unique name for the provider. - - **Provider URL**: `https://token.actions.githubusercontent.com`. + - **Provider Name**: Set a unique name for the provider. + - **Provider URL**: This URL must precisely match the iss (issuer) claim from the OIDC token generated by your GitHub environment: + - **Standard GitHub.com**: The URL is typically `https://token.actions.githubusercontent.com`. + - **GitHub Enterprise Cloud**: The URL will include your enterprise name, like `https://token.actions.githubusercontent.com/YOUR_ENTERPRISE_NAME`. - **Required OpenID Token Claims**: To validate the token, the cloud provider checks if the OIDC token's subject and other claims are a match for the conditions that were preconfigured on the cloud role's OIDC trust definition. - **Service Accounts**: Select the service accounts that can be authenticated with this provider and claim combination. @@ -55,7 +56,7 @@ NOTE: Manager or Owner role required in your Cloudsmith workspace to configure O ### 3. Update your GitHub Actions for OIDC -Cloudsmith provides a native GitHub action integration, that avoids a manualexchange of tokens. +Cloudsmith provides a native GitHub action integration, that avoids a manual exchange of tokens. 1. **Add permissions**: In your GitHub Actions YAML file, add the permissions block to allow the workflow to request an OIDC token. @@ -71,7 +72,7 @@ permissions: - name: Authenticate with Cloudsmith via OIDC uses: cloudsmith-io/cloudsmith-cli-action@v1.0.3 with: - oidc-namespace: 'your-workspace' # Your Cloudsmith workspace + oidc-namespace: 'your-workspace' # Your Cloudsmith Workspace oidc-service-slug: 'your-service-account-slug' # Your Cloudsmith service account slug oidc-auth-only: 'true' # Ensures the action only performs authentication ``` @@ -107,18 +108,8 @@ jobs: with: oidc-namespace: 'WORKSPACE' # Replace with your Cloudsmith workspace oidc-service-slug: 'SERVICE_ACCOUNT_SLUG' # Replace with your service account slug - oidc-auth-only: 'true' - - # The step above configures the CLOUDSMITH_API_KEY for subsequent steps. - - name: Cloudsmith Push Debian Package - uses: cloudsmith-io/action@v1 - with: - command: 'push' - format: 'deb' - owner: 'WORKSPACE' # Your Cloudsmith account name (namespace) - repo: 'DEMO_REPOSITORY' # Your Cloudsmith Repository name (slug) - distro: 'debian' - release: 'buster' - republish: 'true' - file: 'test/cloudsmith-debian-example-1.0.0-amd64.deb' + oidc-auth-only: 'false' + - name: Push package to Cloudsmith + run: | + cloudsmith push deb WORKSPACE/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.deb ``` \ No newline at end of file diff --git a/src/content/formats/alpine-repository.mdx b/src/content/formats/alpine-repository.mdx index 8106ec52..286ab690 100644 --- a/src/content/formats/alpine-repository.mdx +++ b/src/content/formats/alpine-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Alpine Repository diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index 7ef73f13..f8801521 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -1,4 +1,5 @@ import { Note, Video, BlockImage } from '@/components'; +export const parentTitle = 'Supported Formats'; # Cargo Registry diff --git a/src/content/formats/chocolatey-repository.mdx b/src/content/formats/chocolatey-repository.mdx index b8348f38..20e81fba 100644 --- a/src/content/formats/chocolatey-repository.mdx +++ b/src/content/formats/chocolatey-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "Chocolatey Repository" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # Chocolatey Repository @@ -83,7 +80,7 @@ choco install packageName -dv -s . You can upload your package using the Chocolatey CLI. -You can publish a nupkg file that you've generated from your project, using [nuget](https://www.nuget.org/downloads). +You can publish a nupkg file that you've generated from your project, using [NuGet](https://www.nuget.org/downloads). Then you can publish your package using: diff --git a/src/content/formats/cocoapods-repository.mdx b/src/content/formats/cocoapods-repository.mdx index 3dcfe389..088767b6 100644 --- a/src/content/formats/cocoapods-repository.mdx +++ b/src/content/formats/cocoapods-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # CocoaPods Repository diff --git a/src/content/formats/composer-repository.mdx b/src/content/formats/composer-repository.mdx index bcfce4d1..0eb00bd7 100644 --- a/src/content/formats/composer-repository.mdx +++ b/src/content/formats/composer-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Composer Repository diff --git a/src/content/formats/conan-repository.mdx b/src/content/formats/conan-repository.mdx index bb839f75..86e5a901 100644 --- a/src/content/formats/conan-repository.mdx +++ b/src/content/formats/conan-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "Conan Repository" ---- - import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Conan Repository diff --git a/src/content/formats/conda-repository.mdx b/src/content/formats/conda-repository.mdx index 02ed47b2..dfb230d3 100644 --- a/src/content/formats/conda-repository.mdx +++ b/src/content/formats/conda-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "Conda Repository" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # Conda Repository diff --git a/src/content/formats/cran-repository.mdx b/src/content/formats/cran-repository.mdx index 1627864d..4178c832 100644 --- a/src/content/formats/cran-repository.mdx +++ b/src/content/formats/cran-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # CRAN Repository diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index a145af9a..5a45f379 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Dart Repository diff --git a/src/content/formats/debian-repository.mdx b/src/content/formats/debian-repository.mdx index dc7047d7..bf029cdc 100644 --- a/src/content/formats/debian-repository.mdx +++ b/src/content/formats/debian-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Debian Repository diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index fd15c139..a646df29 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Docker Registry diff --git a/src/content/formats/go-registry.mdx b/src/content/formats/go-registry.mdx index f1fa3ba6..db0cfb50 100644 --- a/src/content/formats/go-registry.mdx +++ b/src/content/formats/go-registry.mdx @@ -1,4 +1,5 @@ import { Note, Video, BlockImage } from '@/components'; +export const parentTitle = 'Supported Formats'; import go_upstream from './images/go-registry/go_upstream.png'; diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index 09ba7309..c20af3d4 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -1,10 +1,5 @@ ---- -title: "Gradle Repository" -slug: "gradle-repository" - ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # Gradle Repository diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index 1ff5611d..4317551e 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Helm Chart Repository diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index 6cf9e301..fd1da8a2 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "Hex Repository" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # Hex Repository diff --git a/src/content/formats/luarocks-repository.mdx b/src/content/formats/luarocks-repository.mdx index 7feff46b..b130b57c 100644 --- a/src/content/formats/luarocks-repository.mdx +++ b/src/content/formats/luarocks-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # LuaRocks Repository diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index c56f7816..b1121e3a 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -1,5 +1,5 @@ - import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Maven Repository diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index 88687ca0..b7f684b7 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -1,4 +1,5 @@ import { Note, BlockImage, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # npm Registry diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index bef533f9..8b2c30bc 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -1,7 +1,5 @@ ---- -title: "NuGet Feed" ---- import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # NuGet Feed diff --git a/src/content/formats/nuget-symbol-server.mdx b/src/content/formats/nuget-symbol-server.mdx index 31ba73ab..bd45cb93 100644 --- a/src/content/formats/nuget-symbol-server.mdx +++ b/src/content/formats/nuget-symbol-server.mdx @@ -1,7 +1,6 @@ ---- -title: "NuGet Symbol Server" ---- import { Note, BlockImage } from '@/components'; +export const parentTitle = 'Supported Formats'; + import vsToolsOptionsImage from './images/nuget-symbol-server/07b2a66-image.png'; import debuggingSymbols from './images/nuget-symbol-server/dfb62d0-image.png'; import credentialsImage from './images/nuget-symbol-server/0c35b25-image.png'; diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index ff07e5b8..cae58c19 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "OCI Repository" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # OCI Repository diff --git a/src/content/formats/p2-repository.mdx b/src/content/formats/p2-repository.mdx index 4de16b89..713eb6e2 100644 --- a/src/content/formats/p2-repository.mdx +++ b/src/content/formats/p2-repository.mdx @@ -1,10 +1,5 @@ ---- -title: "P2 Repository" - -excerpt: "Cloudsmith provides public & private repositories for Eclipse/Equinox P2" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # P2 Repository diff --git a/src/content/formats/powershell-modules-repository.mdx b/src/content/formats/powershell-modules-repository.mdx index 1747e98c..12324b7e 100644 --- a/src/content/formats/powershell-modules-repository.mdx +++ b/src/content/formats/powershell-modules-repository.mdx @@ -1,7 +1,5 @@ ---- -title: "PowerShell Modules Repository" ---- import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # PowerShell Modules Repository diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index cd0e7081..1af27c14 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video, BlockImage } from '@/components'; +export const parentTitle = 'Supported Formats'; import uv_terminal from './images/python/uv_terminal.png'; import uv_dependencies from './images/python/uv_dependencies.png'; diff --git a/src/content/formats/raw-repository.mdx b/src/content/formats/raw-repository.mdx index 49608a78..8bf158de 100644 --- a/src/content/formats/raw-repository.mdx +++ b/src/content/formats/raw-repository.mdx @@ -1,7 +1,6 @@ ---- -title: "Raw Repository" ---- import { Note, BlockImage, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; + import downloadPackageImage from './images/raw-repository/717e936e27b22feaee711ad6a412d1fade259c5768a4860d33ae5781152f8b68-download1.png'; import privateRepositoryUsePackageImage from './images/raw-repository/504971117e99871f745b0b730bb4a58894ae44fa903477f2cb7a0cde5f4b207c-Screenshot15.png'; import downloadAuthenticationTypesImage from './images/raw-repository/24ad1b20aff064e9bedd257dc6540675e6404f1ac4b8fd41ba5a3c0598fe70c2-Screenshot16.png'; diff --git a/src/content/formats/redhat-repository.mdx b/src/content/formats/redhat-repository.mdx index 7e7fb041..c5cb63a8 100644 --- a/src/content/formats/redhat-repository.mdx +++ b/src/content/formats/redhat-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # RedHat Repository diff --git a/src/content/formats/ruby-repository.mdx b/src/content/formats/ruby-repository.mdx index 4c5ba01a..3e0cfe86 100644 --- a/src/content/formats/ruby-repository.mdx +++ b/src/content/formats/ruby-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Ruby Repository diff --git a/src/content/formats/sbt-repository.mdx b/src/content/formats/sbt-repository.mdx index 95b03695..1615eb7d 100644 --- a/src/content/formats/sbt-repository.mdx +++ b/src/content/formats/sbt-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "sbt Repository" ---- - import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # sbt Repository @@ -183,7 +180,7 @@ credentials += Credentials(Path.userHome / ".sbt" / ".credentials") ### Specifying Dependencies -After the repository is added to the `build.sbt` file, and your credentials are added to the `/.sbt/.credentials` file (required for private repositories if using HTTP Basic Authentication), all that is left is to [specify the dependency](https://www.scala-sbt.org/1.0/docs/Library-Dependencies.html) in the dependencies section of the project `build.sbt` file. +After the repository is added to the `build.sbt` file, and your credentials are added to the `/.sbt/.credentials` file (required for private repositories if using HTTP Basic Authentication), all that is left is to [specify the dependency](https://www.scala-sbt.org/1.x/docs/Library-Dependencies.html) in the dependencies section of the project `build.sbt` file. ```scala libraryDependencies += "GROUP_ID" % "ARTIFACT_ID" % "PACKAGE_VERSION" diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index 86038cc9..50a2e958 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -1,5 +1,6 @@ import { Note, BlockImage } from '@/components'; +export const parentTitle = 'Supported Formats'; import swift from './images/swift/swift.png'; @@ -249,7 +250,7 @@ Package dependencies are declared in the `Package.swift` file. Edit the `Package The following is an example showing configured dependencies and targets sections in a `Package.swift` file to include Alamofire as a dependency: -``` +```swift // swift-tools-version: 5.9 import PackageDescription diff --git a/src/content/formats/terraform-modules-repository.mdx b/src/content/formats/terraform-modules-repository.mdx index ff1995c2..2c015d3d 100644 --- a/src/content/formats/terraform-modules-repository.mdx +++ b/src/content/formats/terraform-modules-repository.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Terraform Modules Repository diff --git a/src/content/formats/unity-registry.mdx b/src/content/formats/unity-registry.mdx index 4886adac..3231b70d 100644 --- a/src/content/formats/unity-registry.mdx +++ b/src/content/formats/unity-registry.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Supported Formats'; # Unity Registry diff --git a/src/content/formats/vagrant-repository.mdx b/src/content/formats/vagrant-repository.mdx index 97a81dd6..b4fdc7a1 100644 --- a/src/content/formats/vagrant-repository.mdx +++ b/src/content/formats/vagrant-repository.mdx @@ -1,8 +1,5 @@ ---- -title: "Vagrant Repository" ---- - import { Note } from '@/components'; +export const parentTitle = 'Supported Formats'; # Vagrant Repository diff --git a/src/content/getting-started/common-use-cases.mdx b/src/content/getting-started/common-use-cases.mdx index ac109ecb..b67a91b3 100644 --- a/src/content/getting-started/common-use-cases.mdx +++ b/src/content/getting-started/common-use-cases.mdx @@ -4,16 +4,11 @@ import { Card, Flex } from '@/components'; This section outlines the primary and supporting use cases for Cloudsmith, detailing the benefits and key features for each: -- [Artifact Management for the Software Development Lifecycle (SDLC)](/getting-started/common-use-cases#artifact-management-for-the-software-development-lifecycle-sdlc) -- [Software Distribution](/getting-started/common-use-cases#software-distribution) -- [Software Supply Chain Security](/getting-started/common-use-cases#software-supply-chain-security) -- [Software Supply Chain Observability](/getting-started/common-use-cases#software-supply-chain-observability) - 0Rux)u#=Ebm6MPl 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ℑ;0LbumjKgssMrlw< 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 }t8bcC`7+ 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%0AX(ppp%&4u;Bz+SJ_yGyp|2FB7SyoDKzcMeM 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

    *V{# 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≺ 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�<(g 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 E58BYhhX4Qo diff --git a/src/content/guides/setting-up-your-cloudsmith-account-and-workspace.mdx b/src/content/guides/setting-up-your-cloudsmith-account-and-workspace.mdx index f1dff5cf..c19af862 100644 --- a/src/content/guides/setting-up-your-cloudsmith-account-and-workspace.mdx +++ b/src/content/guides/setting-up-your-cloudsmith-account-and-workspace.mdx @@ -112,7 +112,7 @@ There are a number of ways to authenticate these actions, and for this example w Before a package can be added to the repository from an enabled Upstream, an personal API key must be generated. -### To generate an API Key: +### To generate an API Key 1. Select your User Profile icon in the top right hand corner, and select "Personal API Keys" from the menu: diff --git a/src/content/integrations/integrating-with-aikido.mdx b/src/content/integrations/integrating-with-aikido.mdx index df2745fe..65ad791a 100644 --- a/src/content/integrations/integrating-with-aikido.mdx +++ b/src/content/integrations/integrating-with-aikido.mdx @@ -1,4 +1,5 @@ import { Video, BlockImage, Note } from '@/components' +export const parentTitle = 'Integrations'; import aikido_auth from './images/aikido/aikido_auth.png'; import aikido_linkImages from './images/aikido/aikido_linkImages.png'; @@ -42,7 +43,7 @@ The Cloudsmith-Aikido integration provides the following capabilities: 📘 Ensure you use API keys or Entitlement token with appropriate permissions for accessing and scanning container images. -### Step 3: Select Container Repositories: +### Step 3: Select Container Repositories 1. Once authenticated, select the Cloudsmith container repositories that you’d like to monitor. 2. (Optional) Link each container images to its relevant code repository for better analysis and deduplication. diff --git a/src/content/integrations/integrating-with-ansible.mdx b/src/content/integrations/integrating-with-ansible.mdx index b5c6c878..8a1d28cd 100644 --- a/src/content/integrations/integrating-with-ansible.mdx +++ b/src/content/integrations/integrating-with-ansible.mdx @@ -1,4 +1,5 @@ import { Video } from '@/components' +export const parentTitle = 'Integrations'; # Integrating Ansible diff --git a/src/content/integrations/integrating-with-aws-codebuild.mdx b/src/content/integrations/integrating-with-aws-codebuild.mdx index 819942f3..a2f3e456 100644 --- a/src/content/integrations/integrating-with-aws-codebuild.mdx +++ b/src/content/integrations/integrating-with-aws-codebuild.mdx @@ -1,4 +1,6 @@ import { Note, BlockImage, Video } from '@/components'; +export const parentTitle = 'Integrations'; + import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; # Integrating AWS CodeBuild diff --git a/src/content/integrations/integrating-with-azure-devops.mdx b/src/content/integrations/integrating-with-azure-devops.mdx index c75a3882..fb7ad68e 100644 --- a/src/content/integrations/integrating-with-azure-devops.mdx +++ b/src/content/integrations/integrating-with-azure-devops.mdx @@ -1,10 +1,11 @@ -# Azure DevOps +import { BlockImage, Note } from '@/components'; +export const parentTitle = 'Integrations'; -import { BlockImage } from '@/components'; -import { Note } from '@/components'; import azureDevopsProviderSettings from './images/azure-devops/azure-devops_config.png'; import azureDevopsCLIinstall from './images/azure-devops/azure-devops_CLI_install.png'; +# Azure DevOps + _Effortlessly integrate Cloudsmith with Azure DevOps to securely manage artifacts and automate deployments._ ## Introduction diff --git a/src/content/integrations/integrating-with-bitbucket-pipelines.mdx b/src/content/integrations/integrating-with-bitbucket-pipelines.mdx index 3e4c6c95..9e91aa28 100644 --- a/src/content/integrations/integrating-with-bitbucket-pipelines.mdx +++ b/src/content/integrations/integrating-with-bitbucket-pipelines.mdx @@ -1,4 +1,5 @@ import { Note, BlockImage, Card } from '@/components'; +export const parentTitle = 'Integrations'; import bitbucketPipeCloudsmithPublishImage from './images/bitbucket/bitbucket-pipe-cloudsmith-publish.png' import bitbucketCloudsmithApiKeyImage from './images/bitbucket/bitbucket_cloudsmith_api_key.png' diff --git a/src/content/integrations/integrating-with-buildkite.mdx b/src/content/integrations/integrating-with-buildkite.mdx index 3a8d8e40..547697c2 100644 --- a/src/content/integrations/integrating-with-buildkite.mdx +++ b/src/content/integrations/integrating-with-buildkite.mdx @@ -1,5 +1,7 @@ import { Note, BlockImage, Video } from '@/components'; import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; + import preBuildStepImage from './images/buildkite/preBuildStep.png'; import buildAndPushPackageStepImage from './images/buildkite/buildAndPushPackageStep.png'; diff --git a/src/content/integrations/integrating-with-chainguard-images.mdx b/src/content/integrations/integrating-with-chainguard-images.mdx index a08fb770..ae9dc25d 100644 --- a/src/content/integrations/integrating-with-chainguard-images.mdx +++ b/src/content/integrations/integrating-with-chainguard-images.mdx @@ -1,3 +1,5 @@ +export const parentTitle = 'Integrations'; + # Integrating with Chainguard Images How to integrate with Chainguard Images using Cloudsmith diff --git a/src/content/integrations/integrating-with-codefresh.mdx b/src/content/integrations/integrating-with-codefresh.mdx index 01d595ec..509279a4 100644 --- a/src/content/integrations/integrating-with-codefresh.mdx +++ b/src/content/integrations/integrating-with-codefresh.mdx @@ -1,4 +1,5 @@ import { Note } from '@/components'; +export const parentTitle = 'Integrations'; # Integrating Codefresh @@ -10,7 +11,7 @@ How to integrate Codefresh CI/CD with Cloudsmith Cloudsmith can seamlessly work with Codefresh to authenticate, consume, and publish artifacts from Cloudsmith in your Codefresh CI/CD pipelines. -## Prerequisites: +## Prerequisites - **Cloudsmith Account**: Ensure you have an active Cloudsmith account with a repository where your artifacts will be stored. - **Codefresh Account**: Ensure you have an active Codefresh account. diff --git a/src/content/integrations/integrating-with-datadog.mdx b/src/content/integrations/integrating-with-datadog.mdx index 8ac6e69b..c66f4d35 100644 --- a/src/content/integrations/integrating-with-datadog.mdx +++ b/src/content/integrations/integrating-with-datadog.mdx @@ -1,3 +1,5 @@ +export const parentTitle = 'Integrations'; + # Datadog import { BlockImage } from '@/components'; diff --git a/src/content/integrations/integrating-with-dependabot.mdx b/src/content/integrations/integrating-with-dependabot.mdx index 6d18f55e..2c70230c 100644 --- a/src/content/integrations/integrating-with-dependabot.mdx +++ b/src/content/integrations/integrating-with-dependabot.mdx @@ -1,4 +1,5 @@ import { BlockImage } from '@/components'; +export const parentTitle = 'Integrations'; import dependabotSecretsImage from './images/dependabot/dependabot-secrets.png'; import enableDependabotImage from './images/dependabot/enable-dependabot.png'; diff --git a/src/content/integrations/integrating-with-docker-hub.mdx b/src/content/integrations/integrating-with-docker-hub.mdx index 50d5ce76..40b30002 100644 --- a/src/content/integrations/integrating-with-docker-hub.mdx +++ b/src/content/integrations/integrating-with-docker-hub.mdx @@ -1,4 +1,6 @@ import { BlockImage } from '@/components'; +export const parentTitle = 'Integrations'; + import cloudsmithDemoRepoUpstreamsImage from './images/docker-hub/cloudsmithDemoRepoUpstreams.png'; import cloudsmithRepoAddCredentialsImage from './images/docker-hub/cloudsmithRepoAddCredentials.png'; diff --git a/src/content/integrations/integrating-with-drone-ci.mdx b/src/content/integrations/integrating-with-drone-ci.mdx index 45493ed4..6ee2eb24 100644 --- a/src/content/integrations/integrating-with-drone-ci.mdx +++ b/src/content/integrations/integrating-with-drone-ci.mdx @@ -1,4 +1,5 @@ import { Note, Video } from '@/components'; +export const parentTitle = 'Integrations'; # Integrating with Drone CI diff --git a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx index 1fa34b49..b20dd77f 100644 --- a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx +++ b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx @@ -1,4 +1,5 @@ import { Note, BlockImage, Card, Video } from '@/components'; +export const parentTitle = 'Integrations'; # Integrating GCP CloudBuild diff --git a/src/content/integrations/integrating-with-github-actions.mdx b/src/content/integrations/integrating-with-github-actions.mdx index 9e9c1f2f..a5bd2a98 100644 --- a/src/content/integrations/integrating-with-github-actions.mdx +++ b/src/content/integrations/integrating-with-github-actions.mdx @@ -1,5 +1,6 @@ import { Note, BlockImage, Card, Video } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; # Integrating GitHub Actions diff --git a/src/content/integrations/integrating-with-gitlab-cicd.mdx b/src/content/integrations/integrating-with-gitlab-cicd.mdx index 75092540..0f947ed1 100644 --- a/src/content/integrations/integrating-with-gitlab-cicd.mdx +++ b/src/content/integrations/integrating-with-gitlab-cicd.mdx @@ -1,5 +1,6 @@ import { Note } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; # GitLab CI/CD diff --git a/src/content/integrations/integrating-with-harness.mdx b/src/content/integrations/integrating-with-harness.mdx index fc11828d..3f5695e0 100644 --- a/src/content/integrations/integrating-with-harness.mdx +++ b/src/content/integrations/integrating-with-harness.mdx @@ -1,4 +1,6 @@ import { BlockImage, Video } from '@/components'; +export const parentTitle = 'Integrations'; + import harnessArtifactsServerSetupImage from './images/harness/harness-artifact-server-setup.png'; import harnessServiceArtifactSourceImages from './images/harness/harness-service-artifact-source.png'; diff --git a/src/content/integrations/integrating-with-jenkins.mdx b/src/content/integrations/integrating-with-jenkins.mdx index 12275c67..c435ede4 100644 --- a/src/content/integrations/integrating-with-jenkins.mdx +++ b/src/content/integrations/integrating-with-jenkins.mdx @@ -1,6 +1,7 @@ -# Integrating Jenkins - import { Note } from '@/components'; +export const parentTitle = 'Integrations'; + +# Integrating Jenkins How to integrate Jenkins with Cloudsmith @@ -8,7 +9,6 @@ How to integrate Jenkins with Cloudsmith These instructions are generic examples. Cloudsmith provides contextual setup details for Jenkins, with copy and paste snippets (with your namespace/repo pre-configured) in the documentation within a repository. - ## API Key Configuration If you haven't already done so you'll need to expose your Cloudsmith [API Key](https://app.cloudsmith.com/settings/api-keys) within Jenkins. We recommend using the [credentials plugin](https://plugins.jenkins.io/credentials/) then injecting the `CLOUDSMITH_API_KEY` environment variable into your build jobs. diff --git a/src/content/integrations/integrating-with-microsoft-teams.mdx b/src/content/integrations/integrating-with-microsoft-teams.mdx index ab3f07f5..1c6e92d6 100644 --- a/src/content/integrations/integrating-with-microsoft-teams.mdx +++ b/src/content/integrations/integrating-with-microsoft-teams.mdx @@ -1,4 +1,6 @@ import { Note, BlockImage } from '@/components'; +export const parentTitle = 'Integrations'; + import cloudsmithWebhooksExampleImage from './images/microsoft-teams/cloudsmithWebhooksExample.png'; # Integrating Microsoft Teams diff --git a/src/content/integrations/integrating-with-octopus-deploy.mdx b/src/content/integrations/integrating-with-octopus-deploy.mdx index 039505ca..b0aad7f0 100644 --- a/src/content/integrations/integrating-with-octopus-deploy.mdx +++ b/src/content/integrations/integrating-with-octopus-deploy.mdx @@ -1,7 +1,6 @@ -# Integrating Octopus Deploy +import { BlockImage, Note } from '@/components'; +export const parentTitle = 'Integrations'; -import { BlockImage } from '@/components'; -import { Note } from '@/components'; import screenshot6d9483c from './images/octopus-deploy/6d9483c-screenshot.png'; import screenshot6eba1c8 from './images/octopus-deploy/6eba1c8-screenshot.png'; import screenshot9d80006 from './images/octopus-deploy/9d80006-screenshot.png'; @@ -14,7 +13,9 @@ import screenshotbb63608 from './images/octopus-deploy/bb63608-screenshot.png'; import screenshotc8bc307 from './images/octopus-deploy/c8bc307-screenshot.png'; import screenshotff13d50 from './images/octopus-deploy/ff13d50-screenshot.png'; -How to integrate Octopus Deploy with Cloudsmith +# Integrating Octopus Deploy + +_How to integrate Octopus Deploy with Cloudsmith_ [Octopus Deploy](https://octopus.com/) is a deployment tool. It takes the packages and artifacts generated by your build server and deploys them to various targets, be it Windows, Linux, Azure, AWS, or Kubernetes, in a safe and consistent process. diff --git a/src/content/integrations/integrating-with-puppet.mdx b/src/content/integrations/integrating-with-puppet.mdx index 6652092f..91499308 100644 --- a/src/content/integrations/integrating-with-puppet.mdx +++ b/src/content/integrations/integrating-with-puppet.mdx @@ -1,4 +1,5 @@ import { Video } from '@/components' +export const parentTitle = 'Integrations'; # Integrating Puppet diff --git a/src/content/integrations/integrating-with-renovate.mdx b/src/content/integrations/integrating-with-renovate.mdx index 2ea4906d..048cf653 100644 --- a/src/content/integrations/integrating-with-renovate.mdx +++ b/src/content/integrations/integrating-with-renovate.mdx @@ -1,4 +1,5 @@ import { BlockImage, Note } from '@/components' +export const parentTitle = 'Integrations'; import set_secret from './images/renovate/set_secret.png'; import host_rule from './images/renovate/host_rule.png'; diff --git a/src/content/integrations/integrating-with-roadie.mdx b/src/content/integrations/integrating-with-roadie.mdx index d6ac035d..3aa42584 100644 --- a/src/content/integrations/integrating-with-roadie.mdx +++ b/src/content/integrations/integrating-with-roadie.mdx @@ -1,4 +1,5 @@ import { BlockImage } from '@/components'; +export const parentTitle = 'Integrations'; import auditLogCardImage from './images/roadie/cloudsmith-audit-log-card.png' import quotaCardImage from './images/roadie/cloudsmith-quota-card.png' diff --git a/src/content/integrations/integrating-with-semaphore-ci.mdx b/src/content/integrations/integrating-with-semaphore-ci.mdx index 41442e95..5749e7cc 100644 --- a/src/content/integrations/integrating-with-semaphore-ci.mdx +++ b/src/content/integrations/integrating-with-semaphore-ci.mdx @@ -1,9 +1,9 @@ import { Note, BlockImage, Video } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; import semaphoreSecretsImage from './images/semaphore-ci/73f8db2-semaphore-secrets.png'; - # Integrating Semaphore CI How to integrate Semaphore CI with Cloudsmith diff --git a/src/content/integrations/integrating-with-slack.mdx b/src/content/integrations/integrating-with-slack.mdx index 3def5df9..66d36a89 100644 --- a/src/content/integrations/integrating-with-slack.mdx +++ b/src/content/integrations/integrating-with-slack.mdx @@ -1,4 +1,6 @@ import { BlockImage, Note } from '@/components'; +export const parentTitle = 'Integrations'; + import slackReadyImage from './images/slack/9af567f-ready.png'; # Integrating Slack diff --git a/src/content/integrations/integrating-with-teamcity.mdx b/src/content/integrations/integrating-with-teamcity.mdx index 410b900f..c80edbe3 100644 --- a/src/content/integrations/integrating-with-teamcity.mdx +++ b/src/content/integrations/integrating-with-teamcity.mdx @@ -1,6 +1,7 @@ import { BlockImage, Note } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; import teamCityParameters from './images/teamcity/teamCityParameters.png'; import teamCityBuildConfig from './images/teamcity/teamCityBuildConfig.png'; diff --git a/src/content/integrations/integrating-with-terraform.mdx b/src/content/integrations/integrating-with-terraform.mdx index bba62e7c..3fd0f3b9 100644 --- a/src/content/integrations/integrating-with-terraform.mdx +++ b/src/content/integrations/integrating-with-terraform.mdx @@ -1,4 +1,5 @@ import { Card, Video } from '@/components'; +export const parentTitle = 'Integrations'; # Integrating Terraform diff --git a/src/content/integrations/integrating-with-travis-ci.mdx b/src/content/integrations/integrating-with-travis-ci.mdx index 449bc633..ed6a9490 100644 --- a/src/content/integrations/integrating-with-travis-ci.mdx +++ b/src/content/integrations/integrating-with-travis-ci.mdx @@ -1,3 +1,5 @@ +export const parentTitle = 'Integrations'; + # Integrating Travis-CI How to integrate Travis-CI with Cloudsmith diff --git a/src/content/integrations/integrating-with-zapier.mdx b/src/content/integrations/integrating-with-zapier.mdx index 49432181..4070188a 100644 --- a/src/content/integrations/integrating-with-zapier.mdx +++ b/src/content/integrations/integrating-with-zapier.mdx @@ -1,5 +1,7 @@ import { Note, BlockImage, Card, Video } from '@/components'; import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; +export const parentTitle = 'Integrations'; + import zapierCsmApiKeyImage from './images/zapier/zapier_csm_api_key.png' import zapierCreateTokenImage from './images/zapier/zapier_create_token.png' import zapierDisableTokenImage from './images/zapier/zapier_disable_token.png' diff --git a/src/content/integrations/upload-via-postman.mdx b/src/content/integrations/upload-via-postman.mdx index 3b4dd6ba..e8068da4 100644 --- a/src/content/integrations/upload-via-postman.mdx +++ b/src/content/integrations/upload-via-postman.mdx @@ -1,5 +1,7 @@ import { BlockImage } from '@/components'; +export const parentTitle = 'Integrations'; + import postmanPutRequestImage from './images/postman/postman-put-request.png' import postmanPostRawPackageImage from './images/postman/postman-post-raw-package.png'; diff --git a/src/content/logs-and-observability/client-statistics.mdx b/src/content/logs-and-observability/client-statistics.mdx index 9853b073..e5487df2 100644 --- a/src/content/logs-and-observability/client-statistics.mdx +++ b/src/content/logs-and-observability/client-statistics.mdx @@ -74,7 +74,7 @@ Basically, aggregate allows you to decide_how you want to quantify or summarize - **Date Selection:** A configurable date range picker (e.g., "10 Jun 2024 - 10 Jun 2025") allows for specific data window definition. - **Interval:** Data can be viewed by different time intervals, such as "Month" or other available options. In order words, this is the _bucket size for which the "Aggregate" calculation is performed_. -#### **Filtering Options:** A set of filters allows for refinement of displayed data based on specific criteria: +#### **Filtering Options:** A set of filters allows for refinement of displayed data based on specific criteria - **Package format:** Filters by package type (e.g., npm, Maven, Docker). - **Repository type:** Filters by repository classification (e.g., private, public). diff --git a/src/content/menu.json b/src/content/menu.json index 9a44d8be..38992683 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -203,6 +203,10 @@ { "title": "Package Groups", "path": "/artifact-management/package-groups" + }, + { + "title": "Troubleshooting", + "path": "/troubleshooting" } ] }, diff --git a/src/content/migrating-to-cloudsmith/exporting-nuget.mdx b/src/content/migrating-to-cloudsmith/exporting-nuget.mdx index 460eaa1a..da9b40f7 100644 --- a/src/content/migrating-to-cloudsmith/exporting-nuget.mdx +++ b/src/content/migrating-to-cloudsmith/exporting-nuget.mdx @@ -1,6 +1,6 @@ -# Exporting nuget +# Exporting NuGet -You can download the packages using the native NuGet/Chocolately/Powershell tools or using your package repository-specific tooling like [Export from JFrog Artifactory](/migrating-to-cloudsmith/export-from-jfrog-artifactory). Using package repository-specific tooling may mean that you don't need to disable your upstreams. +You can download the packages using the native NuGet/Chocolately/Powershell tools or using your package repository-specific tooling. Using package repository-specific tooling may mean that you don't need to disable your upstreams. ## NuGet packages bulk Export using Powershell @@ -38,4 +38,4 @@ Find-Module -AllVersions -Source $SOURCE_REPOSITORY -Credential $credential | Fo ## Export Chocolately packages -You can use the chocolately cli to download packages, [here](https://docs.chocolatey.org/en-us/choco/commands/download) +You can use the Chocolately CLI to download packages, [here](https://docs.chocolatey.org/en-us/choco/commands/download) diff --git a/src/content/migrating-to-cloudsmith/import-maven.mdx b/src/content/migrating-to-cloudsmith/import-maven.mdx index 68f88109..246bece4 100644 --- a/src/content/migrating-to-cloudsmith/import-maven.mdx +++ b/src/content/migrating-to-cloudsmith/import-maven.mdx @@ -61,6 +61,22 @@ The following XML is an example of a depandancy in a pom.xml: ### Update your pluginRepository +A repository holds two main kinds of items, called artifacts. The first and most common kind are dependencies, which other projects need to work. The second kind are Maven plugins. Because plugins are a special type of artifact, they can have their own separate repositories. The setup for these `pluginRepositories` is very similar to the setup for regular repositories: + +```xml + + + NAME https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ + + true + + + true + + + +``` + ## Deploy to Cloudsmith Once you have your pom.xml and settings.xml file all updated with the Cloudsmith information, you just need to package your Maven package and deploy it to Cloudsmith. diff --git a/src/content/migrating-to-cloudsmith/import-python.mdx b/src/content/migrating-to-cloudsmith/import-python.mdx index a5f2ff23..3595d113 100644 --- a/src/content/migrating-to-cloudsmith/import-python.mdx +++ b/src/content/migrating-to-cloudsmith/import-python.mdx @@ -92,6 +92,15 @@ sleep(5) for package in packages: os.system(f"cloudsmith push python {org_name}/{repository} {package} --no-wait-for-sync") ``` + +The `main.py` python script above requires several Python packages to function correctly. The `requirements.txt` file below lists all of these required dependencies and their specific versions. + +Before running the main script, create a file named `requirements.txt` in the same directory and paste the following content into it. You can then install all the necessary packages at once by running this command in your terminal: + +```python +pip install -r requirements.txt +``` + ```text requirements.txt autopep8==1.7.0 beautifulsoup4==4.11.1 diff --git a/src/content/policy-management/block-until-scan.mdx b/src/content/policy-management/block-until-scan.mdx index e45d7955..c939640a 100644 --- a/src/content/policy-management/block-until-scan.mdx +++ b/src/content/policy-management/block-until-scan.mdx @@ -20,7 +20,7 @@ Without Block Until Scan, packages could be served to clients *before* all neces Please note that Block Until Scan is a global setting that affects **all repositories** within a given workspace. Its activation will impact all applicable package flows. -### Requirements: +### Requirements - **Active Security Policies**: At least one active classic policy with a _quarantine_ action enabled is required. Without such a policy, the system would have no criteria to evaluate incoming packages. - **Upstream Configuration ('Proxy and Caching' mode)**: the repository must have an upstream configured with ['Proxy and Caching'](/repositories/upstreams#supported-formats) mode enabled. Block Until Scan is explicitly applied to packages undergoing the caching and evaluation pipeline within Cloudsmith. diff --git a/src/content/repositories/create-a-repository.mdx b/src/content/repositories/create-a-repository.mdx index 5e9d1e45..2415faad 100644 --- a/src/content/repositories/create-a-repository.mdx +++ b/src/content/repositories/create-a-repository.mdx @@ -8,9 +8,9 @@ import img_repo_settings from './images/create-a-repository/28d77d9f603f2f346671 You can create a new repository in three ways: -- Via the Cloudsmith CLI -- Via the Cloudsmith web app -- Via the Cloudsmith API +- [Via the Cloudsmith CLI](#via-the-cloudsmith-cli) +- [Via the Cloudsmith web app](#via-the-cloudsmith-web-app) +- [Via the Cloudsmith API](#via-the-cloudsmith-api) ## Via the Cloudsmith CLI diff --git a/src/content/repositories/repository-settings.mdx b/src/content/repositories/repository-settings.mdx index bcbed9db..af102410 100644 --- a/src/content/repositories/repository-settings.mdx +++ b/src/content/repositories/repository-settings.mdx @@ -8,21 +8,19 @@ import img_repo_settingsiPad_Pro_3 from './images/repository-settings/751782b2e9 # Repository Settings - - When changing or modifying any repository settings please be sure to click the blue "Update Settings" button to apply your changes. - - ## Repository Name and Description - - You can change the name or description of a repository at any time. -Please be aware that the name is just a descriptive name, it is not the repository slug / identifier. Changing the name of the repository will not result in breaking any configurations used by client programs or other users. +Please be aware that the name is just a descriptive name, it is not the repository slug / identifier. Changing the name of the repository will not result in breaking any configurations used by client programs or other users. + + To change the repository slug / identifier, see the section on [Potentially Unsafe Actions](/repositories/repository-settings#potentially-unsafe-actions). -*** + + When changing or modifying any repository settings please be sure to click the blue "Update Settings" button to apply your changes. + ## Repository Privileges diff --git a/src/content/repositories/upstreams/index.mdx b/src/content/repositories/upstreams/index.mdx index 0dcc5ddc..e094b4a9 100644 --- a/src/content/repositories/upstreams/index.mdx +++ b/src/content/repositories/upstreams/index.mdx @@ -55,26 +55,26 @@ A good approach when determining what priority to apply to upstreams is to ensur ## Supported Formats -|Format|

    |
    Configurable Proxy
    |
    Caching
    |
    Indexing
    |
    Indexing Type
    |
    Config Reference
    | -|:---|:---|:---|:---|:---|:---|:---| -|[Cargo (Rust)](/formats/cargo-registry)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_cargo_create) | -|[Composer](/formats/composer-repository)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_composer_create) | -|[CRAN](/formats/cran-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_cran_create) | -|[Dart](/formats/dart-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_dart_create) | -|[Debian](/formats/debian-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_deb_create) | -|[Docker](/formats/docker-registry)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_docker_create) | -|[Golang ](/formats/go-registry)| N/A | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_go_create) | -|[Gradle ](/formats/gradle-repository)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[Helm](/formats/helm-chart-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_helm_create) | -|[Hex](/formats/hex-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_hex_create) | -|[Maven](/formats/maven-repository)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[npm](/formats/npm-registry)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_npm_create) | -|[NuGet](/formats/nuget-feed)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_nuget_create) | -|[Python](/formats/python-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_python_create) | -|[RedHat](/formats/redhat-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_rpm_create) | -|[Ruby](/formats/ruby-repository)|N/A| ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_ruby_create) | -|[sbt ](/formats/sbt-repository)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[Swift](/formats/swift-registry)|N/A| ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_swift_create) | +|Format|
    Configurable Proxy
    |
    Caching
    |
    Indexing
    |
    Indexing Type
    |
    API Reference
    | +|:---|:---|:---|:---|:---|:---| +|[Cargo (Rust)](/formats/cargo-registry) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_cargo_create) | +|[Composer](/formats/composer-repository) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_composer_create) | +|[CRAN](/formats/cran-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_cran_create) | +|[Dart](/formats/dart-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_dart_create) | +|[Debian](/formats/debian-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_deb_create) | +|[Docker](/formats/docker-registry) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_docker_create) | +|[Golang ](/formats/go-registry) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_go_create) | +|[Gradle ](/formats/gradle-repository) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | +|[Helm](/formats/helm-chart-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_helm_create) | +|[Hex](/formats/hex-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_hex_create) | +|[Maven](/formats/maven-repository) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | +|[npm](/formats/npm-registry) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_npm_create) | +|[NuGet](/formats/nuget-feed) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_nuget_create) | +|[Python](/formats/python-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_python_create) | +|[RedHat](/formats/redhat-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_rpm_create) | +|[Ruby](/formats/ruby-repository) | ✅ | ✅ | ✅ |
    Ahead-of-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_ruby_create) | +|[sbt ](/formats/sbt-repository) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | +|[Swift](/formats/swift-registry) | ✅ | ✅ | ✅ |
    Just-in-Time
    | [API](https://help.cloudsmith.io/reference/repos_upstream_swift_create) | You can can also create and manage upstreams via the [Cloudsmith API](/api). diff --git a/src/content/supply-chain-security/epm/rego.mdx b/src/content/supply-chain-security/epm/rego.mdx index 7c62ad36..ef3d4f62 100644 --- a/src/content/supply-chain-security/epm/rego.mdx +++ b/src/content/supply-chain-security/epm/rego.mdx @@ -6,7 +6,7 @@ import { BlockImage, Note } from '@/components' **Use case:** Match any package with a certain tag. For example: `ready-for-production`. For this rule, the value of`match` will be `true` when any `tag.name` contains the value provided in `required_tag`. -```text +```rego package cloudsmith required_tag := "ready-for-production" @@ -34,7 +34,7 @@ What It Does: - Ignores certain CVEs, requires CVSS ≥ 7. - Only triggers if vulnerability is older than 30 days. -``` +```rego package cloudsmith max_cvss_score := 7 @@ -88,7 +88,7 @@ What It Does: - Matches packages in repository testing-policy if at least one vulnerability is “fixed,” CVSS > 7, and not in `ignored_cves`. -``` +```rego package cloudsmith max_cvss_score := 7 @@ -127,7 +127,7 @@ What It Does: - Requires package to have a tag containing "internal-only" - Only triggers if a vulnerability is older than 21 days, fixed, and has a CVSS ≥ 7. -``` +```rego package cloudsmith customer_face_tag := "internal-only" @@ -161,36 +161,4 @@ reason contains msg if { ) } -``` - -## Recipe 5: Compare software package license to a list of copyleft licenses - -**Use case:** Check whether a software package's license is a copyleft license. - -What It Does: - -- Defines a set of known copyleft SPDX identifiers and common free-text variants. -- Triggers if the package’s license string (case-insensitive) contains any of those copyleft keywords. - -``` -package cloudsmith - -default match := false - -# Expanded list of SPDX identifiers and common free-text variants -copyleft := { - "gpl-3.0", "gplv3", "gplv3+", "gpl-3.0-only", "gpl-3.0-or-later", - "gpl-2.0", "gpl-2.0-only", "gpl-2.0-or-later", "gplv2", "gplv2+", - "lgpl-3.0", "lgpl-2.1", "lgpl", - "agpl-3.0", "agpl-3.0-only", "agpl-3.0-or-later", "agpl", - "apache-1.1", "cpol-1.02", "ngpl", "osl-3.0", "qpl-1.0", "sleepycat", - "gnu general public license" -} - -# Main policy rule -match if { - lower_license := lower(input.v0["package"].license.raw_license) - some l in copyleft - contains(lower_license, l) -} ``` \ No newline at end of file diff --git a/src/lib/highlight.tsx b/src/lib/highlight.tsx index b9c67cea..a28b831b 100644 --- a/src/lib/highlight.tsx +++ b/src/lib/highlight.tsx @@ -9,6 +9,8 @@ export async function getHighlighter() { highlighter = await createHighlighter({ themes: [theme], langs: [ + () => import('./lang/rego.json'), + () => import('./lang/swift.json'), 'js', 'jsx', 'ts', diff --git a/src/lib/lang/rego.json b/src/lib/lang/rego.json new file mode 100644 index 00000000..97743b1e --- /dev/null +++ b/src/lib/lang/rego.json @@ -0,0 +1,128 @@ +{ + "fileTypes": [ + "rego" + ], + "name": "rego", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#operator" + }, + { + "include": "#head" + }, + { + "include": "#term" + } + ], + "repository": { + "call": { + "captures": { + "1": { + "name": "support.function.any-method.rego" + } + }, + "match": "([a-zA-Z_][a-zA-Z0-9_]*)\\(", + "name": "meta.function-call.rego" + }, + "comment": { + "captures": { + "1": { + "name": "punctuation.definition.comment.rego" + } + }, + "match": "(#).*$\\n?", + "name": "comment.line.number-sign.rego" + }, + "constant": { + "match": "\\b(?:true|false|null)\\b", + "name": "constant.language.rego" + }, + "head": { + "begin": "^([[:alpha:]_][[:alnum:]_]*)", + "beginCaptures": { + "1": { + "name": "entity.name.function.declaration" + } + }, + "end": "(=|{|\\n)", + "name": "meta.function.rego", + "patterns": [ + { + "include": "#term" + } + ] + }, + "keyword": { + "match": "(^|\\s+)(?:(default|not|package|import|as|with|else))\\s+", + "name": "keyword.other.rego" + }, + "number": { + "match": "(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )", + "name": "constant.numeric.rego" + }, + "operator": { + "patterns": [ + { + "match": "\\=|\\!\\=|>|<|<\\=|>\\=|\\+|-|\\*|%|/|\\||&|:\\=", + "name": "keyword.operator.comparison.rego" + } + ] + }, + "string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.rego" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.rego" + } + }, + "name": "string.quoted.double.rego", + "patterns": [ + { + "match": "(?x: # turn on extended mode\n\t \\\\ # a literal backslash\n\t (?: # ...followed by...\n\t [\"\\\\/bfnrt] # one of these characters\n\t | # ...or...\n\t u # a u\n\t [0-9a-fA-F]{4} # and four hex digits\n\t )\n\t )", + "name": "constant.character.escape.rego" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.rego" + } + ] + }, + "term": { + "patterns": [ + { + "include": "#constant" + }, + { + "include": "#string" + }, + { + "include": "#number" + }, + { + "include": "#call" + }, + { + "include": "#variable" + } + ] + }, + "variable": { + "match": "\\b[[:alpha:]_][[:alnum:]_]*\\b", + "name": "meta.identifier.rego" + } + }, + "scopeName": "source.rego", + "uuid": "165D3571-322B-4C57-ABAD-9EB3922FB004" +} \ No newline at end of file diff --git a/src/lib/lang/swift.json b/src/lib/lang/swift.json new file mode 100644 index 00000000..f94e8e12 --- /dev/null +++ b/src/lib/lang/swift.json @@ -0,0 +1,4239 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jtbandes/swift-tmlanguage/blob/master/Swift.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jtbandes/swift-tmlanguage/commit/b8d2889b4af1d8bad41578317a6adade642555a3", + "name": "swift", + "scopeName": "source.swift", + "comment": "See swift.tmbundle/grammar-test.swift for test cases.", + "patterns": [ + { + "include": "#root" + } + ], + "repository": { + "async-throws": { + "match": "\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b", + "captures": { + "1": { + "name": "invalid.illegal.await-must-precede-throws.swift" + }, + "2": { + "name": "storage.modifier.exception.swift" + }, + "3": { + "name": "storage.modifier.async.swift" + } + } + }, + "attributes": { + "patterns": [ + { + "name": "meta.attribute.available.swift", + "begin": "((@)available)(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "storage.modifier.attribute.swift" + }, + "2": { + "name": "punctuation.definition.attribute.swift" + }, + "3": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?", + "captures": { + "1": { + "name": "keyword.other.platform.os.swift" + }, + "2": { + "name": "constant.numeric.swift" + } + } + }, + { + "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "keyword.other.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "patterns": [ + { + "name": "constant.numeric.swift", + "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b" + } + ] + }, + { + "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "keyword.other.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "patterns": [ + { + "include": "#literals" + } + ] + }, + { + "match": "(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])", + "captures": { + "1": { + "name": "keyword.other.platform.all.swift" + }, + "2": { + "name": "keyword.other.swift" + }, + "3": { + "name": "invalid.illegal.character-not-allowed-here.swift" + } + } + } + ] + }, + { + "name": "meta.attribute.objc.swift", + "begin": "((@)objc)(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "storage.modifier.attribute.swift" + }, + "2": { + "name": "punctuation.definition.attribute.swift" + }, + "3": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "name": "entity.name.function.swift", + "match": "\\w*(?::(?:\\w*:)*(\\w*))?", + "captures": { + "1": { + "name": "invalid.illegal.missing-colon-after-selector-piece.swift" + } + } + } + ] + }, + { + "comment": "any other attribute", + "name": "meta.attribute.swift", + "begin": "(@)(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)", + "end": "(?!\\G\\()", + "beginCaptures": { + "0": { + "name": "storage.modifier.attribute.swift" + }, + "1": { + "name": "punctuation.definition.attribute.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "name": "meta.arguments.attribute.swift", + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + } + ] + }, + "builtin-functions": { + "patterns": [ + { + "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses", + "name": "support.function.swift", + "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b" + }, + { + "comment": "Member functions in the standard library in Swift 3", + "name": "support.function.swift", + "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()" + }, + { + "comment": "Member functions in the standard library in Swift 2 only", + "name": "support.function.swift", + "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()" + } + ] + }, + "builtin-global-functions": { + "patterns": [ + { + "begin": "\\b(type)(\\()\\s*(of)(:)", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "support.function.dynamic-type.swift" + }, + "2": { + "name": "punctuation.definition.arguments.begin.swift" + }, + "3": { + "name": "support.variable.parameter.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + { + "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses", + "name": "support.function.swift", + "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b" + }, + { + "comment": "Global functions available in Swift 3", + "name": "support.function.swift", + "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()" + }, + { + "comment": "Global functions available in Swift 2 only", + "name": "support.function.swift", + "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()" + } + ] + }, + "builtin-properties": { + "patterns": [ + { + "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", + "name": "support.variable.swift", + "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)" + }, + { + "comment": "Properties in the standard library in Swift 3", + "name": "support.variable.swift", + "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b" + }, + { + "comment": "Properties in the standard library in Swift 2 only", + "name": "support.variable.swift", + "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b" + }, + { + "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties", + "name": "support.variable.swift", + "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b" + } + ] + }, + "builtin-types": { + "comment": "Types provided in the standard library", + "patterns": [ + { + "include": "#builtin-types-builtin-class-type" + }, + { + "include": "#builtin-types-builtin-enum-type" + }, + { + "include": "#builtin-types-builtin-protocol-type" + }, + { + "include": "#builtin-types-builtin-struct-type" + }, + { + "include": "#builtin-types-builtin-typealias" + }, + { + "name": "support.type.any.swift", + "match": "\\bAny\\b" + } + ] + }, + "builtin-types-builtin-class-type": { + "comment": "Builtin class types", + "name": "support.class.swift", + "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b" + }, + "builtin-types-builtin-enum-type": { + "patterns": [ + { + "comment": "CommandLine is an enum, but it acts like a constant", + "name": "support.constant.swift", + "match": "\\b(?:CommandLine|Process(?=\\.))\\b" + }, + { + "comment": "The return type of a function that never returns", + "name": "support.constant.never.swift", + "match": "\\bNever\\b" + }, + { + "comment": "Enum types in the standard library in Swift 3", + "name": "support.type.swift", + "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b" + }, + { + "comment": "Enum types in the standard library in Swift 2 only", + "name": "support.type.swift", + "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b" + } + ] + }, + "builtin-types-builtin-protocol-type": { + "patterns": [ + { + "comment": "Protocols in the standard library in Swift 3", + "name": "support.type.swift", + "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b" + }, + { + "comment": "Protocols in the standard library in Swift 2 only", + "name": "support.type.swift", + "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b" + } + ] + }, + "builtin-types-builtin-struct-type": { + "patterns": [ + { + "comment": "Structs in the standard library in Swift 3", + "name": "support.type.swift", + "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b" + }, + { + "comment": "Structs in the standard library in Swift 2 only", + "name": "support.type.swift", + "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b" + } + ] + }, + "builtin-types-builtin-typealias": { + "patterns": [ + { + "comment": "Typealiases in the standard library in Swift 3", + "name": "support.type.swift", + "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b" + }, + { + "comment": "Typealiases in the standard library in Swift 2 only", + "name": "support.type.swift", + "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b" + } + ] + }, + "code-block": { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.swift", + "match": "\\A^(#!).*$\\n?", + "captures": { + "1": { + "name": "punctuation.definition.comment.swift" + } + } + }, + { + "name": "comment.block.documentation.swift", + "begin": "/\\*\\*(?!/)", + "end": "\\*/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "patterns": [ + { + "include": "#comments-nested" + } + ] + }, + { + "name": "comment.block.documentation.playground.swift", + "begin": "/\\*:", + "end": "\\*/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "patterns": [ + { + "include": "#comments-nested" + } + ] + }, + { + "name": "comment.block.swift", + "begin": "/\\*", + "end": "\\*/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "patterns": [ + { + "include": "#comments-nested" + } + ] + }, + { + "name": "invalid.illegal.unexpected-end-of-block-comment.swift", + "match": "\\*/" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.swift" + } + }, + "patterns": [ + { + "name": "comment.line.triple-slash.documentation.swift", + "begin": "///", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + } + }, + { + "name": "comment.line.double-slash.documentation.swift", + "begin": "//:", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + } + }, + { + "name": "comment.line.double-slash.swift", + "begin": "//", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + } + } + ] + } + ] + }, + "comments-nested": { + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#comments-nested" + } + ] + }, + "compiler-control": { + "patterns": [ + { + "contentName": "comment.block.preprocessor.swift", + "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)", + "end": "(?=^\\s*(#(elseif|else|endif)\\b))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.conditional.swift" + }, + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.import.preprocessor.conditional.swift" + }, + "3": { + "name": "constant.language.boolean.swift" + } + } + }, + { + "name": "meta.preprocessor.conditional.swift", + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.import.preprocessor.conditional.swift" + } + }, + "begin": "^\\s*(#)(if|elseif)\\s+", + "end": "(?=\\s*(?://|/\\*))|$", + "patterns": [ + { + "name": "keyword.operator.logical.swift", + "match": "(&&|\\|\\|)" + }, + { + "name": "constant.language.boolean.swift", + "match": "\\b(true|false)\\b" + }, + { + "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))", + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "support.constant.platform.architecture.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + } + }, + { + "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))", + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "support.constant.platform.os.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + } + }, + { + "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))", + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "entity.name.type.module.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + } + }, + { + "begin": "\\b(targetEnvironment)\\s*(\\()", + "end": "(\\))|$", + "beginCaptures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "name": "support.constant.platform.environment.swift", + "match": "\\b(simulator|UIKitForMac)\\b" + } + ] + }, + { + "begin": "\\b(swift|compiler)\\s*(\\()", + "end": "(\\))|$", + "beginCaptures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "name": "keyword.operator.comparison.swift", + "match": ">=|<" + }, + { + "name": "constant.numeric.swift", + "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b" + } + ] + } + ] + }, + { + "name": "meta.preprocessor.conditional.swift", + "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)", + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.import.preprocessor.conditional.swift" + }, + "3": { + "patterns": [ + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "match": "\\S+" + } + ] + } + } + }, + { + "name": "meta.preprocessor.sourcelocation.swift", + "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)", + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.import.preprocessor.sourcelocation.swift" + }, + "4": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "5": { + "patterns": [ + { + "begin": "(file)\\s*(:)\\s*(?=\")", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "support.variable.parameter.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "patterns": [ + { + "include": "#literals" + } + ] + }, + { + "match": "(line)\\s*(:)\\s*([0-9]+)", + "captures": { + "1": { + "name": "support.variable.parameter.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + }, + "3": { + "name": "constant.numeric.integer.swift" + } + } + }, + { + "name": "punctuation.separator.parameters.swift", + "match": "," + }, + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "match": "\\S+" + } + ] + }, + "6": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "7": { + "patterns": [ + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "match": "\\S+" + } + ] + } + } + } + ] + }, + "conditionals": { + "patterns": [ + { + "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])", + "captures": { + "1": { + "name": "keyword.operator.type.function.swift" + } + } + }, + { + "comment": "Swift 3: A & B", + "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])", + "captures": { + "1": { + "name": "keyword.operator.type.composition.swift" + } + } + }, + { + "name": "keyword.operator.type.optional.swift", + "match": "[?!]" + }, + { + "name": "keyword.operator.function.variadic-parameter.swift", + "match": "\\.\\.\\." + }, + { + "comment": "Swift 2: protocol", + "name": "keyword.other.type.composition.swift", + "match": "\\bprotocol\\b" + }, + { + "name": "keyword.other.type.metatype.swift", + "match": "(?<=\\.)(?:Protocol|Type)\\b" + }, + { + "include": "#declarations-available-types-tuple-type" + }, + { + "include": "#declarations-available-types-collection-type" + }, + { + "include": "#declarations-generic-argument-clause" + } + ] + }, + "declarations-available-types-collection-type": { + "comment": "array and dictionary types [Value] and [Key: Value]", + "begin": "\\[", + "end": "\\]|(?=[>){}])", + "beginCaptures": { + "0": { + "name": "punctuation.section.collection-type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.collection-type.end.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + }, + { + "begin": ":", + "end": "(?=\\]|[>){}])", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.extra-colon-in-dictionary-type.swift", + "match": ":" + }, + { + "include": "#declarations-available-types" + } + ] + } + ] + }, + "declarations-available-types-tuple-type": { + "begin": "\\(", + "end": "\\)|(?=[>\\]{}])", + "beginCaptures": { + "0": { + "name": "punctuation.section.tuple-type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.tuple-type.end.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "declarations-extension": { + "name": "meta.definition.type.$1.swift", + "begin": "\\b(extension)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "end": "(?<=\\})", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.swift", + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "SE-0143: Conditional Conformances", + "include": "#declarations-generic-where-clause" + }, + { + "include": "#declarations-inheritance-clause" + }, + { + "name": "meta.definition.type.body.swift", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "declarations-function": { + "name": "meta.definition.function.swift", + "begin": "(?x)\n\\b\n(func)\n\\s+\n(\n (?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n)\n\\s*\n(?=\\(|<)", + "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-parameter-clause" + }, + { + "include": "#declarations-parameter-clause" + }, + { + "include": "#declarations-function-result" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#declarations-generic-where-clause" + }, + { + "name": "meta.definition.function.body.swift", + "begin": "(\\{)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "declarations-function-initializer": { + "name": "meta.definition.function.initializer.swift", + "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*", + "end": "(?!\\G)(?=\\{|\\bwhere\\b|;|=)|$", + "beginCaptures": { + "1": { + "name": "keyword.operator.function-result.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "declarations-function-subscript": { + "name": "meta.definition.function.subscript.swift", + "begin": "(?|(?=[)\\]{}])", + "beginCaptures": { + "0": { + "name": "punctuation.separator.generic-argument-clause.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.generic-argument-clause.end.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "declarations-generic-parameter-clause": { + "name": "meta.generic-parameter-clause.swift", + "begin": "<", + "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.generic-parameter-clause.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.generic-parameter-clause.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "Swift 2: constraints inside the generic param list", + "include": "#declarations-generic-where-clause" + }, + { + "name": "keyword.control.loop.swift", + "match": "\\beach\\b" + }, + { + "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b", + "captures": { + "1": { + "name": "variable.language.generic-parameter.swift" + } + } + }, + { + "name": "punctuation.separator.generic-parameters.swift", + "match": "," + }, + { + "name": "meta.generic-parameter-constraint.swift", + "begin": "(:)\\s*", + "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.generic-parameter-constraint.swift" + } + }, + "patterns": [ + { + "name": "entity.other.inherited-class.swift", + "begin": "\\G", + "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", + "patterns": [ + { + "include": "#declarations-type-identifier" + }, + { + "include": "#declarations-type-operators" + } + ] + } + ] + } + ] + }, + "declarations-generic-where-clause": { + "name": "meta.generic-where-clause.swift", + "begin": "\\b(where)\\b\\s*", + "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)", + "beginCaptures": { + "1": { + "name": "keyword.other.generic-constraint-introducer.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-where-clause-requirement-list" + } + ] + }, + "declarations-generic-where-clause-requirement-list": { + "begin": "\\G|,\\s*", + "end": "(?=[,>{};\\n]|//|/\\*)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constraint" + }, + { + "include": "#declarations-available-types" + }, + { + "name": "meta.generic-where-clause.same-type-requirement.swift", + "begin": "(?&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])", + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "beginCaptures": { + "1": { + "name": "keyword.operator.generic-constraint.same-type.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + { + "name": "meta.generic-where-clause.conformance-requirement.swift", + "begin": "(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])", + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "beginCaptures": { + "1": { + "name": "keyword.operator.generic-constraint.conforms-to.swift" + } + }, + "patterns": [ + { + "contentName": "entity.other.inherited-class.swift", + "begin": "\\G\\s*", + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + } + ] + } + ] + }, + "declarations-import": { + "name": "meta.import.swift", + "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)", + "captures": { + "1": { + "name": "punctuation.definition.identifier.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + { + "name": "entity.name.type.swift", + "match": "(?x)\n(?<=\\G|\\.)\n\\$[0-9]+" + }, + { + "name": "entity.name.type.swift", + "match": "(?x)\n(?<=\\G|\\.)\n(?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n)\n(?=\\.|;|$|//|/\\*|\\s)", + "captures": { + "1": { + "patterns": [ + { + "name": "invalid.illegal.dot-not-allowed-here.swift", + "match": "\\." + } + ] + } + } + }, + { + "name": "punctuation.separator.import.swift", + "match": "\\." + }, + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "begin": "(?!\\s*(;|$|//|/\\*))", + "end": "(?=\\s*(;|$|//|/\\*))" + } + ] + } + ] + }, + "declarations-inheritance-clause": { + "name": "meta.inheritance-clause.swift", + "begin": "(:)(?=\\s*\\{)|(:)\\s*", + "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.empty-inheritance-clause.swift" + }, + "2": { + "name": "punctuation.separator.inheritance-clause.swift" + } + }, + "patterns": [ + { + "begin": "\\bclass\\b", + "end": "(?=[={}]|(?!\\G)\\bwhere\\b)", + "beginCaptures": { + "0": { + "name": "storage.type.class.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-inheritance-clause-more-types" + } + ] + }, + { + "begin": "\\G", + "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-inheritance-clause-inherited-type" + }, + { + "include": "#declarations-inheritance-clause-more-types" + }, + { + "include": "#declarations-type-operators" + } + ] + } + ] + }, + "declarations-inheritance-clause-inherited-type": { + "name": "entity.other.inherited-class.swift", + "begin": "(?=[`\\p{L}_])", + "end": "(?!\\G)", + "patterns": [ + { + "include": "#declarations-type-identifier" + } + ] + }, + "declarations-inheritance-clause-more-types": { + "name": "meta.inheritance-list.more-types", + "begin": ",\\s*", + "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-inheritance-clause-inherited-type" + }, + { + "include": "#declarations-inheritance-clause-more-types" + }, + { + "include": "#declarations-type-operators" + } + ] + }, + "declarations-macro": { + "name": "meta.definition.macro.swift", + "begin": "(?x)\n\\b\n(macro)\n\\s+\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\n\\s*\n(?=\\(|<|=)", + "end": "$|(?=;|//|/\\*|\\}|=)", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-parameter-clause" + }, + { + "include": "#declarations-parameter-clause" + }, + { + "include": "#declarations-function-result" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#declarations-generic-where-clause" + } + ] + }, + "declarations-operator": { + "name": "meta.definition.operator.swift", + "begin": "(?x)\n(?:\n \\b(prefix|infix|postfix)\n \\s+\n)?\n\\b\n(operator)\n\\s+\n(\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | \\. # Invalid dot\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*+\n )\n | ( \\. ( \\g | \\g | \\. )++ ) # Dot operators\n)\n\\s*", + "end": "(;)|$\\n?|(?=//|/\\*)", + "beginCaptures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "storage.type.function.operator.swift" + }, + "3": { + "name": "entity.name.function.operator.swift" + }, + "4": { + "comment": "workaround for https://github.com/microsoft/vscode-textmate/issues/140#issuecomment-1793610346", + "name": "entity.name.function.operator.swift", + "patterns": [ + { + "name": "invalid.illegal.dot-not-allowed-here.swift", + "match": "\\." + } + ] + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.swift" + } + }, + "patterns": [ + { + "include": "#declarations-operator-swift2" + }, + { + "include": "#declarations-operator-swift3" + }, + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "match": "((?!$|;|//|/\\*)\\S)+" + } + ] + }, + "declarations-operator-swift2": { + "begin": "\\G(\\{)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.operator.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.operator.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\b(associativity)\\s+(left|right)\\b", + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "keyword.other.operator.associativity.swift" + } + } + }, + { + "match": "\\b(precedence)\\s+([0-9]+)\\b", + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "constant.numeric.integer.swift" + } + } + }, + { + "match": "\\b(assignment)\\b", + "captures": { + "1": { + "name": "storage.modifier.swift" + } + } + } + ] + }, + "declarations-operator-swift3": { + "match": "\\G(:)\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "captures": { + "2": { + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#declarations-types-precedencegroup" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + "declarations-parameter-clause": { + "name": "meta.parameter-clause.swift", + "begin": "(\\()", + "end": "(\\))(?:\\s*(async)\\b)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + }, + "2": { + "name": "storage.modifier.async.swift" + } + }, + "patterns": [ + { + "include": "#declarations-parameter-list" + } + ] + }, + "declarations-parameter-list": { + "patterns": [ + { + "comment": "External parameter labels are considered part of the function name", + "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*:)", + "captures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "variable.parameter.function.swift" + }, + "5": { + "name": "punctuation.definition.identifier.swift" + }, + "6": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + { + "comment": "If no external label is given, the name is both the external label and the internal variable name", + "match": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)))(?=\\s*:)", + "captures": { + "1": { + "name": "variable.parameter.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + { + "begin": ":\\s*(?!\\s)", + "end": "(?=[,)])", + "patterns": [ + { + "include": "#declarations-available-types" + }, + { + "name": "invalid.illegal.extra-colon-in-parameter-list.swift", + "match": ":" + }, + { + "comment": "a parameter's default value", + "begin": "=", + "end": "(?=[,)])", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + } + ] + }, + "declarations-precedencegroup": { + "name": "meta.definition.precedencegroup.swift", + "begin": "\\b(precedencegroup)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(?=\\{)", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "storage.type.precedencegroup.swift" + }, + "2": { + "name": "entity.name.type.precedencegroup.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.precedencegroup.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.precedencegroup.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#declarations-types-precedencegroup" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + { + "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?", + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "keyword.other.operator.associativity.swift" + } + } + }, + { + "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?", + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "constant.language.boolean.swift" + } + } + } + ] + } + ] + }, + "declarations-protocol": { + "name": "meta.definition.type.protocol.swift", + "begin": "\\b(protocol)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "end": "(?<=\\})", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-inheritance-clause" + }, + { + "comment": "SE-0142: Permit where clauses to constrain associated types", + "include": "#declarations-generic-where-clause" + }, + { + "name": "meta.definition.type.body.swift", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "patterns": [ + { + "include": "#declarations-protocol-protocol-method" + }, + { + "include": "#declarations-protocol-protocol-initializer" + }, + { + "include": "#declarations-protocol-associated-type" + }, + { + "include": "$self" + } + ] + } + ] + }, + "declarations-protocol-associated-type": { + "name": "meta.definition.associatedtype.swift", + "begin": "\\b(associatedtype)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", + "end": "(?!\\G)$|(?=[;}]|$)", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration-specifier.swift" + }, + "2": { + "name": "variable.language.associatedtype.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#declarations-inheritance-clause" + }, + { + "comment": "SE-0142: Permit where clauses to constrain associated types", + "include": "#declarations-generic-where-clause" + }, + { + "include": "#declarations-typealias-assignment" + } + ] + }, + "declarations-protocol-protocol-initializer": { + "name": "meta.definition.function.initializer.swift", + "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n )\n\\s*\n(?=\\(|<)", + "end": "$|(?=;|//|/\\*|\\})", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-parameter-clause" + }, + { + "include": "#declarations-parameter-clause" + }, + { + "include": "#declarations-function-result" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#declarations-generic-where-clause" + }, + { + "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "declarations-type": { + "patterns": [ + { + "name": "meta.definition.type.$1.swift", + "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\b\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "end": "(?<=\\})", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-parameter-clause" + }, + { + "comment": "Swift 3: generic constraints after the generic param list", + "include": "#declarations-generic-where-clause" + }, + { + "include": "#declarations-inheritance-clause" + }, + { + "name": "meta.definition.type.body.swift", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "include": "#declarations-type-enum" + } + ] + }, + "declarations-type-enum": { + "name": "meta.definition.type.$1.swift", + "begin": "\\b(enum)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "end": "(?<=\\})", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-generic-parameter-clause" + }, + { + "comment": "Swift 3: generic constraints after the generic param list", + "include": "#declarations-generic-where-clause" + }, + { + "include": "#declarations-inheritance-clause" + }, + { + "name": "meta.definition.type.body.swift", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "patterns": [ + { + "include": "#declarations-type-enum-enum-case-clause" + }, + { + "include": "$self" + } + ] + } + ] + }, + "declarations-type-enum-associated-values": { + "begin": "\\G\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?x)\n(?:(_)|((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s+\n(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s*(:)", + "end": "(?=[,)\\]])", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "invalid.illegal.distinct-labels-not-allowed.swift" + }, + "5": { + "name": "variable.parameter.function.swift" + }, + "7": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + { + "begin": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\\s*(:)", + "end": "(?=[,)\\]])", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "variable.parameter.function.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + { + "comment": "an element without a label (i.e. anything else)", + "begin": "(?![,)\\]])(?=\\S)", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#declarations-available-types" + }, + { + "name": "invalid.illegal.extra-colon-in-parameter-list.swift", + "match": ":" + } + ] + } + ] + }, + "declarations-type-enum-enum-case": { + "begin": "(?x)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", + "end": "(?<=\\))|(?![=(])", + "beginCaptures": { + "1": { + "name": "variable.other.enummember.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-type-enum-associated-values" + }, + { + "include": "#declarations-type-enum-raw-value-assignment" + } + ] + }, + "declarations-type-enum-enum-case-clause": { + "begin": "\\b(case)\\b\\s*", + "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])", + "beginCaptures": { + "1": { + "name": "storage.type.enum.case.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-type-enum-enum-case" + }, + { + "include": "#declarations-type-enum-more-cases" + } + ] + }, + "declarations-type-enum-more-cases": { + "name": "meta.enum-case.more-cases", + "begin": ",\\s*", + "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#declarations-type-enum-enum-case" + }, + { + "include": "#declarations-type-enum-more-cases" + } + ] + }, + "declarations-type-enum-raw-value-assignment": { + "begin": "(=)\\s*", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#literals" + } + ] + }, + "declarations-type-identifier": { + "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", + "end": "(?!<)", + "beginCaptures": { + "1": { + "name": "meta.type-name.swift", + "patterns": [ + { + "include": "#builtin-types" + } + ] + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "begin": "(?=<)", + "end": "(?!\\G)", + "patterns": [ + { + "include": "#declarations-generic-argument-clause" + } + ] + } + ] + }, + "declarations-type-operators": { + "patterns": [ + { + "comment": "Swift 3: A & B", + "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])", + "captures": { + "1": { + "name": "keyword.operator.type.composition.swift" + } + } + }, + { + "comment": "SE-0390: Noncopyable structs and enums", + "match": "(?&|\\^~.])(~)(?![/=\\-+!*%<>&|\\^~.])", + "captures": { + "1": { + "name": "keyword.operator.type.requirement-suppression.swift" + } + } + } + ] + }, + "declarations-typealias": { + "name": "meta.definition.typealias.swift", + "begin": "\\b(typealias)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", + "end": "(?!\\G)$|(?=;|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration-specifier.swift" + }, + "2": { + "name": "entity.name.type.typealias.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "patterns": [ + { + "begin": "\\G(?=<)", + "end": "(?!\\G)", + "patterns": [ + { + "include": "#declarations-generic-parameter-clause" + } + ] + }, + { + "include": "#declarations-typealias-assignment" + } + ] + }, + "declarations-typealias-assignment": { + "begin": "(=)\\s*", + "end": "(?!\\G)$|(?=;|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "declarations-typed-variable-declaration": { + "begin": "(?x)\n\\b(?:(async)\\s+)?(let|var)\\b\\s+\n(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\\s*\n:", + "end": "(?=$|[={])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.swift" + }, + "2": { + "name": "keyword.other.declaration-specifier.swift" + } + }, + "patterns": [ + { + "include": "#declarations-available-types" + } + ] + }, + "declarations-types-precedencegroup": { + "patterns": [ + { + "comment": "Precedence groups in the standard library", + "name": "support.type.swift", + "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b" + } + ] + }, + "expressions": { + "comment": "trailing closures need to be parsed before other member references", + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references" + }, + { + "include": "#expressions-trailing-closure" + }, + { + "include": "#member-reference" + } + ] + }, + "expressions-trailing-closure": { + "patterns": [ + { + "comment": "foo { body } -- a call with a trailing closure and no argument clause", + "name": "meta.function-call.trailing-closure-only.swift", + "match": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*\\{)", + "captures": { + "1": { + "name": "support.function.any-method.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + } + }, + { + "comment": "foo: { body } -- labeled-trailing-closure (SE-0279)", + "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)(?=\\s*\\{)", + "captures": { + "1": { + "name": "support.function.any-method.trailing-closure-label.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + } + } + ] + }, + "expressions-without-trailing-closures": { + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references" + }, + { + "include": "#member-references" + } + ] + }, + "expressions-without-trailing-closures-or-member-references": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#code-block" + }, + { + "include": "#attributes" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-closure-parameter" + }, + { + "include": "#literals" + }, + { + "include": "#operators" + }, + { + "include": "#builtin-types" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-global-functions" + }, + { + "include": "#builtin-properties" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-compound-name" + }, + { + "include": "#conditionals" + }, + { + "include": "#keywords" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-availability-condition" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-macro-expansion" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-subscript-expression" + }, + { + "include": "#expressions-without-trailing-closures-or-member-references-parenthesized-expression" + }, + { + "name": "support.variable.discard-value.swift", + "match": "\\b_\\b" + } + ] + }, + "expressions-without-trailing-closures-or-member-references-availability-condition": { + "begin": "\\B(#(?:un)?available)(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "support.function.availability-condition.swift" + }, + "2": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))", + "captures": { + "1": { + "name": "keyword.other.platform.os.swift" + }, + "2": { + "name": "constant.numeric.swift" + } + } + }, + { + "match": "(\\*)\\s*(.*?)(?=[,)])", + "captures": { + "1": { + "name": "keyword.other.platform.all.swift" + }, + "2": { + "name": "invalid.illegal.character-not-allowed-here.swift" + } + } + }, + { + "name": "invalid.illegal.character-not-allowed-here.swift", + "match": "[^\\s,)]+" + } + ] + }, + "expressions-without-trailing-closures-or-member-references-closure-parameter": { + "name": "variable.language.closure-parameter.swift", + "match": "\\$[0-9]+" + }, + "expressions-without-trailing-closures-or-member-references-compound-name": { + "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.", + "match": "(?x)\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # function name\n\\(\n (\n (\n ((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # argument label\n : # colon\n )+\n )\n\\)", + "captures": { + "1": { + "name": "entity.name.function.compound-name.swift" + }, + "2": { + "name": "punctuation.definition.entity.swift" + }, + "3": { + "name": "punctuation.definition.entity.swift" + }, + "4": { + "patterns": [ + { + "name": "entity.name.function.compound-name.swift", + "match": "(?`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k):", + "captures": { + "1": { + "name": "punctuation.definition.entity.swift" + }, + "2": { + "name": "punctuation.definition.entity.swift" + } + } + } + ] + } + } + }, + "expressions-without-trailing-closures-or-member-references-expression-element-list": { + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "an element with a label", + "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)", + "end": "(?=[,)\\]])", + "beginCaptures": { + "1": { + "name": "support.function.any-method.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + { + "comment": "an element without a label (i.e. anything else)", + "begin": "(?![,)\\]])(?=\\S)", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + }, + "expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression": { + "patterns": [ + { + "comment": "foo(args) -- a call whose callee is a highlightable name", + "name": "meta.function-call.swift", + "begin": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "support.function.any-method.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" + } + ] + }, + { + "comment": "[Int](args) -- a call whose callee is a more complicated expression", + "name": "meta.function-call.swift", + "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" + } + ] + } + ] + }, + "expressions-without-trailing-closures-or-member-references-macro-expansion": { + "name": "support.function.any-method.swift", + "match": "(#(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))" + }, + "expressions-without-trailing-closures-or-member-references-parenthesized-expression": { + "comment": "correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression", + "begin": "\\(", + "end": "(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)", + "beginCaptures": { + "0": { + "name": "punctuation.section.tuple.begin.swift" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.tuple.end.swift" + }, + "2": { + "patterns": [ + { + "name": "invalid.illegal.rethrows-only-allowed-on-function-declarations.swift", + "match": "\\brethrows\\b" + }, + { + "include": "#async-throws" + } + ] + } + }, + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" + } + ] + }, + "expressions-without-trailing-closures-or-member-references-subscript-expression": { + "name": "meta.subscript-expression.swift", + "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.branch.swift", + "match": "(?\n (?> # no backtracking, avoids issues with negative lookbehind at end\n (?:\n \\\\Q\n (?:(?!\\\\E)(?!/\\2).)*+\n (?:\\\\E\n # A quoted sequence may not have a closing E, in which case it extends to the end of the regex\n | (?(3)|(?(\\{(?:\\g<-1>|(?!{).*?)\\}))\n (?:\\[(?!\\d)\\w+\\])?\n [X<>]?\n \\)\n | (?\\[ (?:\\\\. | [^\\[\\]] | \\g)+ \\])\n | \\(\\g?+\\)\n | (?:(?!/\\2)[^()\\[\\\\])+ # any character (until end)\n )+\n )\n)?+\n# may end with a space only if it is an extended literal or contains only a single escaped space\n(?(3)|(?(5)(?'\n '\\g<' NamedOrNumberRef '>'", + "match": "(?x)(\\\\[gk]<) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (>)", + "captures": { + "1": { + "name": "constant.character.escape.backslash.regexp" + }, + "2": { + "name": "variable.other.group-name.regexp" + }, + "3": { + "name": "keyword.operator.recursion-level.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "6": { + "name": "keyword.operator.recursion-level.regexp" + }, + "7": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "8": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "comment": "\"\\k'\" NamedOrNumberRef \"'\"\n \"\\g'\" NamedOrNumberRef \"'\"", + "match": "(?x)(\\\\[gk]') (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (')", + "captures": { + "1": { + "name": "constant.character.escape.backslash.regexp" + }, + "2": { + "name": "variable.other.group-name.regexp" + }, + "3": { + "name": "keyword.operator.recursion-level.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "6": { + "name": "keyword.operator.recursion-level.regexp" + }, + "7": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "8": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "comment": "'\\k{' NamedRef '}'", + "match": "(?x)(\\\\k\\{) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\})", + "captures": { + "1": { + "name": "constant.character.escape.backslash.regexp" + }, + "2": { + "name": "variable.other.group-name.regexp" + }, + "3": { + "name": "keyword.operator.recursion-level.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "name": "keyword.other.back-reference.regexp", + "match": "\\\\[1-9][0-9]+" + }, + { + "comment": "'(?P=' NamedRef ')'", + "match": "(?x)(\\(\\?(?:P[=>]|&)) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\))", + "captures": { + "1": { + "name": "keyword.other.back-reference.regexp" + }, + "2": { + "name": "variable.other.group-name.regexp" + }, + "3": { + "name": "keyword.operator.recursion-level.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "keyword.other.back-reference.regexp" + } + } + }, + { + "name": "keyword.other.back-reference.regexp", + "match": "\\(\\?R\\)" + }, + { + "comment": "'(?' NumberRef ')'", + "match": "(?x)(\\(\\?) ([+-]?\\d+) (?:([+-])(\\d+))? (\\))", + "captures": { + "1": { + "name": "keyword.other.back-reference.regexp" + }, + "2": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "3": { + "name": "keyword.operator.recursion-level.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "keyword.other.back-reference.regexp" + } + } + } + ] + }, + "literals-regular-expression-literal-backtracking-directive-or-global-matching-option": { + "match": "(?x)\n(\\(\\*)\n(?:\n (ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)\n (?:(:)([^)]+))?\n | (?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\d+))\n | (\n CRLF | CR | ANYCRLF | ANY | LF | NUL\n | BSR_ANYCRLF | BSR_UNICODE\n | NOTEMPTY_ATSTART | NOTEMPTY\n | NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR\n | NO_JIT | NO_START_OPT | UTF | UCP\n )\n)\n(\\))", + "captures": { + "1": { + "name": "keyword.control.directive.regexp" + }, + "2": { + "name": "keyword.control.directive.regexp" + }, + "3": { + "name": "keyword.control.directive.regexp" + }, + "4": { + "name": "variable.language.tag.regexp" + }, + "5": { + "name": "keyword.control.directive.regexp" + }, + "6": { + "name": "keyword.operator.assignment.regexp" + }, + "7": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "8": { + "name": "keyword.control.directive.regexp" + }, + "9": { + "name": "keyword.control.directive.regexp" + } + } + }, + "literals-regular-expression-literal-callout": { + "name": "meta.callout.regexp", + "match": "(?x)\n# PCRECallout\n(\\()(?\\?C)\n (?:\n (?\\d+)\n | `(?(?:[^`]|``)*)`\n | '(?(?:[^']|'')*)'\n | \"(?(?:[^\"]|\"\")*)\"\n | \\^(?(?:[^\\^]|\\^\\^)*)\\^\n | %(?(?:[^%]|%%)*)%\n | \\#(?(?:[^#]|\\#\\#)*)\\#\n | \\$(?(?:[^$]|\\$\\$)*)\\$\n | \\{(?(?:[^}]|\\}\\})*)\\}\n )?\n(\\))\n# NamedCallout\n| (\\()(?\\*)\n (?(?!\\d)\\w+)\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?:\\{ [^,}]+ (?:,[^,}]+)* \\})?\n (\\))\n# InterpolatedCallout\n| (\\()(?\\?)\n (?>(\\{(?:\\g<-1>|(?!{).*?)\\}))\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?[X<>]?)\n (\\))", + "captures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "keyword.control.callout.regexp" + }, + "3": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "4": { + "name": "entity.name.function.callout.regexp" + }, + "5": { + "name": "entity.name.function.callout.regexp" + }, + "6": { + "name": "entity.name.function.callout.regexp" + }, + "7": { + "name": "entity.name.function.callout.regexp" + }, + "8": { + "name": "entity.name.function.callout.regexp" + }, + "9": { + "name": "entity.name.function.callout.regexp" + }, + "10": { + "name": "entity.name.function.callout.regexp" + }, + "11": { + "name": "entity.name.function.callout.regexp" + }, + "12": { + "name": "punctuation.definition.group.regexp" + }, + "13": { + "name": "punctuation.definition.group.regexp" + }, + "14": { + "name": "keyword.control.callout.regexp" + }, + "15": { + "name": "entity.name.function.callout.regexp" + }, + "16": { + "name": "variable.language.tag-name.regexp" + }, + "17": { + "name": "punctuation.definition.group.regexp" + }, + "18": { + "name": "punctuation.definition.group.regexp" + }, + "19": { + "name": "keyword.control.callout.regexp" + }, + "21": { + "name": "variable.language.tag-name.regexp" + }, + "22": { + "name": "keyword.control.callout.regexp" + }, + "23": { + "name": "punctuation.definition.group.regexp" + } + } + }, + "literals-regular-expression-literal-character-properties": { + "name": "constant.other.character-class.set.regexp", + "match": "(?x)\n\\\\[pP]\\{ ([\\s\\w-]+(?:=[\\s\\w-]+)?) \\}\n| (\\[:) ([\\s\\w-]+(?:=[\\s\\w-]+)?) (:\\])", + "captures": { + "1": { + "name": "support.variable.character-property.regexp" + }, + "2": { + "name": "punctuation.definition.character-class.regexp" + }, + "3": { + "name": "support.variable.character-property.regexp" + }, + "4": { + "name": "punctuation.definition.character-class.regexp" + } + } + }, + "literals-regular-expression-literal-custom-char-class": { + "patterns": [ + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "include": "#literals-regular-expression-literal-custom-char-class-members" + } + ] + } + ] + }, + "literals-regular-expression-literal-custom-char-class-members": { + "comment": "TODO: should also include atoms?", + "patterns": [ + { + "comment": "\\b inside a character class represents a backspace", + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\b" + }, + { + "include": "#literals-regular-expression-literal-custom-char-class" + }, + { + "include": "#literals-regular-expression-literal-quote" + }, + { + "include": "#literals-regular-expression-literal-set-operators" + }, + { + "include": "#literals-regular-expression-literal-unicode-scalars" + }, + { + "include": "#literals-regular-expression-literal-character-properties" + } + ] + }, + "literals-regular-expression-literal-group-option-toggle": { + "comment": "A matching option sequence may be part of an \"isolated group\" which has an implicit scope that wraps the remaining elements of the current group", + "name": "keyword.other.option-toggle.regexp", + "match": "(?x)\n\\(\\?\n(?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n)\n\\)" + }, + "literals-regular-expression-literal-group-or-conditional": { + "patterns": [ + { + "name": "meta.group.absent.regexp", + "begin": "(\\()(\\?~)", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "keyword.control.conditional.absent.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#literals-regular-expression-literal-regex-guts" + } + ] + }, + { + "name": "meta.group.conditional.regexp", + "begin": "(?x)\n# KnownConditionalStart\n(\\() (?\\?\\()\n (?:\n (? (?[+-]?\\d+)(?:(?[+-])(?\\d+))? )\n | (?R) \\g?\n | (?R&) (? (?(?!\\d)\\w+) (?:(?[+-])(?\\d+))? )\n | (?<) (?:\\g|\\g) (?>)\n | (?') (?:\\g|\\g) (?')\n | (?DEFINE)\n | (?VERSION)(?>?=)(?\\d+\\.\\d+)\n )\n(?\\))\n| (\\()(?\\?)(?=\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "keyword.control.conditional.regexp" + }, + "4": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "5": { + "name": "keyword.operator.recursion-level.regexp" + }, + "6": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "7": { + "name": "keyword.control.conditional.regexp" + }, + "8": { + "name": "keyword.control.conditional.regexp" + }, + "10": { + "name": "variable.other.group-name.regexp" + }, + "11": { + "name": "keyword.operator.recursion-level.regexp" + }, + "12": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "13": { + "name": "keyword.control.conditional.regexp" + }, + "14": { + "name": "keyword.control.conditional.regexp" + }, + "15": { + "name": "keyword.control.conditional.regexp" + }, + "16": { + "name": "keyword.control.conditional.regexp" + }, + "17": { + "name": "keyword.control.conditional.regexp" + }, + "18": { + "name": "keyword.control.conditional.regexp" + }, + "19": { + "name": "keyword.operator.comparison.regexp" + }, + "20": { + "name": "constant.numeric.integer.decimal.regexp" + }, + "21": { + "name": "keyword.control.conditional.regexp" + }, + "22": { + "name": "punctuation.definition.group.regexp" + }, + "23": { + "name": "keyword.control.conditional.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#literals-regular-expression-literal-regex-guts" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "(?x)\n(\\()\n(\n # BasicGroupKind\n (\\?)\n (?:\n ([:|>=!*] | <[=!*])\n # named groups\n | P?< (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) >\n | ' (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) '\n # matching options\n | (?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n ): # case without : is handled by group-option-toggle\n )\n # PCRE2GroupKind\n | \\*(\n atomic\n |pla|positive_lookahead\n |nla|negative_lookahead\n |plb|positive_lookbehind\n |nlb|negative_lookbehind\n |napla|non_atomic_positive_lookahead\n |naplb|non_atomic_positive_lookbehind\n |sr|script_run\n |asr|atomic_script_run\n ):\n)?+", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "keyword.other.group-options.regexp" + }, + "3": { + "name": "punctuation.definition.group.regexp" + }, + "4": { + "name": "punctuation.definition.group.regexp" + }, + "5": { + "name": "variable.other.group-name.regexp" + }, + "6": { + "name": "keyword.operator.balancing-group.regexp" + }, + "7": { + "name": "variable.other.group-name.regexp" + }, + "8": { + "name": "variable.other.group-name.regexp" + }, + "9": { + "name": "keyword.operator.balancing-group.regexp" + }, + "10": { + "name": "variable.other.group-name.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#literals-regular-expression-literal-regex-guts" + } + ] + } + ] + }, + "literals-regular-expression-literal-line-comment": { + "name": "comment.line.regexp", + "match": "(\\#).*$", + "captures": { + "1": { + "name": "punctuation.definition.comment.regexp" + } + } + }, + "literals-regular-expression-literal-quote": { + "name": "string.quoted.other.regexp.swift", + "begin": "\\\\Q", + "end": "\\\\E|(\\n)", + "beginCaptures": { + "0": { + "name": "constant.character.escape.backslash.regexp" + } + }, + "endCaptures": { + "0": { + "name": "constant.character.escape.backslash.regexp" + }, + "1": { + "name": "invalid.illegal.returns-not-allowed.regexp" + } + } + }, + "literals-regular-expression-literal-regex-guts": { + "patterns": [ + { + "include": "#literals-regular-expression-literal-quote" + }, + { + "name": "comment.block.regexp", + "begin": "\\(\\?\\#", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.regexp" + } + } + }, + { + "name": "meta.embedded.expression.regexp", + "begin": "<\\{", + "end": "\\}>", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.regexp" + } + } + }, + { + "include": "#literals-regular-expression-literal-unicode-scalars" + }, + { + "include": "#literals-regular-expression-literal-character-properties" + }, + { + "name": "keyword.control.anchor.regexp", + "match": "[$^]|\\\\[AbBGyYzZ]|\\\\K" + }, + { + "include": "#literals-regular-expression-literal-backtracking-directive-or-global-matching-option" + }, + { + "include": "#literals-regular-expression-literal-callout" + }, + { + "include": "#literals-regular-expression-literal-backreference-or-subpattern" + }, + { + "name": "constant.character.character-class.regexp", + "match": "\\.|\\\\[CdDhHNORsSvVwWX]" + }, + { + "name": "constant.character.entity.control-character.regexp", + "match": "\\\\c." + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\[^c]" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[*+?]" + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "\\{\\s*\\d+\\s*(?:,\\s*\\d*\\s*)?\\}|\\{\\s*,\\s*\\d+\\s*\\}" + }, + { + "include": "#literals-regular-expression-literal-custom-char-class" + }, + { + "include": "#literals-regular-expression-literal-group-option-toggle" + }, + { + "include": "#literals-regular-expression-literal-group-or-conditional" + } + ] + }, + "literals-regular-expression-literal-set-operators": { + "patterns": [ + { + "name": "keyword.operator.intersection.regexp.swift", + "match": "&&" + }, + { + "name": "keyword.operator.subtraction.regexp.swift", + "match": "--" + }, + { + "name": "keyword.operator.symmetric-difference.regexp.swift", + "match": "\\~\\~" + } + ] + }, + "literals-regular-expression-literal-unicode-scalars": { + "name": "constant.character.numeric.regexp", + "match": "(?x)\n\\\\u\\{\\s*(?:[0-9a-fA-F]+\\s*)+\\}\n| \\\\u[0-9a-fA-F]{4}\n| \\\\x\\{[0-9a-fA-F]+\\}\n| \\\\x[0-9a-fA-F]{0,2}\n| \\\\U[0-9a-fA-F]{8}\n| \\\\o\\{[0-7]+\\}\n| \\\\0[0-7]{0,3}\n| \\\\N\\{(?:U\\+[0-9a-fA-F]{1,8} | [\\s\\w-]+)\\}" + }, + "literals-string": { + "patterns": [ + { + "comment": "SE-0168: Multi-Line String Literals", + "name": "string.quoted.double.block.swift", + "begin": "\"\"\"", + "end": "\"\"\"(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.content-after-opening-delimiter.swift", + "match": "\\G.+(?=\"\"\")|\\G.+" + }, + { + "name": "constant.character.escape.newline.swift", + "match": "\\\\\\s*\\n" + }, + { + "include": "#literals-string-string-guts" + }, + { + "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", + "name": "invalid.illegal.content-before-closing-delimiter.swift", + "match": "\\S((?!\\\\\\().)*(?=\"\"\")" + } + ] + }, + { + "name": "string.quoted.double.block.raw.swift", + "begin": "#\"\"\"", + "end": "\"\"\"#(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.content-after-opening-delimiter.swift", + "match": "\\G.+(?=\"\"\")|\\G.+" + }, + { + "name": "constant.character.escape.newline.swift", + "match": "\\\\#\\s*\\n" + }, + { + "include": "#literals-string-raw-string-guts" + }, + { + "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", + "name": "invalid.illegal.content-before-closing-delimiter.swift", + "match": "\\S((?!\\\\#\\().)*(?=\"\"\")" + } + ] + }, + { + "name": "string.quoted.double.block.raw.swift", + "begin": "(##+)\"\"\"", + "end": "\"\"\"\\1(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.content-after-opening-delimiter.swift", + "match": "\\G.+(?=\"\"\")|\\G.+" + } + ] + }, + { + "name": "string.quoted.double.single-line.swift", + "begin": "\"", + "end": "\"(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.returns-not-allowed.swift", + "match": "\\r|\\n" + }, + { + "include": "#literals-string-string-guts" + } + ] + }, + { + "comment": "SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)", + "name": "string.quoted.double.single-line.raw.swift", + "begin": "(##+)\"", + "end": "\"\\1(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.raw.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.raw.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.returns-not-allowed.swift", + "match": "\\r|\\n" + } + ] + }, + { + "comment": "SE-0168: raw string literals (one #, escapes supported)", + "name": "string.quoted.double.single-line.raw.swift", + "begin": "#\"", + "end": "\"#(#*)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.raw.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.raw.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "patterns": [ + { + "name": "invalid.illegal.returns-not-allowed.swift", + "match": "\\r|\\n" + }, + { + "include": "#literals-string-raw-string-guts" + } + ] + } + ] + }, + "literals-string-raw-string-guts": { + "comment": "the same as #string-guts but with # in escapes", + "patterns": [ + { + "name": "constant.character.escape.swift", + "match": "\\\\#[0\\\\tnr\"']" + }, + { + "name": "constant.character.escape.unicode.swift", + "match": "\\\\#u\\{[0-9a-fA-F]{1,8}\\}" + }, + { + "contentName": "source.swift", + "name": "meta.embedded.line.swift", + "begin": "\\\\#\\(", + "end": "(\\))", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + }, + "1": { + "name": "source.swift" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "comment": "Nested parens", + "begin": "\\(", + "end": "\\)" + } + ] + }, + { + "name": "invalid.illegal.escape-not-recognized", + "match": "\\\\#." + } + ] + }, + "literals-string-string-guts": { + "patterns": [ + { + "name": "constant.character.escape.swift", + "match": "\\\\[0\\\\tnr\"']" + }, + { + "name": "constant.character.escape.unicode.swift", + "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}" + }, + { + "contentName": "source.swift", + "name": "meta.embedded.line.swift", + "begin": "\\\\\\(", + "end": "(\\))", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + }, + "1": { + "name": "source.swift" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "comment": "Nested parens", + "begin": "\\(", + "end": "\\)" + } + ] + }, + { + "name": "invalid.illegal.escape-not-recognized", + "match": "\\\\." + } + ] + }, + "member-reference": { + "patterns": [ + { + "match": "(?<=\\.)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", + "captures": { + "1": { + "name": "variable.other.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + } + } + ] + }, + "operators": { + "patterns": [ + { + "comment": "Type casting", + "name": "keyword.operator.type-casting.swift", + "match": "\\b(is\\b|as([!?]\\B|\\b))" + }, + { + "comment": "This rule helps us speed up the matching.", + "begin": "(?x)\n(?=\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n | \\.\n (\n \\g # operator-head\n | \\.\n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)", + "end": "(?!\\G)", + "patterns": [ + { + "comment": "Prefix unary operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.increment-or-decrement.swift", + "match": "\\G(\\+\\+|\\-\\-)$" + }, + { + "name": "keyword.operator.arithmetic.unary.swift", + "match": "\\G(\\+|\\-)$" + }, + { + "name": "keyword.operator.logical.not.swift", + "match": "\\G!$" + }, + { + "name": "keyword.operator.bitwise.not.swift", + "match": "\\G~$" + }, + { + "name": "keyword.operator.custom.prefix.swift", + "match": ".+" + } + ] + } + } + }, + { + "comment": "Postfix unary operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.increment-or-decrement.swift", + "match": "\\G(\\+\\+|\\-\\-)$" + }, + { + "name": "keyword.operator.increment-or-decrement.swift", + "match": "\\G!$" + }, + { + "name": "keyword.operator.custom.postfix.swift", + "match": ".+" + } + ] + } + } + }, + { + "comment": "Infix operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.assignment.swift", + "match": "\\G=$" + }, + { + "name": "keyword.operator.assignment.compound.swift", + "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$" + }, + { + "name": "keyword.operator.arithmetic.swift", + "match": "\\G(\\+|\\-|\\*|/)$" + }, + { + "name": "keyword.operator.arithmetic.overflow.swift", + "match": "\\G&(\\+|\\-|\\*)$" + }, + { + "name": "keyword.operator.arithmetic.remainder.swift", + "match": "\\G%$" + }, + { + "name": "keyword.operator.comparison.swift", + "match": "\\G(==|!=|>|<|>=|<=|~=)$" + }, + { + "name": "keyword.operator.coalescing.swift", + "match": "\\G\\?\\?$" + }, + { + "name": "keyword.operator.logical.swift", + "match": "\\G(&&|\\|\\|)$" + }, + { + "name": "keyword.operator.bitwise.swift", + "match": "\\G(&|\\||\\^|<<|>>)$" + }, + { + "name": "keyword.operator.bitwise.swift", + "match": "\\G(===|!==)$" + }, + { + "name": "keyword.operator.ternary.swift", + "match": "\\G\\?$" + }, + { + "name": "keyword.operator.custom.infix.swift", + "match": ".+" + } + ] + } + } + }, + { + "comment": "Dot prefix unary operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.custom.prefix.dot.swift", + "match": ".+" + } + ] + } + } + }, + { + "comment": "Dot postfix unary operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.custom.postfix.dot.swift", + "match": ".+" + } + ] + } + } + }, + { + "comment": "Dot infix operator", + "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++", + "captures": { + "0": { + "patterns": [ + { + "name": "keyword.operator.range.swift", + "match": "\\G\\.\\.[.<]$" + }, + { + "name": "keyword.operator.custom.infix.dot.swift", + "match": ".+" + } + ] + } + } + } + ] + }, + { + "name": "keyword.operator.ternary.swift", + "match": ":" + } + ] + }, + "root": { + "patterns": [ + { + "include": "#compiler-control" + }, + { + "include": "#declarations" + }, + { + "include": "#expressions" + } + ] + } + } +} \ No newline at end of file From 52f7da993e80df827b353a37e416b315b03bba58 Mon Sep 17 00:00:00 2001 From: gerguno Date: Thu, 17 Jul 2025 17:09:03 +0200 Subject: [PATCH 083/127] done --- src/app/(api)/api/[...slug]/page.module.css | 23 +++++++++++++++++++++ src/app/(api)/api/[...slug]/page.tsx | 13 ++++++++++-- src/content/schemas/api-schema-v1.json | 2 ++ src/icons/icon-registry.tsx | 3 +++ src/icons/svgs/External.tsx | 20 ++++++++++++++++++ src/lib/swagger/types.ts | 1 + 6 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/icons/svgs/External.tsx diff --git a/src/app/(api)/api/[...slug]/page.module.css b/src/app/(api)/api/[...slug]/page.module.css index 2837bf45..fb5468dc 100644 --- a/src/app/(api)/api/[...slug]/page.module.css +++ b/src/app/(api)/api/[...slug]/page.module.css @@ -18,3 +18,26 @@ .fullWidth { grid-column: 1 / -1; } + +.description { + display: block; + + .sandboxLink { + color: var(--color-text-secondary); + display: flex; + align-items: center; + gap: var(--space-3xs); + width: fit-content; + + &:hover { + color: var(--brand-color-blue-7); + } + } +} + +@media (--tablet-up) { + .description { + display: flex; + justify-content: space-between; + } +} diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index c7310bbd..8c3f5d81 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -7,6 +7,8 @@ import type { Metadata } from 'next'; import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; import { getMenuItem, getActiveAncestors } from '@/lib/menu/util'; import WithQuicknav from '@/components/WithQuickNav'; +import { Icon, type IconName } from '@/icons'; +import { Link } from '@/components'; import { cx } from 'class-variance-authority'; import styles from './page.module.css'; @@ -113,8 +115,15 @@ const Page = async ({ params }: PageProps) => {

    O_LQ@`(`)32Y+uUcFqUbIT-6V$8Ocd&fUj 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

    7&LfAU0U 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

    ) : null} {operation.title} - {operation.description ? {operation.description} : null} - +
    + {operation.description && {operation.description}} + {operation.sandboxLink && ( + + Open API Sandbox + + + )} +
    Request diff --git a/src/content/schemas/api-schema-v1.json b/src/content/schemas/api-schema-v1.json index bf763ee2..97618111 100644 --- a/src/content/schemas/api-schema-v1.json +++ b/src/content/schemas/api-schema-v1.json @@ -30,6 +30,7 @@ "operationId": "audit_log_namespace_list", "summary": "Lists audit log entries for a specific namespace.", "description": "Lists audit log entries for a specific namespace.", + "sandboxLink": "https://api-stg.cloudsmith.io/v1/redoc/#tag/audit-log/operation/audit_log_namespace_list", "parameters": [ { "name": "page", @@ -122,6 +123,7 @@ "operationId": "audit_log_repo_list", "summary": "Lists audit log entries for a specific repository.", "description": "Lists audit log entries for a specific repository.", + "sandboxLink": "https://api-stg.cloudsmith.io/v1/redoc/#tag/audit-log/operation/audit_log_repo_list", "parameters": [ { "name": "page", diff --git a/src/icons/icon-registry.tsx b/src/icons/icon-registry.tsx index 52c0382b..cb184dfa 100644 --- a/src/icons/icon-registry.tsx +++ b/src/icons/icon-registry.tsx @@ -5,6 +5,8 @@ import { ChevronIcon } from './svgs/Chevron'; import { ChevronSmallIcon } from './svgs/ChevronSmall'; import { ArrowIcon } from './svgs/Arrow'; import { SearchIcon } from './svgs/Search'; +import { ExternalIcon } from './svgs/External'; + import { UtilityDocumentationIcon } from './svgs/utility/Documentation'; import { UtilityGuideIcon } from './svgs/utility/Guide'; import { UtilityApiIcon } from './svgs/utility/Api'; @@ -108,6 +110,7 @@ export const iconRegistry = createIconRegistry({ arrowDown: (props) => , arrowLeft: (props) => , search: SearchIcon, + external: ExternalIcon, 'utility/documentation': UtilityDocumentationIcon, 'utility/guide': UtilityGuideIcon, 'utility/api': UtilityApiIcon, diff --git a/src/icons/svgs/External.tsx b/src/icons/svgs/External.tsx new file mode 100644 index 00000000..84536913 --- /dev/null +++ b/src/icons/svgs/External.tsx @@ -0,0 +1,20 @@ +import { createIcon, SpecificIconProps } from '../util/create-icon'; + +export const ExternalIcon = createIcon( + 'external', + ({ width = 16, height = 16, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 16 16', + fill: 'none', + children: ( + + ), + }), +); diff --git a/src/lib/swagger/types.ts b/src/lib/swagger/types.ts index 93bf7fa7..229ca38a 100644 --- a/src/lib/swagger/types.ts +++ b/src/lib/swagger/types.ts @@ -30,6 +30,7 @@ export interface ApiOperation { deprecated?: boolean; security?: SecurityRequirementObject[]; servers?: ServerObject[]; + sandboxLink?: string; } interface ServerObject { From df9775f6e3a32ad7eb46cb6db075de1ffa7ee7c1 Mon Sep 17 00:00:00 2001 From: gerguno Date: Thu, 17 Jul 2025 17:15:08 +0200 Subject: [PATCH 084/127] clean up --- src/app/(api)/api/[...slug]/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/(api)/api/[...slug]/page.tsx b/src/app/(api)/api/[...slug]/page.tsx index 8c3f5d81..c74ce493 100644 --- a/src/app/(api)/api/[...slug]/page.tsx +++ b/src/app/(api)/api/[...slug]/page.tsx @@ -7,7 +7,7 @@ import type { Metadata } from 'next'; import { withMdxMetadata, withDefaultMetadata, getLastUpdated } from '@/lib/metadata/util'; import { getMenuItem, getActiveAncestors } from '@/lib/menu/util'; import WithQuicknav from '@/components/WithQuickNav'; -import { Icon, type IconName } from '@/icons'; +import { Icon } from '@/icons'; import { Link } from '@/components'; import { cx } from 'class-variance-authority'; From 57a5be091473647db8fd584acacff98ffb085c3e Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 17:15:26 +0200 Subject: [PATCH 085/127] fix(api_bindings): relocate in devtools --- .../{getting-started => developer-tools}/api-bindings.mdx | 0 src/content/menu.json | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/content/{getting-started => developer-tools}/api-bindings.mdx (100%) diff --git a/src/content/getting-started/api-bindings.mdx b/src/content/developer-tools/api-bindings.mdx similarity index 100% rename from src/content/getting-started/api-bindings.mdx rename to src/content/developer-tools/api-bindings.mdx diff --git a/src/content/menu.json b/src/content/menu.json index 38992683..bfabb48b 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -364,6 +364,10 @@ "title": "API Reference", "path": "/api" }, + { + "title": "API bindings", + "path": "/developer-tools/api-bindings" + } { "title": "Webhooks", "path": "/developer-tools/webhooks" @@ -476,10 +480,6 @@ { "title": "HTTP Responses", "path": "/does-not-exist" - }, - { - "title": "API bindings", - "path": "/api/api-bindings" } ] } From 5fbd75ea97d4bf269eb2292f42f174747b56a557 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 17:22:26 +0200 Subject: [PATCH 086/127] fix(error) menu.json --- src/content/menu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/menu.json b/src/content/menu.json index bfabb48b..7c6d999f 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -367,7 +367,7 @@ { "title": "API bindings", "path": "/developer-tools/api-bindings" - } + }, { "title": "Webhooks", "path": "/developer-tools/webhooks" From 45ac83a69e485bcf87cbd0e238a95e7b7db14470 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 17:38:48 +0200 Subject: [PATCH 087/127] fix(shiki): rule --- src/lib/lang/rego.json | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/lib/lang/rego.json b/src/lib/lang/rego.json index 97743b1e..bad664e1 100644 --- a/src/lib/lang/rego.json +++ b/src/lib/lang/rego.json @@ -63,7 +63,7 @@ "name": "keyword.other.rego" }, "number": { - "match": "(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )", + "match": "(?x: # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional\n )", "name": "constant.numeric.rego" }, "operator": { @@ -76,17 +76,7 @@ }, "string": { "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.rego" - } - }, "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.rego" - } - }, "name": "string.quoted.double.rego", "patterns": [ { From f53be35f5113dbb14c40e575d84a84fa7a1ad357 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 18:20:41 +0200 Subject: [PATCH 088/127] fix(shiki): rm swift --- src/lib/highlight.tsx | 2 +- src/lib/lang/swift.json | 4239 --------------------------------------- 2 files changed, 1 insertion(+), 4240 deletions(-) delete mode 100644 src/lib/lang/swift.json diff --git a/src/lib/highlight.tsx b/src/lib/highlight.tsx index a28b831b..74eb1c7e 100644 --- a/src/lib/highlight.tsx +++ b/src/lib/highlight.tsx @@ -1,3 +1,4 @@ + import { createHighlighter, type Highlighter } from 'shiki'; export const theme = 'github-dark-default'; @@ -10,7 +11,6 @@ export async function getHighlighter() { themes: [theme], langs: [ () => import('./lang/rego.json'), - () => import('./lang/swift.json'), 'js', 'jsx', 'ts', diff --git a/src/lib/lang/swift.json b/src/lib/lang/swift.json deleted file mode 100644 index f94e8e12..00000000 --- a/src/lib/lang/swift.json +++ /dev/null @@ -1,4239 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jtbandes/swift-tmlanguage/blob/master/Swift.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jtbandes/swift-tmlanguage/commit/b8d2889b4af1d8bad41578317a6adade642555a3", - "name": "swift", - "scopeName": "source.swift", - "comment": "See swift.tmbundle/grammar-test.swift for test cases.", - "patterns": [ - { - "include": "#root" - } - ], - "repository": { - "async-throws": { - "match": "\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b", - "captures": { - "1": { - "name": "invalid.illegal.await-must-precede-throws.swift" - }, - "2": { - "name": "storage.modifier.exception.swift" - }, - "3": { - "name": "storage.modifier.async.swift" - } - } - }, - "attributes": { - "patterns": [ - { - "name": "meta.attribute.available.swift", - "begin": "((@)available)(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?", - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - } - }, - { - "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "patterns": [ - { - "name": "constant.numeric.swift", - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b" - } - ] - }, - { - "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "match": "(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])", - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "keyword.other.swift" - }, - "3": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - } - } - ] - }, - { - "name": "meta.attribute.objc.swift", - "begin": "((@)objc)(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "name": "entity.name.function.swift", - "match": "\\w*(?::(?:\\w*:)*(\\w*))?", - "captures": { - "1": { - "name": "invalid.illegal.missing-colon-after-selector-piece.swift" - } - } - } - ] - }, - { - "comment": "any other attribute", - "name": "meta.attribute.swift", - "begin": "(@)(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)", - "end": "(?!\\G\\()", - "beginCaptures": { - "0": { - "name": "storage.modifier.attribute.swift" - }, - "1": { - "name": "punctuation.definition.attribute.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "name": "meta.arguments.attribute.swift", - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "builtin-functions": { - "patterns": [ - { - "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses", - "name": "support.function.swift", - "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b" - }, - { - "comment": "Member functions in the standard library in Swift 3", - "name": "support.function.swift", - "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()" - }, - { - "comment": "Member functions in the standard library in Swift 2 only", - "name": "support.function.swift", - "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()" - } - ] - }, - "builtin-global-functions": { - "patterns": [ - { - "begin": "\\b(type)(\\()\\s*(of)(:)", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "support.function.dynamic-type.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - }, - "3": { - "name": "support.variable.parameter.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses", - "name": "support.function.swift", - "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b" - }, - { - "comment": "Global functions available in Swift 3", - "name": "support.function.swift", - "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()" - }, - { - "comment": "Global functions available in Swift 2 only", - "name": "support.function.swift", - "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()" - } - ] - }, - "builtin-properties": { - "patterns": [ - { - "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", - "name": "support.variable.swift", - "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)" - }, - { - "comment": "Properties in the standard library in Swift 3", - "name": "support.variable.swift", - "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b" - }, - { - "comment": "Properties in the standard library in Swift 2 only", - "name": "support.variable.swift", - "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b" - }, - { - "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties", - "name": "support.variable.swift", - "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b" - } - ] - }, - "builtin-types": { - "comment": "Types provided in the standard library", - "patterns": [ - { - "include": "#builtin-types-builtin-class-type" - }, - { - "include": "#builtin-types-builtin-enum-type" - }, - { - "include": "#builtin-types-builtin-protocol-type" - }, - { - "include": "#builtin-types-builtin-struct-type" - }, - { - "include": "#builtin-types-builtin-typealias" - }, - { - "name": "support.type.any.swift", - "match": "\\bAny\\b" - } - ] - }, - "builtin-types-builtin-class-type": { - "comment": "Builtin class types", - "name": "support.class.swift", - "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b" - }, - "builtin-types-builtin-enum-type": { - "patterns": [ - { - "comment": "CommandLine is an enum, but it acts like a constant", - "name": "support.constant.swift", - "match": "\\b(?:CommandLine|Process(?=\\.))\\b" - }, - { - "comment": "The return type of a function that never returns", - "name": "support.constant.never.swift", - "match": "\\bNever\\b" - }, - { - "comment": "Enum types in the standard library in Swift 3", - "name": "support.type.swift", - "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b" - }, - { - "comment": "Enum types in the standard library in Swift 2 only", - "name": "support.type.swift", - "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b" - } - ] - }, - "builtin-types-builtin-protocol-type": { - "patterns": [ - { - "comment": "Protocols in the standard library in Swift 3", - "name": "support.type.swift", - "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b" - }, - { - "comment": "Protocols in the standard library in Swift 2 only", - "name": "support.type.swift", - "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b" - } - ] - }, - "builtin-types-builtin-struct-type": { - "patterns": [ - { - "comment": "Structs in the standard library in Swift 3", - "name": "support.type.swift", - "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b" - }, - { - "comment": "Structs in the standard library in Swift 2 only", - "name": "support.type.swift", - "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b" - } - ] - }, - "builtin-types-builtin-typealias": { - "patterns": [ - { - "comment": "Typealiases in the standard library in Swift 3", - "name": "support.type.swift", - "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b" - }, - { - "comment": "Typealiases in the standard library in Swift 2 only", - "name": "support.type.swift", - "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b" - } - ] - }, - "code-block": { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.line.number-sign.swift", - "match": "\\A^(#!).*$\\n?", - "captures": { - "1": { - "name": "punctuation.definition.comment.swift" - } - } - }, - { - "name": "comment.block.documentation.swift", - "begin": "/\\*\\*(?!/)", - "end": "\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "patterns": [ - { - "include": "#comments-nested" - } - ] - }, - { - "name": "comment.block.documentation.playground.swift", - "begin": "/\\*:", - "end": "\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "patterns": [ - { - "include": "#comments-nested" - } - ] - }, - { - "name": "comment.block.swift", - "begin": "/\\*", - "end": "\\*/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "patterns": [ - { - "include": "#comments-nested" - } - ] - }, - { - "name": "invalid.illegal.unexpected-end-of-block-comment.swift", - "match": "\\*/" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.swift" - } - }, - "patterns": [ - { - "name": "comment.line.triple-slash.documentation.swift", - "begin": "///", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - } - }, - { - "name": "comment.line.double-slash.documentation.swift", - "begin": "//:", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - } - }, - { - "name": "comment.line.double-slash.swift", - "begin": "//", - "end": "$", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - } - } - ] - } - ] - }, - "comments-nested": { - "begin": "/\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#comments-nested" - } - ] - }, - "compiler-control": { - "patterns": [ - { - "contentName": "comment.block.preprocessor.swift", - "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)", - "end": "(?=^\\s*(#(elseif|else|endif)\\b))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.conditional.swift" - }, - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.import.preprocessor.conditional.swift" - }, - "3": { - "name": "constant.language.boolean.swift" - } - } - }, - { - "name": "meta.preprocessor.conditional.swift", - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.import.preprocessor.conditional.swift" - } - }, - "begin": "^\\s*(#)(if|elseif)\\s+", - "end": "(?=\\s*(?://|/\\*))|$", - "patterns": [ - { - "name": "keyword.operator.logical.swift", - "match": "(&&|\\|\\|)" - }, - { - "name": "constant.language.boolean.swift", - "match": "\\b(true|false)\\b" - }, - { - "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))", - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.architecture.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - } - }, - { - "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))", - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.os.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - } - }, - { - "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))", - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "entity.name.type.module.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - } - }, - { - "begin": "\\b(targetEnvironment)\\s*(\\()", - "end": "(\\))|$", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "name": "support.constant.platform.environment.swift", - "match": "\\b(simulator|UIKitForMac)\\b" - } - ] - }, - { - "begin": "\\b(swift|compiler)\\s*(\\()", - "end": "(\\))|$", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "name": "keyword.operator.comparison.swift", - "match": ">=|<" - }, - { - "name": "constant.numeric.swift", - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b" - } - ] - } - ] - }, - { - "name": "meta.preprocessor.conditional.swift", - "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)", - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.import.preprocessor.conditional.swift" - }, - "3": { - "patterns": [ - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "match": "\\S+" - } - ] - } - } - }, - { - "name": "meta.preprocessor.sourcelocation.swift", - "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)", - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.import.preprocessor.sourcelocation.swift" - }, - "4": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "5": { - "patterns": [ - { - "begin": "(file)\\s*(:)\\s*(?=\")", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "match": "(line)\\s*(:)\\s*([0-9]+)", - "captures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - }, - "3": { - "name": "constant.numeric.integer.swift" - } - } - }, - { - "name": "punctuation.separator.parameters.swift", - "match": "," - }, - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "match": "\\S+" - } - ] - }, - "6": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "7": { - "patterns": [ - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "match": "\\S+" - } - ] - } - } - } - ] - }, - "conditionals": { - "patterns": [ - { - "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])", - "captures": { - "1": { - "name": "keyword.operator.type.function.swift" - } - } - }, - { - "comment": "Swift 3: A & B", - "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])", - "captures": { - "1": { - "name": "keyword.operator.type.composition.swift" - } - } - }, - { - "name": "keyword.operator.type.optional.swift", - "match": "[?!]" - }, - { - "name": "keyword.operator.function.variadic-parameter.swift", - "match": "\\.\\.\\." - }, - { - "comment": "Swift 2: protocol", - "name": "keyword.other.type.composition.swift", - "match": "\\bprotocol\\b" - }, - { - "name": "keyword.other.type.metatype.swift", - "match": "(?<=\\.)(?:Protocol|Type)\\b" - }, - { - "include": "#declarations-available-types-tuple-type" - }, - { - "include": "#declarations-available-types-collection-type" - }, - { - "include": "#declarations-generic-argument-clause" - } - ] - }, - "declarations-available-types-collection-type": { - "comment": "array and dictionary types [Value] and [Key: Value]", - "begin": "\\[", - "end": "\\]|(?=[>){}])", - "beginCaptures": { - "0": { - "name": "punctuation.section.collection-type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.collection-type.end.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - }, - { - "begin": ":", - "end": "(?=\\]|[>){}])", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.extra-colon-in-dictionary-type.swift", - "match": ":" - }, - { - "include": "#declarations-available-types" - } - ] - } - ] - }, - "declarations-available-types-tuple-type": { - "begin": "\\(", - "end": "\\)|(?=[>\\]{}])", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple-type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.tuple-type.end.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "declarations-extension": { - "name": "meta.definition.type.$1.swift", - "begin": "\\b(extension)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "end": "(?<=\\})", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.swift", - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "SE-0143: Conditional Conformances", - "include": "#declarations-generic-where-clause" - }, - { - "include": "#declarations-inheritance-clause" - }, - { - "name": "meta.definition.type.body.swift", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "declarations-function": { - "name": "meta.definition.function.swift", - "begin": "(?x)\n\\b\n(func)\n\\s+\n(\n (?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n)\n\\s*\n(?=\\(|<)", - "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-parameter-clause" - }, - { - "include": "#declarations-parameter-clause" - }, - { - "include": "#declarations-function-result" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#declarations-generic-where-clause" - }, - { - "name": "meta.definition.function.body.swift", - "begin": "(\\{)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "declarations-function-initializer": { - "name": "meta.definition.function.initializer.swift", - "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*", - "end": "(?!\\G)(?=\\{|\\bwhere\\b|;|=)|$", - "beginCaptures": { - "1": { - "name": "keyword.operator.function-result.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "declarations-function-subscript": { - "name": "meta.definition.function.subscript.swift", - "begin": "(?|(?=[)\\]{}])", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.end.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "declarations-generic-parameter-clause": { - "name": "meta.generic-parameter-clause.swift", - "begin": "<", - "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "Swift 2: constraints inside the generic param list", - "include": "#declarations-generic-where-clause" - }, - { - "name": "keyword.control.loop.swift", - "match": "\\beach\\b" - }, - { - "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b", - "captures": { - "1": { - "name": "variable.language.generic-parameter.swift" - } - } - }, - { - "name": "punctuation.separator.generic-parameters.swift", - "match": "," - }, - { - "name": "meta.generic-parameter-constraint.swift", - "begin": "(:)\\s*", - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.generic-parameter-constraint.swift" - } - }, - "patterns": [ - { - "name": "entity.other.inherited-class.swift", - "begin": "\\G", - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#declarations-type-identifier" - }, - { - "include": "#declarations-type-operators" - } - ] - } - ] - } - ] - }, - "declarations-generic-where-clause": { - "name": "meta.generic-where-clause.swift", - "begin": "\\b(where)\\b\\s*", - "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)", - "beginCaptures": { - "1": { - "name": "keyword.other.generic-constraint-introducer.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-where-clause-requirement-list" - } - ] - }, - "declarations-generic-where-clause-requirement-list": { - "begin": "\\G|,\\s*", - "end": "(?=[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constraint" - }, - { - "include": "#declarations-available-types" - }, - { - "name": "meta.generic-where-clause.same-type-requirement.swift", - "begin": "(?&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])", - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.same-type.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - { - "name": "meta.generic-where-clause.conformance-requirement.swift", - "begin": "(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])", - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.conforms-to.swift" - } - }, - "patterns": [ - { - "contentName": "entity.other.inherited-class.swift", - "begin": "\\G\\s*", - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - } - ] - } - ] - }, - "declarations-import": { - "name": "meta.import.swift", - "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)", - "captures": { - "1": { - "name": "punctuation.definition.identifier.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - { - "name": "entity.name.type.swift", - "match": "(?x)\n(?<=\\G|\\.)\n\\$[0-9]+" - }, - { - "name": "entity.name.type.swift", - "match": "(?x)\n(?<=\\G|\\.)\n(?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n)\n(?=\\.|;|$|//|/\\*|\\s)", - "captures": { - "1": { - "patterns": [ - { - "name": "invalid.illegal.dot-not-allowed-here.swift", - "match": "\\." - } - ] - } - } - }, - { - "name": "punctuation.separator.import.swift", - "match": "\\." - }, - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "begin": "(?!\\s*(;|$|//|/\\*))", - "end": "(?=\\s*(;|$|//|/\\*))" - } - ] - } - ] - }, - "declarations-inheritance-clause": { - "name": "meta.inheritance-clause.swift", - "begin": "(:)(?=\\s*\\{)|(:)\\s*", - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "beginCaptures": { - "1": { - "name": "invalid.illegal.empty-inheritance-clause.swift" - }, - "2": { - "name": "punctuation.separator.inheritance-clause.swift" - } - }, - "patterns": [ - { - "begin": "\\bclass\\b", - "end": "(?=[={}]|(?!\\G)\\bwhere\\b)", - "beginCaptures": { - "0": { - "name": "storage.type.class.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-inheritance-clause-more-types" - } - ] - }, - { - "begin": "\\G", - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-inheritance-clause-inherited-type" - }, - { - "include": "#declarations-inheritance-clause-more-types" - }, - { - "include": "#declarations-type-operators" - } - ] - } - ] - }, - "declarations-inheritance-clause-inherited-type": { - "name": "entity.other.inherited-class.swift", - "begin": "(?=[`\\p{L}_])", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#declarations-type-identifier" - } - ] - }, - "declarations-inheritance-clause-more-types": { - "name": "meta.inheritance-list.more-types", - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-inheritance-clause-inherited-type" - }, - { - "include": "#declarations-inheritance-clause-more-types" - }, - { - "include": "#declarations-type-operators" - } - ] - }, - "declarations-macro": { - "name": "meta.definition.macro.swift", - "begin": "(?x)\n\\b\n(macro)\n\\s+\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\n\\s*\n(?=\\(|<|=)", - "end": "$|(?=;|//|/\\*|\\}|=)", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-parameter-clause" - }, - { - "include": "#declarations-parameter-clause" - }, - { - "include": "#declarations-function-result" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#declarations-generic-where-clause" - } - ] - }, - "declarations-operator": { - "name": "meta.definition.operator.swift", - "begin": "(?x)\n(?:\n \\b(prefix|infix|postfix)\n \\s+\n)?\n\\b\n(operator)\n\\s+\n(\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | \\. # Invalid dot\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*+\n )\n | ( \\. ( \\g | \\g | \\. )++ ) # Dot operators\n)\n\\s*", - "end": "(;)|$\\n?|(?=//|/\\*)", - "beginCaptures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "storage.type.function.operator.swift" - }, - "3": { - "name": "entity.name.function.operator.swift" - }, - "4": { - "comment": "workaround for https://github.com/microsoft/vscode-textmate/issues/140#issuecomment-1793610346", - "name": "entity.name.function.operator.swift", - "patterns": [ - { - "name": "invalid.illegal.dot-not-allowed-here.swift", - "match": "\\." - } - ] - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.swift" - } - }, - "patterns": [ - { - "include": "#declarations-operator-swift2" - }, - { - "include": "#declarations-operator-swift3" - }, - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "match": "((?!$|;|//|/\\*)\\S)+" - } - ] - }, - "declarations-operator-swift2": { - "begin": "\\G(\\{)", - "end": "(\\})", - "beginCaptures": { - "1": { - "name": "punctuation.definition.operator.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.operator.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\b(associativity)\\s+(left|right)\\b", - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - } - }, - { - "match": "\\b(precedence)\\s+([0-9]+)\\b", - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.numeric.integer.swift" - } - } - }, - { - "match": "\\b(assignment)\\b", - "captures": { - "1": { - "name": "storage.modifier.swift" - } - } - } - ] - }, - "declarations-operator-swift3": { - "match": "\\G(:)\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "captures": { - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#declarations-types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - "declarations-parameter-clause": { - "name": "meta.parameter-clause.swift", - "begin": "(\\()", - "end": "(\\))(?:\\s*(async)\\b)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - }, - "2": { - "name": "storage.modifier.async.swift" - } - }, - "patterns": [ - { - "include": "#declarations-parameter-list" - } - ] - }, - "declarations-parameter-list": { - "patterns": [ - { - "comment": "External parameter labels are considered part of the function name", - "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*:)", - "captures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "variable.parameter.function.swift" - }, - "5": { - "name": "punctuation.definition.identifier.swift" - }, - "6": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - { - "comment": "If no external label is given, the name is both the external label and the internal variable name", - "match": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)))(?=\\s*:)", - "captures": { - "1": { - "name": "variable.parameter.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - { - "begin": ":\\s*(?!\\s)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#declarations-available-types" - }, - { - "name": "invalid.illegal.extra-colon-in-parameter-list.swift", - "match": ":" - }, - { - "comment": "a parameter's default value", - "begin": "=", - "end": "(?=[,)])", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "declarations-precedencegroup": { - "name": "meta.definition.precedencegroup.swift", - "begin": "\\b(precedencegroup)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(?=\\{)", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "storage.type.precedencegroup.swift" - }, - "2": { - "name": "entity.name.type.precedencegroup.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#declarations-types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - { - "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?", - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - } - }, - { - "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?", - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.language.boolean.swift" - } - } - } - ] - } - ] - }, - "declarations-protocol": { - "name": "meta.definition.type.protocol.swift", - "begin": "\\b(protocol)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "end": "(?<=\\})", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#declarations-generic-where-clause" - }, - { - "name": "meta.definition.type.body.swift", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "patterns": [ - { - "include": "#declarations-protocol-protocol-method" - }, - { - "include": "#declarations-protocol-protocol-initializer" - }, - { - "include": "#declarations-protocol-associated-type" - }, - { - "include": "$self" - } - ] - } - ] - }, - "declarations-protocol-associated-type": { - "name": "meta.definition.associatedtype.swift", - "begin": "\\b(associatedtype)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "end": "(?!\\G)$|(?=[;}]|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "variable.language.associatedtype.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#declarations-inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#declarations-generic-where-clause" - }, - { - "include": "#declarations-typealias-assignment" - } - ] - }, - "declarations-protocol-protocol-initializer": { - "name": "meta.definition.function.initializer.swift", - "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n )\n\\s*\n(?=\\(|<)", - "end": "$|(?=;|//|/\\*|\\})", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-parameter-clause" - }, - { - "include": "#declarations-parameter-clause" - }, - { - "include": "#declarations-function-result" - }, - { - "include": "#async-throws" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#declarations-generic-where-clause" - }, - { - "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "declarations-type": { - "patterns": [ - { - "name": "meta.definition.type.$1.swift", - "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\b\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "end": "(?<=\\})", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#declarations-generic-where-clause" - }, - { - "include": "#declarations-inheritance-clause" - }, - { - "name": "meta.definition.type.body.swift", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "include": "#declarations-type-enum" - } - ] - }, - "declarations-type-enum": { - "name": "meta.definition.type.$1.swift", - "begin": "\\b(enum)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "end": "(?<=\\})", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#declarations-generic-where-clause" - }, - { - "include": "#declarations-inheritance-clause" - }, - { - "name": "meta.definition.type.body.swift", - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "patterns": [ - { - "include": "#declarations-type-enum-enum-case-clause" - }, - { - "include": "$self" - } - ] - } - ] - }, - "declarations-type-enum-associated-values": { - "begin": "\\G\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?x)\n(?:(_)|((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s+\n(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s*(:)", - "end": "(?=[,)\\]])", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "invalid.illegal.distinct-labels-not-allowed.swift" - }, - "5": { - "name": "variable.parameter.function.swift" - }, - "7": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - { - "begin": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\\s*(:)", - "end": "(?=[,)\\]])", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "variable.parameter.function.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - { - "comment": "an element without a label (i.e. anything else)", - "begin": "(?![,)\\]])(?=\\S)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#declarations-available-types" - }, - { - "name": "invalid.illegal.extra-colon-in-parameter-list.swift", - "match": ":" - } - ] - } - ] - }, - "declarations-type-enum-enum-case": { - "begin": "(?x)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "end": "(?<=\\))|(?![=(])", - "beginCaptures": { - "1": { - "name": "variable.other.enummember.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-type-enum-associated-values" - }, - { - "include": "#declarations-type-enum-raw-value-assignment" - } - ] - }, - "declarations-type-enum-enum-case-clause": { - "begin": "\\b(case)\\b\\s*", - "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])", - "beginCaptures": { - "1": { - "name": "storage.type.enum.case.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-type-enum-enum-case" - }, - { - "include": "#declarations-type-enum-more-cases" - } - ] - }, - "declarations-type-enum-more-cases": { - "name": "meta.enum-case.more-cases", - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#declarations-type-enum-enum-case" - }, - { - "include": "#declarations-type-enum-more-cases" - } - ] - }, - "declarations-type-enum-raw-value-assignment": { - "begin": "(=)\\s*", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#literals" - } - ] - }, - "declarations-type-identifier": { - "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "end": "(?!<)", - "beginCaptures": { - "1": { - "name": "meta.type-name.swift", - "patterns": [ - { - "include": "#builtin-types" - } - ] - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "begin": "(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#declarations-generic-argument-clause" - } - ] - } - ] - }, - "declarations-type-operators": { - "patterns": [ - { - "comment": "Swift 3: A & B", - "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])", - "captures": { - "1": { - "name": "keyword.operator.type.composition.swift" - } - } - }, - { - "comment": "SE-0390: Noncopyable structs and enums", - "match": "(?&|\\^~.])(~)(?![/=\\-+!*%<>&|\\^~.])", - "captures": { - "1": { - "name": "keyword.operator.type.requirement-suppression.swift" - } - } - } - ] - }, - "declarations-typealias": { - "name": "meta.definition.typealias.swift", - "begin": "\\b(typealias)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "entity.name.type.typealias.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "patterns": [ - { - "begin": "\\G(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#declarations-generic-parameter-clause" - } - ] - }, - { - "include": "#declarations-typealias-assignment" - } - ] - }, - "declarations-typealias-assignment": { - "begin": "(=)\\s*", - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "declarations-typed-variable-declaration": { - "begin": "(?x)\n\\b(?:(async)\\s+)?(let|var)\\b\\s+\n(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\\s*\n:", - "end": "(?=$|[={])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.swift" - }, - "2": { - "name": "keyword.other.declaration-specifier.swift" - } - }, - "patterns": [ - { - "include": "#declarations-available-types" - } - ] - }, - "declarations-types-precedencegroup": { - "patterns": [ - { - "comment": "Precedence groups in the standard library", - "name": "support.type.swift", - "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b" - } - ] - }, - "expressions": { - "comment": "trailing closures need to be parsed before other member references", - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references" - }, - { - "include": "#expressions-trailing-closure" - }, - { - "include": "#member-reference" - } - ] - }, - "expressions-trailing-closure": { - "patterns": [ - { - "comment": "foo { body } -- a call with a trailing closure and no argument clause", - "name": "meta.function-call.trailing-closure-only.swift", - "match": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*\\{)", - "captures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - } - }, - { - "comment": "foo: { body } -- labeled-trailing-closure (SE-0279)", - "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)(?=\\s*\\{)", - "captures": { - "1": { - "name": "support.function.any-method.trailing-closure-label.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - } - } - ] - }, - "expressions-without-trailing-closures": { - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references" - }, - { - "include": "#member-references" - } - ] - }, - "expressions-without-trailing-closures-or-member-references": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#code-block" - }, - { - "include": "#attributes" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-closure-parameter" - }, - { - "include": "#literals" - }, - { - "include": "#operators" - }, - { - "include": "#builtin-types" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-global-functions" - }, - { - "include": "#builtin-properties" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-compound-name" - }, - { - "include": "#conditionals" - }, - { - "include": "#keywords" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-availability-condition" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-macro-expansion" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-subscript-expression" - }, - { - "include": "#expressions-without-trailing-closures-or-member-references-parenthesized-expression" - }, - { - "name": "support.variable.discard-value.swift", - "match": "\\b_\\b" - } - ] - }, - "expressions-without-trailing-closures-or-member-references-availability-condition": { - "begin": "\\B(#(?:un)?available)(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "support.function.availability-condition.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))", - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - } - }, - { - "match": "(\\*)\\s*(.*?)(?=[,)])", - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - } - }, - { - "name": "invalid.illegal.character-not-allowed-here.swift", - "match": "[^\\s,)]+" - } - ] - }, - "expressions-without-trailing-closures-or-member-references-closure-parameter": { - "name": "variable.language.closure-parameter.swift", - "match": "\\$[0-9]+" - }, - "expressions-without-trailing-closures-or-member-references-compound-name": { - "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.", - "match": "(?x)\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # function name\n\\(\n (\n (\n ((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # argument label\n : # colon\n )+\n )\n\\)", - "captures": { - "1": { - "name": "entity.name.function.compound-name.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - }, - "3": { - "name": "punctuation.definition.entity.swift" - }, - "4": { - "patterns": [ - { - "name": "entity.name.function.compound-name.swift", - "match": "(?`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k):", - "captures": { - "1": { - "name": "punctuation.definition.entity.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - } - } - } - ] - } - } - }, - "expressions-without-trailing-closures-or-member-references-expression-element-list": { - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "an element with a label", - "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)", - "end": "(?=[,)\\]])", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "comment": "an element without a label (i.e. anything else)", - "begin": "(?![,)\\]])(?=\\S)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - }, - "expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression": { - "patterns": [ - { - "comment": "foo(args) -- a call whose callee is a highlightable name", - "name": "meta.function-call.swift", - "begin": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" - } - ] - }, - { - "comment": "[Int](args) -- a call whose callee is a more complicated expression", - "name": "meta.function-call.swift", - "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" - } - ] - } - ] - }, - "expressions-without-trailing-closures-or-member-references-macro-expansion": { - "name": "support.function.any-method.swift", - "match": "(#(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))" - }, - "expressions-without-trailing-closures-or-member-references-parenthesized-expression": { - "comment": "correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression", - "begin": "\\(", - "end": "(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple.begin.swift" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.tuple.end.swift" - }, - "2": { - "patterns": [ - { - "name": "invalid.illegal.rethrows-only-allowed-on-function-declarations.swift", - "match": "\\brethrows\\b" - }, - { - "include": "#async-throws" - } - ] - } - }, - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" - } - ] - }, - "expressions-without-trailing-closures-or-member-references-subscript-expression": { - "name": "meta.subscript-expression.swift", - "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list" - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "keyword.control.branch.swift", - "match": "(?\n (?> # no backtracking, avoids issues with negative lookbehind at end\n (?:\n \\\\Q\n (?:(?!\\\\E)(?!/\\2).)*+\n (?:\\\\E\n # A quoted sequence may not have a closing E, in which case it extends to the end of the regex\n | (?(3)|(?(\\{(?:\\g<-1>|(?!{).*?)\\}))\n (?:\\[(?!\\d)\\w+\\])?\n [X<>]?\n \\)\n | (?\\[ (?:\\\\. | [^\\[\\]] | \\g)+ \\])\n | \\(\\g?+\\)\n | (?:(?!/\\2)[^()\\[\\\\])+ # any character (until end)\n )+\n )\n)?+\n# may end with a space only if it is an extended literal or contains only a single escaped space\n(?(3)|(?(5)(?'\n '\\g<' NamedOrNumberRef '>'", - "match": "(?x)(\\\\[gk]<) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (>)", - "captures": { - "1": { - "name": "constant.character.escape.backslash.regexp" - }, - "2": { - "name": "variable.other.group-name.regexp" - }, - "3": { - "name": "keyword.operator.recursion-level.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "6": { - "name": "keyword.operator.recursion-level.regexp" - }, - "7": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "8": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "comment": "\"\\k'\" NamedOrNumberRef \"'\"\n \"\\g'\" NamedOrNumberRef \"'\"", - "match": "(?x)(\\\\[gk]') (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (')", - "captures": { - "1": { - "name": "constant.character.escape.backslash.regexp" - }, - "2": { - "name": "variable.other.group-name.regexp" - }, - "3": { - "name": "keyword.operator.recursion-level.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "6": { - "name": "keyword.operator.recursion-level.regexp" - }, - "7": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "8": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "comment": "'\\k{' NamedRef '}'", - "match": "(?x)(\\\\k\\{) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\})", - "captures": { - "1": { - "name": "constant.character.escape.backslash.regexp" - }, - "2": { - "name": "variable.other.group-name.regexp" - }, - "3": { - "name": "keyword.operator.recursion-level.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "name": "keyword.other.back-reference.regexp", - "match": "\\\\[1-9][0-9]+" - }, - { - "comment": "'(?P=' NamedRef ')'", - "match": "(?x)(\\(\\?(?:P[=>]|&)) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\))", - "captures": { - "1": { - "name": "keyword.other.back-reference.regexp" - }, - "2": { - "name": "variable.other.group-name.regexp" - }, - "3": { - "name": "keyword.operator.recursion-level.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "keyword.other.back-reference.regexp" - } - } - }, - { - "name": "keyword.other.back-reference.regexp", - "match": "\\(\\?R\\)" - }, - { - "comment": "'(?' NumberRef ')'", - "match": "(?x)(\\(\\?) ([+-]?\\d+) (?:([+-])(\\d+))? (\\))", - "captures": { - "1": { - "name": "keyword.other.back-reference.regexp" - }, - "2": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "3": { - "name": "keyword.operator.recursion-level.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "keyword.other.back-reference.regexp" - } - } - } - ] - }, - "literals-regular-expression-literal-backtracking-directive-or-global-matching-option": { - "match": "(?x)\n(\\(\\*)\n(?:\n (ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)\n (?:(:)([^)]+))?\n | (?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\d+))\n | (\n CRLF | CR | ANYCRLF | ANY | LF | NUL\n | BSR_ANYCRLF | BSR_UNICODE\n | NOTEMPTY_ATSTART | NOTEMPTY\n | NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR\n | NO_JIT | NO_START_OPT | UTF | UCP\n )\n)\n(\\))", - "captures": { - "1": { - "name": "keyword.control.directive.regexp" - }, - "2": { - "name": "keyword.control.directive.regexp" - }, - "3": { - "name": "keyword.control.directive.regexp" - }, - "4": { - "name": "variable.language.tag.regexp" - }, - "5": { - "name": "keyword.control.directive.regexp" - }, - "6": { - "name": "keyword.operator.assignment.regexp" - }, - "7": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "8": { - "name": "keyword.control.directive.regexp" - }, - "9": { - "name": "keyword.control.directive.regexp" - } - } - }, - "literals-regular-expression-literal-callout": { - "name": "meta.callout.regexp", - "match": "(?x)\n# PCRECallout\n(\\()(?\\?C)\n (?:\n (?\\d+)\n | `(?(?:[^`]|``)*)`\n | '(?(?:[^']|'')*)'\n | \"(?(?:[^\"]|\"\")*)\"\n | \\^(?(?:[^\\^]|\\^\\^)*)\\^\n | %(?(?:[^%]|%%)*)%\n | \\#(?(?:[^#]|\\#\\#)*)\\#\n | \\$(?(?:[^$]|\\$\\$)*)\\$\n | \\{(?(?:[^}]|\\}\\})*)\\}\n )?\n(\\))\n# NamedCallout\n| (\\()(?\\*)\n (?(?!\\d)\\w+)\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?:\\{ [^,}]+ (?:,[^,}]+)* \\})?\n (\\))\n# InterpolatedCallout\n| (\\()(?\\?)\n (?>(\\{(?:\\g<-1>|(?!{).*?)\\}))\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?[X<>]?)\n (\\))", - "captures": { - "1": { - "name": "punctuation.definition.group.regexp" - }, - "2": { - "name": "keyword.control.callout.regexp" - }, - "3": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "4": { - "name": "entity.name.function.callout.regexp" - }, - "5": { - "name": "entity.name.function.callout.regexp" - }, - "6": { - "name": "entity.name.function.callout.regexp" - }, - "7": { - "name": "entity.name.function.callout.regexp" - }, - "8": { - "name": "entity.name.function.callout.regexp" - }, - "9": { - "name": "entity.name.function.callout.regexp" - }, - "10": { - "name": "entity.name.function.callout.regexp" - }, - "11": { - "name": "entity.name.function.callout.regexp" - }, - "12": { - "name": "punctuation.definition.group.regexp" - }, - "13": { - "name": "punctuation.definition.group.regexp" - }, - "14": { - "name": "keyword.control.callout.regexp" - }, - "15": { - "name": "entity.name.function.callout.regexp" - }, - "16": { - "name": "variable.language.tag-name.regexp" - }, - "17": { - "name": "punctuation.definition.group.regexp" - }, - "18": { - "name": "punctuation.definition.group.regexp" - }, - "19": { - "name": "keyword.control.callout.regexp" - }, - "21": { - "name": "variable.language.tag-name.regexp" - }, - "22": { - "name": "keyword.control.callout.regexp" - }, - "23": { - "name": "punctuation.definition.group.regexp" - } - } - }, - "literals-regular-expression-literal-character-properties": { - "name": "constant.other.character-class.set.regexp", - "match": "(?x)\n\\\\[pP]\\{ ([\\s\\w-]+(?:=[\\s\\w-]+)?) \\}\n| (\\[:) ([\\s\\w-]+(?:=[\\s\\w-]+)?) (:\\])", - "captures": { - "1": { - "name": "support.variable.character-property.regexp" - }, - "2": { - "name": "punctuation.definition.character-class.regexp" - }, - "3": { - "name": "support.variable.character-property.regexp" - }, - "4": { - "name": "punctuation.definition.character-class.regexp" - } - } - }, - "literals-regular-expression-literal-custom-char-class": { - "patterns": [ - { - "name": "constant.other.character-class.set.regexp", - "begin": "(\\[)(\\^)?", - "end": "\\]", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.character-class.regexp" - } - }, - "patterns": [ - { - "include": "#literals-regular-expression-literal-custom-char-class-members" - } - ] - } - ] - }, - "literals-regular-expression-literal-custom-char-class-members": { - "comment": "TODO: should also include atoms?", - "patterns": [ - { - "comment": "\\b inside a character class represents a backspace", - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\b" - }, - { - "include": "#literals-regular-expression-literal-custom-char-class" - }, - { - "include": "#literals-regular-expression-literal-quote" - }, - { - "include": "#literals-regular-expression-literal-set-operators" - }, - { - "include": "#literals-regular-expression-literal-unicode-scalars" - }, - { - "include": "#literals-regular-expression-literal-character-properties" - } - ] - }, - "literals-regular-expression-literal-group-option-toggle": { - "comment": "A matching option sequence may be part of an \"isolated group\" which has an implicit scope that wraps the remaining elements of the current group", - "name": "keyword.other.option-toggle.regexp", - "match": "(?x)\n\\(\\?\n(?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n)\n\\)" - }, - "literals-regular-expression-literal-group-or-conditional": { - "patterns": [ - { - "name": "meta.group.absent.regexp", - "begin": "(\\()(\\?~)", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.regexp" - }, - "2": { - "name": "keyword.control.conditional.absent.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#literals-regular-expression-literal-regex-guts" - } - ] - }, - { - "name": "meta.group.conditional.regexp", - "begin": "(?x)\n# KnownConditionalStart\n(\\() (?\\?\\()\n (?:\n (? (?[+-]?\\d+)(?:(?[+-])(?\\d+))? )\n | (?R) \\g?\n | (?R&) (? (?(?!\\d)\\w+) (?:(?[+-])(?\\d+))? )\n | (?<) (?:\\g|\\g) (?>)\n | (?') (?:\\g|\\g) (?')\n | (?DEFINE)\n | (?VERSION)(?>?=)(?\\d+\\.\\d+)\n )\n(?\\))\n| (\\()(?\\?)(?=\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.regexp" - }, - "2": { - "name": "keyword.control.conditional.regexp" - }, - "4": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "5": { - "name": "keyword.operator.recursion-level.regexp" - }, - "6": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "7": { - "name": "keyword.control.conditional.regexp" - }, - "8": { - "name": "keyword.control.conditional.regexp" - }, - "10": { - "name": "variable.other.group-name.regexp" - }, - "11": { - "name": "keyword.operator.recursion-level.regexp" - }, - "12": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "13": { - "name": "keyword.control.conditional.regexp" - }, - "14": { - "name": "keyword.control.conditional.regexp" - }, - "15": { - "name": "keyword.control.conditional.regexp" - }, - "16": { - "name": "keyword.control.conditional.regexp" - }, - "17": { - "name": "keyword.control.conditional.regexp" - }, - "18": { - "name": "keyword.control.conditional.regexp" - }, - "19": { - "name": "keyword.operator.comparison.regexp" - }, - "20": { - "name": "constant.numeric.integer.decimal.regexp" - }, - "21": { - "name": "keyword.control.conditional.regexp" - }, - "22": { - "name": "punctuation.definition.group.regexp" - }, - "23": { - "name": "keyword.control.conditional.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#literals-regular-expression-literal-regex-guts" - } - ] - }, - { - "name": "meta.group.regexp", - "begin": "(?x)\n(\\()\n(\n # BasicGroupKind\n (\\?)\n (?:\n ([:|>=!*] | <[=!*])\n # named groups\n | P?< (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) >\n | ' (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) '\n # matching options\n | (?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n ): # case without : is handled by group-option-toggle\n )\n # PCRE2GroupKind\n | \\*(\n atomic\n |pla|positive_lookahead\n |nla|negative_lookahead\n |plb|positive_lookbehind\n |nlb|negative_lookbehind\n |napla|non_atomic_positive_lookahead\n |naplb|non_atomic_positive_lookbehind\n |sr|script_run\n |asr|atomic_script_run\n ):\n)?+", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.group.regexp" - }, - "2": { - "name": "keyword.other.group-options.regexp" - }, - "3": { - "name": "punctuation.definition.group.regexp" - }, - "4": { - "name": "punctuation.definition.group.regexp" - }, - "5": { - "name": "variable.other.group-name.regexp" - }, - "6": { - "name": "keyword.operator.balancing-group.regexp" - }, - "7": { - "name": "variable.other.group-name.regexp" - }, - "8": { - "name": "variable.other.group-name.regexp" - }, - "9": { - "name": "keyword.operator.balancing-group.regexp" - }, - "10": { - "name": "variable.other.group-name.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#literals-regular-expression-literal-regex-guts" - } - ] - } - ] - }, - "literals-regular-expression-literal-line-comment": { - "name": "comment.line.regexp", - "match": "(\\#).*$", - "captures": { - "1": { - "name": "punctuation.definition.comment.regexp" - } - } - }, - "literals-regular-expression-literal-quote": { - "name": "string.quoted.other.regexp.swift", - "begin": "\\\\Q", - "end": "\\\\E|(\\n)", - "beginCaptures": { - "0": { - "name": "constant.character.escape.backslash.regexp" - } - }, - "endCaptures": { - "0": { - "name": "constant.character.escape.backslash.regexp" - }, - "1": { - "name": "invalid.illegal.returns-not-allowed.regexp" - } - } - }, - "literals-regular-expression-literal-regex-guts": { - "patterns": [ - { - "include": "#literals-regular-expression-literal-quote" - }, - { - "name": "comment.block.regexp", - "begin": "\\(\\?\\#", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.regexp" - } - } - }, - { - "name": "meta.embedded.expression.regexp", - "begin": "<\\{", - "end": "\\}>", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.regexp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.regexp" - } - } - }, - { - "include": "#literals-regular-expression-literal-unicode-scalars" - }, - { - "include": "#literals-regular-expression-literal-character-properties" - }, - { - "name": "keyword.control.anchor.regexp", - "match": "[$^]|\\\\[AbBGyYzZ]|\\\\K" - }, - { - "include": "#literals-regular-expression-literal-backtracking-directive-or-global-matching-option" - }, - { - "include": "#literals-regular-expression-literal-callout" - }, - { - "include": "#literals-regular-expression-literal-backreference-or-subpattern" - }, - { - "name": "constant.character.character-class.regexp", - "match": "\\.|\\\\[CdDhHNORsSvVwWX]" - }, - { - "name": "constant.character.entity.control-character.regexp", - "match": "\\\\c." - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\[^c]" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[*+?]" - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "\\{\\s*\\d+\\s*(?:,\\s*\\d*\\s*)?\\}|\\{\\s*,\\s*\\d+\\s*\\}" - }, - { - "include": "#literals-regular-expression-literal-custom-char-class" - }, - { - "include": "#literals-regular-expression-literal-group-option-toggle" - }, - { - "include": "#literals-regular-expression-literal-group-or-conditional" - } - ] - }, - "literals-regular-expression-literal-set-operators": { - "patterns": [ - { - "name": "keyword.operator.intersection.regexp.swift", - "match": "&&" - }, - { - "name": "keyword.operator.subtraction.regexp.swift", - "match": "--" - }, - { - "name": "keyword.operator.symmetric-difference.regexp.swift", - "match": "\\~\\~" - } - ] - }, - "literals-regular-expression-literal-unicode-scalars": { - "name": "constant.character.numeric.regexp", - "match": "(?x)\n\\\\u\\{\\s*(?:[0-9a-fA-F]+\\s*)+\\}\n| \\\\u[0-9a-fA-F]{4}\n| \\\\x\\{[0-9a-fA-F]+\\}\n| \\\\x[0-9a-fA-F]{0,2}\n| \\\\U[0-9a-fA-F]{8}\n| \\\\o\\{[0-7]+\\}\n| \\\\0[0-7]{0,3}\n| \\\\N\\{(?:U\\+[0-9a-fA-F]{1,8} | [\\s\\w-]+)\\}" - }, - "literals-string": { - "patterns": [ - { - "comment": "SE-0168: Multi-Line String Literals", - "name": "string.quoted.double.block.swift", - "begin": "\"\"\"", - "end": "\"\"\"(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.content-after-opening-delimiter.swift", - "match": "\\G.+(?=\"\"\")|\\G.+" - }, - { - "name": "constant.character.escape.newline.swift", - "match": "\\\\\\s*\\n" - }, - { - "include": "#literals-string-string-guts" - }, - { - "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", - "name": "invalid.illegal.content-before-closing-delimiter.swift", - "match": "\\S((?!\\\\\\().)*(?=\"\"\")" - } - ] - }, - { - "name": "string.quoted.double.block.raw.swift", - "begin": "#\"\"\"", - "end": "\"\"\"#(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.content-after-opening-delimiter.swift", - "match": "\\G.+(?=\"\"\")|\\G.+" - }, - { - "name": "constant.character.escape.newline.swift", - "match": "\\\\#\\s*\\n" - }, - { - "include": "#literals-string-raw-string-guts" - }, - { - "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", - "name": "invalid.illegal.content-before-closing-delimiter.swift", - "match": "\\S((?!\\\\#\\().)*(?=\"\"\")" - } - ] - }, - { - "name": "string.quoted.double.block.raw.swift", - "begin": "(##+)\"\"\"", - "end": "\"\"\"\\1(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.content-after-opening-delimiter.swift", - "match": "\\G.+(?=\"\"\")|\\G.+" - } - ] - }, - { - "name": "string.quoted.double.single-line.swift", - "begin": "\"", - "end": "\"(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.returns-not-allowed.swift", - "match": "\\r|\\n" - }, - { - "include": "#literals-string-string-guts" - } - ] - }, - { - "comment": "SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)", - "name": "string.quoted.double.single-line.raw.swift", - "begin": "(##+)\"", - "end": "\"\\1(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.raw.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.raw.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.returns-not-allowed.swift", - "match": "\\r|\\n" - } - ] - }, - { - "comment": "SE-0168: raw string literals (one #, escapes supported)", - "name": "string.quoted.double.single-line.raw.swift", - "begin": "#\"", - "end": "\"#(#*)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.raw.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.raw.swift" - }, - "1": { - "name": "invalid.illegal.extra-closing-delimiter.swift" - } - }, - "patterns": [ - { - "name": "invalid.illegal.returns-not-allowed.swift", - "match": "\\r|\\n" - }, - { - "include": "#literals-string-raw-string-guts" - } - ] - } - ] - }, - "literals-string-raw-string-guts": { - "comment": "the same as #string-guts but with # in escapes", - "patterns": [ - { - "name": "constant.character.escape.swift", - "match": "\\\\#[0\\\\tnr\"']" - }, - { - "name": "constant.character.escape.unicode.swift", - "match": "\\\\#u\\{[0-9a-fA-F]{1,8}\\}" - }, - { - "contentName": "source.swift", - "name": "meta.embedded.line.swift", - "begin": "\\\\#\\(", - "end": "(\\))", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.swift" - }, - "1": { - "name": "source.swift" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "comment": "Nested parens", - "begin": "\\(", - "end": "\\)" - } - ] - }, - { - "name": "invalid.illegal.escape-not-recognized", - "match": "\\\\#." - } - ] - }, - "literals-string-string-guts": { - "patterns": [ - { - "name": "constant.character.escape.swift", - "match": "\\\\[0\\\\tnr\"']" - }, - { - "name": "constant.character.escape.unicode.swift", - "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}" - }, - { - "contentName": "source.swift", - "name": "meta.embedded.line.swift", - "begin": "\\\\\\(", - "end": "(\\))", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.swift" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.swift" - }, - "1": { - "name": "source.swift" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "comment": "Nested parens", - "begin": "\\(", - "end": "\\)" - } - ] - }, - { - "name": "invalid.illegal.escape-not-recognized", - "match": "\\\\." - } - ] - }, - "member-reference": { - "patterns": [ - { - "match": "(?<=\\.)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "captures": { - "1": { - "name": "variable.other.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - } - } - ] - }, - "operators": { - "patterns": [ - { - "comment": "Type casting", - "name": "keyword.operator.type-casting.swift", - "match": "\\b(is\\b|as([!?]\\B|\\b))" - }, - { - "comment": "This rule helps us speed up the matching.", - "begin": "(?x)\n(?=\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n | \\.\n (\n \\g # operator-head\n | \\.\n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)", - "end": "(?!\\G)", - "patterns": [ - { - "comment": "Prefix unary operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.increment-or-decrement.swift", - "match": "\\G(\\+\\+|\\-\\-)$" - }, - { - "name": "keyword.operator.arithmetic.unary.swift", - "match": "\\G(\\+|\\-)$" - }, - { - "name": "keyword.operator.logical.not.swift", - "match": "\\G!$" - }, - { - "name": "keyword.operator.bitwise.not.swift", - "match": "\\G~$" - }, - { - "name": "keyword.operator.custom.prefix.swift", - "match": ".+" - } - ] - } - } - }, - { - "comment": "Postfix unary operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.increment-or-decrement.swift", - "match": "\\G(\\+\\+|\\-\\-)$" - }, - { - "name": "keyword.operator.increment-or-decrement.swift", - "match": "\\G!$" - }, - { - "name": "keyword.operator.custom.postfix.swift", - "match": ".+" - } - ] - } - } - }, - { - "comment": "Infix operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.assignment.swift", - "match": "\\G=$" - }, - { - "name": "keyword.operator.assignment.compound.swift", - "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$" - }, - { - "name": "keyword.operator.arithmetic.swift", - "match": "\\G(\\+|\\-|\\*|/)$" - }, - { - "name": "keyword.operator.arithmetic.overflow.swift", - "match": "\\G&(\\+|\\-|\\*)$" - }, - { - "name": "keyword.operator.arithmetic.remainder.swift", - "match": "\\G%$" - }, - { - "name": "keyword.operator.comparison.swift", - "match": "\\G(==|!=|>|<|>=|<=|~=)$" - }, - { - "name": "keyword.operator.coalescing.swift", - "match": "\\G\\?\\?$" - }, - { - "name": "keyword.operator.logical.swift", - "match": "\\G(&&|\\|\\|)$" - }, - { - "name": "keyword.operator.bitwise.swift", - "match": "\\G(&|\\||\\^|<<|>>)$" - }, - { - "name": "keyword.operator.bitwise.swift", - "match": "\\G(===|!==)$" - }, - { - "name": "keyword.operator.ternary.swift", - "match": "\\G\\?$" - }, - { - "name": "keyword.operator.custom.infix.swift", - "match": ".+" - } - ] - } - } - }, - { - "comment": "Dot prefix unary operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.custom.prefix.dot.swift", - "match": ".+" - } - ] - } - } - }, - { - "comment": "Dot postfix unary operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.custom.postfix.dot.swift", - "match": ".+" - } - ] - } - } - }, - { - "comment": "Dot infix operator", - "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++", - "captures": { - "0": { - "patterns": [ - { - "name": "keyword.operator.range.swift", - "match": "\\G\\.\\.[.<]$" - }, - { - "name": "keyword.operator.custom.infix.dot.swift", - "match": ".+" - } - ] - } - } - } - ] - }, - { - "name": "keyword.operator.ternary.swift", - "match": ":" - } - ] - }, - "root": { - "patterns": [ - { - "include": "#compiler-control" - }, - { - "include": "#declarations" - }, - { - "include": "#expressions" - } - ] - } - } -} \ No newline at end of file From 74788e313c6acbb7695bf46148d9302085bd16fd Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 18:25:41 +0200 Subject: [PATCH 089/127] fix(shiki): rm swift --- src/content/formats/swift-registry.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index 50a2e958..35166b56 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -250,7 +250,7 @@ Package dependencies are declared in the `Package.swift` file. Edit the `Package The following is an example showing configured dependencies and targets sections in a `Package.swift` file to include Alamofire as a dependency: -```swift +``` // swift-tools-version: 5.9 import PackageDescription From be344da577abfb45e20772ce8ab9a9c38c2d4cf3 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 20:38:35 +0200 Subject: [PATCH 090/127] add(CLIcontainerized) --- src/content/developer-tools/cli.mdx | 51 ++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/src/content/developer-tools/cli.mdx b/src/content/developer-tools/cli.mdx index aa6a1c19..6ca29614 100644 --- a/src/content/developer-tools/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -6,11 +6,14 @@ The Cloudsmith Command Line Interface (CLI) is a Py2/Py3 text-based interface to ## Installation -You can install the latest CLI application from: +You can install or deploy the latest CLI application from: - [Cloudsmith](https://broadcasts.cloudsmith.com/cloudsmith/cli/) - [PyPi](https://pypi.python.org/pypi/cloudsmith-cli) - [Homebrew Tap](https://github.com/cloudsmith-io/homebrew-cloudsmith-cli) +- [DockerHub](https://hub.docker.com/r/cloudsmith/cloudsmith-cli) + +### Installing with pip The easiest way is to use `pip`, such as: @@ -68,6 +71,52 @@ refreshenv choco install cloudsmith-cli --source python ``` +### Deploying the CLI containerized + +Cloudsmith maintains a [Docker image for the Cloudsmith CLI](https://hub.docker.com/r/cloudsmith/cloudsmith-cli)⁠ built for use in CI/CD pipelines and automation environments. + +To deploy it, replace the `API_TOKEN` with the API Token associated to the service account you want to use, specifiying the Cloudsmith CLI command you want to use. For example, you can run `cloudsmith whoami`: + +```bash +docker run --rm \ +-e CLOUDSMITH_API_KEY=API_TOKEN \ +cloudsmith/cloudsmith-cli:1.8.3 \ +whoami +``` + +Successful execution of the command above will return the member or service account associated to the API Token used: + +```text +Retrieving your authentication status from the API ... OK +You are authenticated as: +M. Bolton (slug: mbolton, email: mbolton@initech.com) +``` + +For example, you can use the Cloudsmith CLI container to push a python package to your workspace/repository `WORKSPACE/REPOSITORY`. In this example, the python package `PACKAGE.whl` is located `/path_to_package/`, and the package is being mounted in the container filesystem in `/tmp/` as `my_package.whl`: + +```bash +docker run --rm \ +-e CLOUDSMITH_API_KEY=API_TOKEN \ +-v "/path_to_package/PACKAGE.whl:/tmp/my_package.whl" \ +cloudsmith/cloudsmith-cli:1.8.3 \ +push python WORKSPACE/REPOSITORY /tmp/my_package.whl +``` + +Successful execution of the command will return: + +```text +Checking python package upload parameters ... OK +Checking PACKAGE.whl file upload parameters ... OK +Requesting file upload for PACKAGE.whl ... OK +Uploading PACKAGE.whl: +Creating a new python package ... OK +Created: WORKSPACE/REPOSITORY/PACKAGEwhl (package_slug) + +Synchronising PACKAGEwhl: + +Package synchronised successfully in 6.001236 second(s)! +``` + ### Getting your API Key You'll need to authenticate Cloudsmith for any CLI actions that result in accessing private data or changing resources (such as pushing a new package to a repository). There are two ways to retrieve your API Key: From 9eab1a44834ca1731255e29baf045188ffad60c5 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 20:44:32 +0200 Subject: [PATCH 091/127] add(CLIcontainerized) fix --- src/content/developer-tools/cli.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/developer-tools/cli.mdx b/src/content/developer-tools/cli.mdx index 6ca29614..2389f51b 100644 --- a/src/content/developer-tools/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -92,7 +92,7 @@ You are authenticated as: M. Bolton (slug: mbolton, email: mbolton@initech.com) ``` -For example, you can use the Cloudsmith CLI container to push a python package to your workspace/repository `WORKSPACE/REPOSITORY`. In this example, the python package `PACKAGE.whl` is located `/path_to_package/`, and the package is being mounted in the container filesystem in `/tmp/` as `my_package.whl`: +For example, you can use the Cloudsmith CLI container to push a python package to your workspace/repository `WORKSPACE/REPOSITORY`. In this example, the python package `PACKAGE.whl` is located in `/path_to_package/`, and the package is being mounted in the container filesystem in `/tmp/` as `my_package.whl`: ```bash docker run --rm \ From 776df92006215e28ede4ef0f3bf3d32236111091 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 17 Jul 2025 21:58:07 +0200 Subject: [PATCH 092/127] add(zipapp) --- src/content/developer-tools/cli.mdx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/content/developer-tools/cli.mdx b/src/content/developer-tools/cli.mdx index 2389f51b..ddd8844a 100644 --- a/src/content/developer-tools/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -26,6 +26,26 @@ Or you can get the latest pre-release version from Cloudsmith: ```shell pip install --upgrade cloudsmith-cli --extra-index-url=https://dl.cloudsmith.io/public/cloudsmith/cli/python/index/ ``` +### Installing with zipapp + +Distributing Python applications can be challenging because, as an interpreted language, Python requires an interpreter to run code, unlike compiled languages that produce standalone executables. However, for smaller, pure-Python programs, a Python Zip application offers a straightforward solution for bundling and sharing your work. This method packages all the necessary code into a single ZIP file. + + +`python3` required to use this installation method. + + +```bash +# download latest release and make it executable +curl -s https://api.github.com/repos/cloudsmith-io/cloudsmith-cli/releases/latest | sed -n 's/"browser_download_url": //p' | xargs wget -qO cloudsmith.pyz +chmod +x ./cloudsmith.pyz +# move it into your $PATH +sudo mv ./cloudsmith.pyz /usr/local/bin/cloudsmith +``` +You are ready to use it: + +```bash +cloudsmith -h +``` ### Installing with Homebrew Tap From 643d3f03e1c5a238a82276e8de19104b2fcacb5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Jul 2025 21:46:58 +0000 Subject: [PATCH 093/127] build(deps-dev): bump @eslint/plugin-kit Bumps the npm_and_yarn group with 1 update in the / directory: [@eslint/plugin-kit](https://github.com/eslint/rewrite/tree/HEAD/packages/plugin-kit). Updates `@eslint/plugin-kit` from 0.2.5 to 0.2.8 - [Release notes](https://github.com/eslint/rewrite/releases) - [Changelog](https://github.com/eslint/rewrite/blob/main/packages/plugin-kit/CHANGELOG.md) - [Commits](https://github.com/eslint/rewrite/commits/plugin-kit-v0.2.8/packages/plugin-kit) --- updated-dependencies: - dependency-name: "@eslint/plugin-kit" dependency-version: 0.2.8 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] --- package-lock.json | 21 +++++++++++++++++---- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b406ba9..032f543b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3792,19 +3792,32 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz", - "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==", + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.12.0", + "@eslint/core": "^0.13.0", "levn": "^0.4.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af8a426c..d568cb02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1256,14 +1256,14 @@ packages: resolution: {integrity: sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.10.0': - resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.11.0': resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1276,8 +1276,8 @@ packages: resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@humanfs/core@0.19.1': @@ -6537,11 +6537,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/core@0.10.0': + '@eslint/core@0.11.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.11.0': + '@eslint/core@0.13.0': dependencies: '@types/json-schema': 7.0.15 @@ -6563,9 +6563,9 @@ snapshots: '@eslint/object-schema@2.1.4': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.8': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.13.0 levn: 0.4.1 '@humanfs/core@0.19.1': {} @@ -8559,7 +8559,7 @@ snapshots: '@eslint/core': 0.11.0 '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.20.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/plugin-kit': 0.2.8 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 From aced187a96d5ea774903b507d866f7c729f553a0 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 24 Jul 2025 00:47:23 +0200 Subject: [PATCH 094/127] add(tags like legacy site) --- src/components/Tag/Tag.module.css | 63 +++++++++++++++++++ src/components/Tag/Tag.tsx | 18 +++++- src/content/formats/alpine-repository.mdx | 6 +- src/content/formats/cargo-registry.mdx | 8 ++- src/content/formats/cocoapods-repository.mdx | 6 +- src/content/formats/composer-repository.mdx | 9 +-- src/content/formats/conan-repository.mdx | 6 +- src/content/formats/cran-repository.mdx | 6 +- src/content/formats/dart-repository.mdx | 12 ++-- src/content/formats/debian-repository.mdx | 9 ++- src/content/formats/docker-registry.mdx | 10 +-- src/content/formats/gradle-repository.mdx | 10 ++- src/content/formats/helm-chart-repository.mdx | 8 ++- src/content/formats/hex-repository.mdx | 11 ++-- src/content/formats/luarocks-repository.mdx | 8 +-- src/content/formats/maven-repository.mdx | 13 ++-- src/content/formats/npm-registry.mdx | 11 ++-- src/content/formats/nuget-feed.mdx | 9 ++- src/content/formats/oci-repository.mdx | 10 +-- src/content/formats/python-repository.mdx | 11 ++-- src/content/formats/raw-repository.mdx | 6 +- src/content/formats/redhat-repository.mdx | 10 ++- src/content/formats/ruby-repository.mdx | 11 ++-- src/content/formats/sbt-repository.mdx | 10 ++- src/content/formats/swift-registry.mdx | 11 ++-- .../formats/terraform-modules-repository.mdx | 6 +- src/content/formats/unity-registry.mdx | 4 +- src/content/formats/vagrant-repository.mdx | 6 +- 28 files changed, 215 insertions(+), 93 deletions(-) diff --git a/src/components/Tag/Tag.module.css b/src/components/Tag/Tag.module.css index 62fef964..62c43a3e 100644 --- a/src/components/Tag/Tag.module.css +++ b/src/components/Tag/Tag.module.css @@ -105,3 +105,66 @@ --method-text-color: var(--color-grey-base); } } + + + + +/* legacy tags */ + +.legacy { + border-radius: 12px; + font-size: .75em; + font-weight: 500; + padding: 2px 10px 1px 10px; + text-decoration: none; + transition: background-color .4s; + + display: inline-flex; + flex-shrink: 0; + align-self: flex-start; + letter-spacing: var(--letter-tags); + background-color: var(--method-bg-color); + color: var(--method-text-color); + font-family: var(--font-family-mono, monospace); /* Use variable, fallback to monospace */ + line-height: var(--line-height-compact); +} + +.blue { + --method-bg-color: #1478FF; + --method-text-color: #fff; +} + +.red { + --method-bg-color: #c42c4a; + --method-text-color: #fff; +} + +.purple { + --method-bg-color: #6f6fef; + --method-text-color: #fff; +} + +.orange { + --method-bg-color: #ea701d; + --method-text-color: #fff; +} + +.midnight-blue { + --method-bg-color: #021f2f; + --method-text-color: #fff; +} + +.dark-grey { + --method-bg-color: #9D9D9D; + --method-text-color: #fff; +} + +.dark-green { + --method-bg-color: #0D4449; + --method-text-color: #fff; +} + +.tomato { + --method-bg-color: #d43f3a; + --method-text-color: #fff; +} diff --git a/src/components/Tag/Tag.tsx b/src/components/Tag/Tag.tsx index 583afa63..c854a854 100644 --- a/src/components/Tag/Tag.tsx +++ b/src/components/Tag/Tag.tsx @@ -5,6 +5,10 @@ import styles from './Tag.module.css'; const tagVariants = cva(styles.root, { variants: { + theme: { + modern: '', + legacy: styles.legacy, // Apply legacy override class + }, size: { small: styles.small, medium: styles.medium, @@ -19,6 +23,14 @@ const tagVariants = cva(styles.root, { yellow: styles.yellow, red: styles.red, grey: styles.grey, + + blue: styles.blue, + purple: styles.purple, + orange: styles.orange, + 'midnight-blue': styles['midnight-blue'], + 'dark-grey': styles['dark-grey'], + 'dark-green': styles['dark-green'], + tomato: styles.tomato, }, active: { true: styles.active, @@ -28,6 +40,7 @@ const tagVariants = cva(styles.root, { }, }, defaultVariants: { + theme: 'modern', size: 'medium', type: 'status', }, @@ -59,8 +72,8 @@ const statusCodes: { [key in Tag.HttpResponseStatusCodes]: Tag.VariantsProps['va 422: 'red', }; -export const Tag = ({ size, type, active, mobileDarkMode, className, ...props }: Tag.Props) => { - const sharedVariants = { size, type, active, mobileDarkMode }; +export const Tag = ({ theme, size, type, active, mobileDarkMode, className, ...props }: Tag.Props) => { + const sharedVariants = { theme, size, type, active, mobileDarkMode }; if ('method' in props) { const { method, children, ...rest } = props; @@ -115,6 +128,7 @@ export namespace Tag { interface defaultProps { mobileDarkMode?: boolean; + theme?: 'modern' | 'legacy'; } export type Props = (withMethod | withStatusCode | withVariant) & defaultProps; diff --git a/src/content/formats/alpine-repository.mdx b/src/content/formats/alpine-repository.mdx index 286ab690..40c1878d 100644 --- a/src/content/formats/alpine-repository.mdx +++ b/src/content/formats/alpine-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Alpine Repository @@ -202,11 +202,11 @@ apk update ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -RSA Index +RSA Index ## Troubleshooting diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index f8801521..12715535 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -1,4 +1,4 @@ -import { Note, Video, BlockImage } from '@/components'; +import { Tag, Note, Video, BlockImage } from '@/components'; export const parentTitle = 'Supported Formats'; # Cargo Registry @@ -228,11 +228,13 @@ cargo install PACKAGE_NAME --registry REGISTRY_NAME` ## Security Scanning -Supported. Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. +Supported + +Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Key Signing Support -Not Supported. +Not Supported ## Known Limitations diff --git a/src/content/formats/cocoapods-repository.mdx b/src/content/formats/cocoapods-repository.mdx index 088767b6..35889974 100644 --- a/src/content/formats/cocoapods-repository.mdx +++ b/src/content/formats/cocoapods-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # CocoaPods Repository @@ -156,11 +156,11 @@ end ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -Not Supported by Format +Not Supported ## Troubleshooting diff --git a/src/content/formats/composer-repository.mdx b/src/content/formats/composer-repository.mdx index 0eb00bd7..d3b1a60b 100644 --- a/src/content/formats/composer-repository.mdx +++ b/src/content/formats/composer-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Composer Repository @@ -195,16 +195,17 @@ The following is an example of a complete (but minimal) `composer.json` file wit ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Supported +Supported ## Key Signing Support -GPG +GPG ## Troubleshooting diff --git a/src/content/formats/conan-repository.mdx b/src/content/formats/conan-repository.mdx index 86e5a901..95e5b4f1 100644 --- a/src/content/formats/conan-repository.mdx +++ b/src/content/formats/conan-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Conan Repository @@ -252,11 +252,11 @@ After enabling revisions, the `conan upload` command will upload revisions inste ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -Not Supported by Format +Not Supported by format ## Troubleshooting diff --git a/src/content/formats/cran-repository.mdx b/src/content/formats/cran-repository.mdx index 4178c832..dda5f889 100644 --- a/src/content/formats/cran-repository.mdx +++ b/src/content/formats/cran-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # CRAN Repository @@ -179,7 +179,9 @@ rm(r) ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream CRAN repositories that you wish to use for R packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index 5a45f379..dbedb22c 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Dart Repository @@ -167,20 +167,22 @@ Please also see the [pubspec docs](https://dart.dev/tools/pub/pubspec) for furth ## Security Scanning -Supported +Supported Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching -You can configure upstream Dart repositories that you wish to use for packages that are not available in your Cloudsmith repository. Catching Dart packages is not supported. +Configurable Proxying +Caching + +You can configure upstream Dart repositories that you wish to use for packages that are not available in your Cloudsmith repository. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -Not Supported by Format +Not Supported by Format ## Troubleshooting diff --git a/src/content/formats/debian-repository.mdx b/src/content/formats/debian-repository.mdx index bf029cdc..aceb3447 100644 --- a/src/content/formats/debian-repository.mdx +++ b/src/content/formats/debian-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Debian Repository @@ -297,14 +297,17 @@ apt-get update ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream Debian repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -GPG Index +GPG +Index ## Troubleshooting diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index a646df29..cbe0b53e 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Docker Registry @@ -240,7 +240,7 @@ FROM docker.cloudsmith.io/OWNER/REGISTRY/IMAGE_NAME:TAG ## Security Scanning -Supported +Supported Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. @@ -254,13 +254,15 @@ The Cloudsmith Docker registry implementation has the following limitations: ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching You can configure upstream Docker registries you wish to use for images. In addition, you can also choose to cache any requested images for future use. ## Key Signing Support -RSA Index +RSA +Index ## Troubleshooting diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index c20af3d4..bd9e0ce7 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -1,4 +1,4 @@ -import { Note } from '@/components'; +import { Tag, Note } from '@/components'; export const parentTitle = 'Supported Formats'; # Gradle Repository @@ -206,14 +206,18 @@ dependencies { ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -GPG Index Packages +GPG +Index +Packages ## Troubleshooting diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index 4317551e..ea3cd4cf 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Helm Chart Repository @@ -227,7 +227,8 @@ Note that this will require the GPG public key of the repository to be installed ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching You can configure upstream Helm repositories that you wish to use for charts that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested charts for future use. @@ -235,7 +236,8 @@ Please see our [Upstream Proxying](/repositories/upstreams) documentation for fu ## Key Signing Support -GPG Packages +GPG +Packages ## Troubleshooting diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index fd1da8a2..1ede3877 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -1,4 +1,4 @@ -import { Note } from '@/components'; +import { Tag, Note } from '@/components'; export const parentTitle = 'Supported Formats'; # Hex Repository @@ -90,7 +90,7 @@ To configure your Hex package for publishing to your Cloudsmith repository, foll ```shell defp hex do [ - api_url: "https://hex.cloudsmith.io/hex/OWNER/REPOSITORY", + api_url: "https://hex.cloudsmith.io/OWNER/REPOSITORY", api_key: "API-KEY" ] end @@ -200,12 +200,15 @@ To incorporate a package hosted on Cloudsmith into your project, you need to mod ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream Hex repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. diff --git a/src/content/formats/luarocks-repository.mdx b/src/content/formats/luarocks-repository.mdx index b130b57c..ad8a831d 100644 --- a/src/content/formats/luarocks-repository.mdx +++ b/src/content/formats/luarocks-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # LuaRocks Repository @@ -152,13 +152,9 @@ rocks_servers = { } ``` -*** - ## Upstream Proxying / Caching -Not Supported - -*** +Not Supported ## Troubleshooting diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index b1121e3a..8720889d 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Maven Repository @@ -319,12 +319,15 @@ mvn install ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream Maven repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. If you’ve configured your Maven upstream for caching, Cloudsmith will cache all files fetched from your upstream, including arbitrary files. @@ -345,7 +348,9 @@ Please see our [Upstream Proxying](/repositories/upstreams) documentation for fu ## Key Signing Support -GPG Index Packages +GPG +Index +Packages ## Troubleshooting diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index b7f684b7..20fef411 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -1,4 +1,4 @@ -import { Note, BlockImage, Video } from '@/components'; +import { Tag, Note, BlockImage, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # npm Registry @@ -354,19 +354,22 @@ Additionally, any search terms used are not passed to upstream repositories and ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream NPM repositories you wish to use as additional package sources for your Cloudsmith repository. You can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions ## Key Signing Support -GPG +GPG ## Troubleshooting diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index 8b2c30bc..c2e757b6 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -1,4 +1,4 @@ -import { Note } from '@/components'; +import { Tag, Note } from '@/components'; export const parentTitle = 'Supported Formats'; # NuGet Feed @@ -254,12 +254,15 @@ The Cloudsmith NuGet feed implementation has the following limitations: ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream NuGet feeds that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index cae58c19..a9c1ec9e 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -1,4 +1,4 @@ -import { Note } from '@/components'; +import { Tag, Note } from '@/components'; export const parentTitle = 'Supported Formats'; # OCI Repository @@ -223,19 +223,21 @@ Provenance files allow for verification of both the integrity and source of a He ## Security Scanning -Supported +Supported Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Chaching You can configure upstream OCI registries you wish to use by using our Docker Upstream feature. In addition, you can also choose to cache any requested artifacts for future use. ## Key Signing Support -RSA Index +RSA +Index ## Troubleshooting diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index 1af27c14..14f6ed32 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video, BlockImage } from '@/components'; +import { Tag, Note, Video, BlockImage } from '@/components'; export const parentTitle = 'Supported Formats'; import uv_terminal from './images/python/uv_terminal.png'; @@ -240,7 +240,7 @@ dependencies = [ name = "cloudsmith" url = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/" # optional, but recommended for publish: -publish-url = "https://python.cloudsmith.io/python/OWNER/REPOSITORY/" +publish-url = "https://python.cloudsmith.io/OWNER/REPOSITORY/" ``` Then, define the next environmental variables for `uv` to perform basic HTTP Auth. Replace `API-KEY` with your user API Token: @@ -334,12 +334,13 @@ To learn more about other dependency declaration formats supported, visit the [o ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching. +Configurable ProxyingCaching Please see [Upstream Proxying](/repositories/upstreams) for more details. @@ -347,7 +348,7 @@ Upstreams provide a way to _blend_ multiple Python repositories into a single re ## Key Signing Support -GPG +GPG ## Troubleshooting diff --git a/src/content/formats/raw-repository.mdx b/src/content/formats/raw-repository.mdx index 8bf158de..0b670564 100644 --- a/src/content/formats/raw-repository.mdx +++ b/src/content/formats/raw-repository.mdx @@ -1,4 +1,4 @@ -import { Note, BlockImage, Video } from '@/components'; +import { Tag, Note, BlockImage, Video } from '@/components'; export const parentTitle = 'Supported Formats'; import downloadPackageImage from './images/raw-repository/717e936e27b22feaee711ad6a412d1fade259c5768a4860d33ae5781152f8b68-download1.png'; @@ -229,11 +229,11 @@ https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/index.json ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -GPG +GPG ### Viewing Package Signatures diff --git a/src/content/formats/redhat-repository.mdx b/src/content/formats/redhat-repository.mdx index c5cb63a8..211bdf5e 100644 --- a/src/content/formats/redhat-repository.mdx +++ b/src/content/formats/redhat-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # RedHat Repository @@ -331,14 +331,18 @@ zypper rr OWNER-REPOSITORY-source ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream RedHat repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -GPG Index Packages +GPG +Index +Packages As RPM packages are signed with a GPG key upon upload, this results in a new checksum being generated for the package. diff --git a/src/content/formats/ruby-repository.mdx b/src/content/formats/ruby-repository.mdx index 3e0cfe86..b3c38be5 100644 --- a/src/content/formats/ruby-repository.mdx +++ b/src/content/formats/ruby-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Ruby Repository @@ -235,19 +235,22 @@ To install the latest version of a package: ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream Ruby repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -GPG +GPG ## Troubleshooting diff --git a/src/content/formats/sbt-repository.mdx b/src/content/formats/sbt-repository.mdx index 1615eb7d..7662f4fb 100644 --- a/src/content/formats/sbt-repository.mdx +++ b/src/content/formats/sbt-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # sbt Repository @@ -197,14 +197,18 @@ addMavenResolverPlugin ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure upstream repositories that you wish to use for packages that are not available in your Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. ## Key Signing Support -GPG Index Packages +GPG +Index +Packages ## Troubleshooting diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index 35166b56..c67cb559 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -1,5 +1,5 @@ -import { Note, BlockImage } from '@/components'; +import { Tag, Note, BlockImage } from '@/components'; export const parentTitle = 'Supported Formats'; import swift from './images/swift/swift.png'; @@ -317,12 +317,15 @@ swift package purge-cache ## Security Scanning -Supported +Supported + Please see our [Security Scanning](/policy-management/vulnerability-policy) documentation for further information. ## Upstream Proxying / Caching -Configurable Proxying Caching +Configurable Proxying +Caching + You can configure to proxy a private or public swift registry you wish to use for packages that are not available in your current Cloudsmith repository e.g. you can point to another Cloudsmith repository. In addition, you can also choose to cache any requested packages for future use. @@ -334,7 +337,7 @@ Please see our [Upstream Proxying](/repositories/upstreams) documentation for fu ## Key Signing Support -Not supported +Not supported ## Troubleshooting diff --git a/src/content/formats/terraform-modules-repository.mdx b/src/content/formats/terraform-modules-repository.mdx index 2c015d3d..ecf6d0c2 100644 --- a/src/content/formats/terraform-modules-repository.mdx +++ b/src/content/formats/terraform-modules-repository.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Terraform Modules Repository @@ -135,11 +135,11 @@ terraform init -upgrade=true ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -Not Supported by Format +Not Supported by Format ## Troubleshooting diff --git a/src/content/formats/unity-registry.mdx b/src/content/formats/unity-registry.mdx index 3231b70d..44c949b1 100644 --- a/src/content/formats/unity-registry.mdx +++ b/src/content/formats/unity-registry.mdx @@ -1,4 +1,4 @@ -import { Note, Video } from '@/components'; +import { Tag, Note, Video } from '@/components'; export const parentTitle = 'Supported Formats'; # Unity Registry @@ -196,7 +196,7 @@ For further information, please see the Unity documentation on [scoped registry ## Key Signing Support -GPG +GPG ## Troubleshooting diff --git a/src/content/formats/vagrant-repository.mdx b/src/content/formats/vagrant-repository.mdx index b4fdc7a1..48f92e6b 100644 --- a/src/content/formats/vagrant-repository.mdx +++ b/src/content/formats/vagrant-repository.mdx @@ -1,4 +1,4 @@ -import { Note } from '@/components'; +import { Tag, Note } from '@/components'; export const parentTitle = 'Supported Formats'; # Vagrant Repository @@ -156,11 +156,11 @@ vagrant up ## Upstream Proxying / Caching -Not Supported +Not Supported ## Key Signing Support -GPG +GPG ## Troubleshooting From b50d9a4849e8dbccaef9d9740d5b81e895afcb1a Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 10:56:50 +0200 Subject: [PATCH 095/127] removing experimental tags and fixing SVG to React props --- src/content/schemas/api-schema-v2.json | 12 ++++---- src/icons/svgs/Info.tsx | 4 +-- src/icons/svgs/Search.tsx | 4 +-- src/icons/svgs/homepage/API.tsx | 4 +-- src/icons/svgs/integration/Ansible.tsx | 4 +-- src/icons/svgs/integration/Jenkins.tsx | 40 +++++++++++++------------- src/icons/svgs/utility/Guide.tsx | 4 +-- 7 files changed, 36 insertions(+), 36 deletions(-) diff --git a/src/content/schemas/api-schema-v2.json b/src/content/schemas/api-schema-v2.json index eb6df263..e072a09d 100644 --- a/src/content/schemas/api-schema-v2.json +++ b/src/content/schemas/api-schema-v2.json @@ -408,7 +408,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "security": [ { "apikey": [] @@ -453,7 +453,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "requestBody": { "content": { "application/json": { @@ -546,7 +546,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "security": [ { "apikey": [] @@ -600,7 +600,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "requestBody": { "content": { "application/json": { @@ -663,7 +663,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "requestBody": { "content": { "application/json": { @@ -726,7 +726,7 @@ "required": true } ], - "tags": ["workspaces", "experimental"], + "tags": ["workspaces"], "security": [ { "apikey": [] diff --git a/src/icons/svgs/Info.tsx b/src/icons/svgs/Info.tsx index 590a9883..ff8ae323 100644 --- a/src/icons/svgs/Info.tsx +++ b/src/icons/svgs/Info.tsx @@ -8,8 +8,8 @@ export const InfoIcon = createIcon('info', ({ width = 16, hei fill: 'none', children: ( diff --git a/src/icons/svgs/Search.tsx b/src/icons/svgs/Search.tsx index 22d3521a..76820d3b 100644 --- a/src/icons/svgs/Search.tsx +++ b/src/icons/svgs/Search.tsx @@ -12,8 +12,8 @@ export const SearchIcon = createIcon( <> diff --git a/src/icons/svgs/homepage/API.tsx b/src/icons/svgs/homepage/API.tsx index 883800f4..9cb9d60e 100644 --- a/src/icons/svgs/homepage/API.tsx +++ b/src/icons/svgs/homepage/API.tsx @@ -15,8 +15,8 @@ export const HomepageAPIIcon = createIcon( fill="currentColor" /> diff --git a/src/icons/svgs/integration/Ansible.tsx b/src/icons/svgs/integration/Ansible.tsx index efdf0f6a..16ad751c 100644 --- a/src/icons/svgs/integration/Ansible.tsx +++ b/src/icons/svgs/integration/Ansible.tsx @@ -11,8 +11,8 @@ export const IntegrationAnsibleIcon = createIcon( children: ( <> diff --git a/src/icons/svgs/integration/Jenkins.tsx b/src/icons/svgs/integration/Jenkins.tsx index 5800bfb8..b5bcb642 100644 --- a/src/icons/svgs/integration/Jenkins.tsx +++ b/src/icons/svgs/integration/Jenkins.tsx @@ -21,62 +21,62 @@ export const IntegrationJenkinsIcon = createIcon( stroke-width="2.5" /> diff --git a/src/icons/svgs/utility/Guide.tsx b/src/icons/svgs/utility/Guide.tsx index 20d03f56..a172f6c9 100644 --- a/src/icons/svgs/utility/Guide.tsx +++ b/src/icons/svgs/utility/Guide.tsx @@ -11,8 +11,8 @@ export const UtilityGuideIcon = createIcon( children: ( <> From 7969ac6b23a374d52f14c7b8affbb29431141804 Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 11:47:23 +0200 Subject: [PATCH 096/127] renaming SidePanel to PageInfo --- src/app/(documentation)/[...slug]/page.tsx | 2 +- src/components/HomepageHero/HomepageHero.tsx | 14 +++++--------- .../PageInfo.module.css} | 0 .../SidePanel.tsx => PageInfo/PageInfo.tsx} | 6 +++--- src/components/PageInfo/index.ts | 1 + src/components/SidePanel/index.ts | 1 - src/components/WithQuickNav/WithQuicknav.tsx | 8 ++++---- 7 files changed, 14 insertions(+), 18 deletions(-) rename src/components/{SidePanel/SidePanel.module.css => PageInfo/PageInfo.module.css} (100%) rename src/components/{SidePanel/SidePanel.tsx => PageInfo/PageInfo.tsx} (86%) create mode 100644 src/components/PageInfo/index.ts delete mode 100644 src/components/SidePanel/index.ts diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index 5902aecf..c78b3a29 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -54,7 +54,7 @@ const Page = async ({ params }: PageProps) => { const parentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; return ( - + {parentTitle ? (

    {parentTitle} diff --git a/src/components/HomepageHero/HomepageHero.tsx b/src/components/HomepageHero/HomepageHero.tsx index e60ca3a5..0954f375 100644 --- a/src/components/HomepageHero/HomepageHero.tsx +++ b/src/components/HomepageHero/HomepageHero.tsx @@ -29,16 +29,16 @@ const HeroBackground = () => ( - - + + - + ( transform="matrix(4.37114e-08 1 1 -4.37114e-08 1080 177)" fill="var(--brand-color-blue-3)" /> - { +export const PageInfo = ({ path = '', lastUpdated }: PageInfoProps) => { const githubLink = `${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_URL}/tree/${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH}/${path}`; const getUpdatedLabel = (date: string) => { @@ -26,7 +26,7 @@ export const SidePanel = ({ path = '', lastUpdated }: SidePanelProps) => { ); }; -interface SidePanelProps { +interface PageInfoProps { path: string; lastUpdated?: string; } diff --git a/src/components/PageInfo/index.ts b/src/components/PageInfo/index.ts new file mode 100644 index 00000000..f285279c --- /dev/null +++ b/src/components/PageInfo/index.ts @@ -0,0 +1 @@ +export { PageInfo } from './PageInfo'; diff --git a/src/components/SidePanel/index.ts b/src/components/SidePanel/index.ts deleted file mode 100644 index 35517eae..00000000 --- a/src/components/SidePanel/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { SidePanel } from './SidePanel'; diff --git a/src/components/WithQuickNav/WithQuicknav.tsx b/src/components/WithQuickNav/WithQuicknav.tsx index 3487b281..27baaf24 100644 --- a/src/components/WithQuickNav/WithQuicknav.tsx +++ b/src/components/WithQuickNav/WithQuicknav.tsx @@ -1,7 +1,7 @@ import { Icon } from '@/icons'; import { quickNavContentId } from '@/lib/constants/quickNav'; import { QuickNav } from '../QuickNav'; -import { SidePanel } from '../SidePanel'; +import { PageInfo } from '../PageInfo'; import styles from './WithQuicknav.module.css'; @@ -10,7 +10,7 @@ import styles from './WithQuicknav.module.css'; See next.config.mjs for the SVG symbol usage. */ -const WithQuicknav = ({ children, showSidePanel = false, path = '', lastUpdated }: WithQuicknavProps) => { +const WithQuicknav = ({ children, showPageInfo = false, path = '', lastUpdated }: WithQuicknavProps) => { return (
    @@ -20,7 +20,7 @@ const WithQuicknav = ({ children, showSidePanel = false, path = '', lastUpdated
    @@ -29,7 +29,7 @@ const WithQuicknav = ({ children, showSidePanel = false, path = '', lastUpdated interface WithQuicknavProps { children: React.ReactNode; - showSidePanel?: boolean; + showPageInfo?: boolean; path?: string; lastUpdated?: string; } From 94c9ba5c0ef7b7eee3eefff6f5814f8af739cfba Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 11:49:03 +0200 Subject: [PATCH 097/127] require environmnent variables to show link to GitHub --- src/components/PageInfo/PageInfo.tsx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/PageInfo/PageInfo.tsx b/src/components/PageInfo/PageInfo.tsx index ca5bcbfb..36283df4 100644 --- a/src/components/PageInfo/PageInfo.tsx +++ b/src/components/PageInfo/PageInfo.tsx @@ -5,7 +5,9 @@ import { Icon } from '@/icons'; import { intlFormatDistance, parseISO } from 'date-fns'; export const PageInfo = ({ path = '', lastUpdated }: PageInfoProps) => { - const githubLink = `${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_URL}/tree/${process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH}/${path}`; + const docsUrl = process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_URL; + const docsBranch = process.env.NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH; + const githubLink = `${docsUrl}/tree/${docsBranch}/${path}`; const getUpdatedLabel = (date: string) => { const compare = parseISO(date); @@ -18,10 +20,12 @@ export const PageInfo = ({ path = '', lastUpdated }: PageInfoProps) => { {lastUpdated ? (
    {getUpdatedLabel(lastUpdated)}
    ) : null} - - - View on GitHub - + {docsUrl && docsBranch && ( + + + View on GitHub + + )}

    ); }; From 0e2f1830e5275e37a06744e3b6d05f25f6090606 Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 12:17:10 +0200 Subject: [PATCH 098/127] updating env file --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 870fb1bb..16725886 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io" -NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs" +NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs-public" NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH="staging" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file From c383eb0099218a35533d2002afe0f359ec71d57e Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 12:30:15 +0200 Subject: [PATCH 099/127] fixing conflict --- src/app/(documentation)/[...slug]/page.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/app/(documentation)/[...slug]/page.tsx b/src/app/(documentation)/[...slug]/page.tsx index 84a5b31b..348328f6 100644 --- a/src/app/(documentation)/[...slug]/page.tsx +++ b/src/app/(documentation)/[...slug]/page.tsx @@ -44,13 +44,10 @@ const Page = async ({ params }: PageProps) => { const mdxInfo = content.find((info) => info.slug === qualifiedSlug); if (mdxInfo) { - const { default: Post } = await import(`@/content/${mdxInfo.file}`); + const { parentTitle: mdxParentTitle, default: Post } = await import(`@/content/${mdxInfo.file}`); const repoPath = `src/content/${mdxInfo.file}`; const lastUpdated = await getLastUpdated(mdxInfo); - // 1. Look for a `parentTitle` exported from the .mdx file first. - const mdxParentTitle = mdxModule.parentTitle || null; - // 2. Original logic: Get parentTitle from the menu system. const pathname = `/${qualifiedSlug}`; const menuData = getMenuItem('documentation'); @@ -58,7 +55,7 @@ const Page = async ({ params }: PageProps) => { const menuParentTitle = ancestors.length > 1 ? ancestors[ancestors.length - 2].title : null; // 3. Prioritize the title from the MDX file, then fall back to the menu. - const parentTitle = mdxParentTitle || menuParentTitle; + const parentTitle = mdxParentTitle ?? menuParentTitle; return ( From 69f60a993bc9f499cc20584da9cb2dc4242a02e0 Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 12:34:12 +0200 Subject: [PATCH 100/127] pointing to main --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index 16725886..ee1cfd12 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io" NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs-public" -NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH="staging" +NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH="main" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file From 6f8935e65b401e8c6802ac917deea444d6715611 Mon Sep 17 00:00:00 2001 From: Rune Madsen Date: Mon, 28 Jul 2025 13:49:22 +0200 Subject: [PATCH 101/127] done with new docs --- docs/openapi.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/openapi.md b/docs/openapi.md index c2e397ee..d5ee0d08 100644 --- a/docs/openapi.md +++ b/docs/openapi.md @@ -1 +1,8 @@ # OpenAPI Schemas + +The `/api` pages are automatically generated based on two OpenAPI files in `src/content/schemas` holding the `v1` and `v2` API paths. + +There are two special features: + +- If a path has `"experimental"` as a tag, it will be listed with a big noted saying that this API endpoint is in early access. +- If a path has a `sandboxLink` property with a fully qualified URL, the page will show a API Sandbox link to that URL. From fe899f2fd1c92ebe29749313493ec76aa25e9ca8 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 5 Aug 2025 10:05:14 +0200 Subject: [PATCH 102/127] update(rate limits) --- src/content/api/rate-limits.mdx | 76 +++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/content/api/rate-limits.mdx diff --git a/src/content/api/rate-limits.mdx b/src/content/api/rate-limits.mdx new file mode 100644 index 00000000..5b86a688 --- /dev/null +++ b/src/content/api/rate-limits.mdx @@ -0,0 +1,76 @@ +# Rate Limits and Scaling Options + +Cloudsmith applies rate limits to protect platform reliability and security, and to ensure predictable performance for all users. These safeguards prevent abusive or accidental overuse and help customers avoid unexpected costs. + +Our platform is built to scale with your needs. If your workloads require higher limits, we’ll adjust them. Just [contact us](https://cloudsmith.com/company/contact-us) and we’ll work with you to set the right limits for your use case. + +## Cloudsmith Web App and API + +Cloudsmith applies default request limits based on how you access the platform. Authenticated usage is the preferred way to use Cloudsmith. It provides higher throughput, better security, and a more reliable experience for production workloads. + +The table below shows the baseline defaults: + +| Description | Rate Limit | +| :---- | :---- | +| Non-authenticated/anonymous users (by IP address) via API | 1,800 req/hour (0.5 req/sec) | +| Authenticated users with on Core plans via API | 5,400 req/hour (1.5 req/sec) | +| Authenticated users on Pro and Velocity plans via API | 10,800 req/hour (3 req/sec) | +| Authenticated users on Ultra or Enterprise plans via API | Custom rate limits apply | +| Authenticated users via [app.cloudsmith.com](http://app.cloudsmith.com) | 10,800 req/hour (3 req/sec) | +| Default download domains | 120,000 req/hour (33.33 req/sec) | +| Custom download domains | Custom rate limits apply | + +## Package Metadata APIs + +Cloudsmith provides native endpoints for different package formats (for example, npm, Docker, Maven, NuGet, and more). These endpoints have a default throttle of 1,512,000 requests per hour (per region, per user, and per organisation). This can be customised dynamically, applying to all package formats. + + +Cloudsmith regularly customizes limits to support customer use cases. If your workloads need more capacity, contact our team and we'll be happy to adjust limits to fit your needs. + + +Every API response includes headers to help you monitor and manage usage. These can be used in automated workflows to prevent disruptions and optimize performance: + +| Header | Meaning | Example | +| :---- | :---- | :---- | +| `X-RateLimit-Limit` | The maximum number of requests that the client is permitted to send per hour. | `600` | +| `X-RateLimit-Remaining` | The number of requests that are remaining in the current rate limit window. | `588` | +| `X-RateLimit-Reset` | The [UTC epoch timestamp](https://www.epochconverter.com/) at which the current rate limit window will reset. | `1485706850` | +| `X-RateLimit-Interval` | The time in seconds that client is suggested to wait until the next request in order to avoid consuming too much within the rate limit window. | `0.98256663893` | + +Let's see it in action: + +```shell +curl -i http://api.cloudsmith.io/user/self/ + +HTTP/1.0 200 OK +X-RateLimit-Interval: 60.0 +X-RateLimit-Limit: 600 +X-RateLimit-Remaining: 599 +X-RateLimit-Reset: 1485712175 +Date: Sun, 29 Jan 2017 16:49:34 GMT +``` + +If the client has exceeded the rate limit in a particular rate limit window a **429 Too Many Requests** status code will be sent instead of acting upon the request. The body response will be **JSON encoded** and include a detail message: + +```shell +curl -i http://api.cloudsmith.io/user/self/ + +HTTP/1.0 429 Too Many Requests +Allow: GET, OPTIONS +Content-Type: application/json +Retry-After: 3304 +Vary: Cookie +x-content-type-options: nosniff +X-Frame-Options: SAMEORIGIN +X-RateLimit-Interval: 3303.55762601 +X-RateLimit-Limit: 1 +X-RateLimit-Remaining: 0 +X-RateLimit-Reset: 1485712175 +Date: Sun, 29 Jan 2017 16:54:30 GMT + +{ + "detail": "Request was throttled. Expected available in 3304.0 seconds." +} +``` + +Our goal is to give every team a reliable, predictable platform that can meet its needs, without surprises. Rate limits protect Cloudsmith and our users. If your workflows require more capacity, we’ll work with you to ensure you always have the limits you need. From 3197af602e53888d42bf1b1ff27bd357fdb2f17f Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 5 Aug 2025 10:06:43 +0200 Subject: [PATCH 103/127] add(about cloudsmith section @alison) --- .../api-key.mdx | 0 .../common-use-cases.mdx | 48 +++++------ .../dependencies-for-developers.mdx | 0 .../deployment-for-operations.mdx | 2 +- .../images/api-ip-restrictions.png | Bin .../images/api-key-1.png | Bin .../images/developer.svg | 0 .../images/device.png | Bin .../images/signup.png | Bin .../index.mdx | 34 +++++--- src/content/about-cloudsmith/key-concepts.mdx | 81 ++++++++++++++++++ .../package-managers.mdx | 0 .../sign-in.mdx | 1 - .../sign-up.mdx | 0 src/content/getting-started/key-concepts.mdx | 61 ------------- 15 files changed, 129 insertions(+), 98 deletions(-) rename src/content/{getting-started => about-cloudsmith}/api-key.mdx (100%) rename src/content/{getting-started => about-cloudsmith}/common-use-cases.mdx (85%) rename src/content/{getting-started => about-cloudsmith}/dependencies-for-developers.mdx (100%) rename src/content/{getting-started => about-cloudsmith}/deployment-for-operations.mdx (96%) rename src/content/{getting-started => about-cloudsmith}/images/api-ip-restrictions.png (100%) rename src/content/{getting-started => about-cloudsmith}/images/api-key-1.png (100%) rename src/content/{getting-started => about-cloudsmith}/images/developer.svg (100%) rename src/content/{getting-started => about-cloudsmith}/images/device.png (100%) rename src/content/{getting-started => about-cloudsmith}/images/signup.png (100%) rename src/content/{getting-started => about-cloudsmith}/index.mdx (52%) create mode 100644 src/content/about-cloudsmith/key-concepts.mdx rename src/content/{getting-started => about-cloudsmith}/package-managers.mdx (100%) rename src/content/{getting-started => about-cloudsmith}/sign-in.mdx (99%) rename src/content/{getting-started => about-cloudsmith}/sign-up.mdx (100%) delete mode 100644 src/content/getting-started/key-concepts.mdx diff --git a/src/content/getting-started/api-key.mdx b/src/content/about-cloudsmith/api-key.mdx similarity index 100% rename from src/content/getting-started/api-key.mdx rename to src/content/about-cloudsmith/api-key.mdx diff --git a/src/content/getting-started/common-use-cases.mdx b/src/content/about-cloudsmith/common-use-cases.mdx similarity index 85% rename from src/content/getting-started/common-use-cases.mdx rename to src/content/about-cloudsmith/common-use-cases.mdx index b67a91b3..cd681496 100644 --- a/src/content/getting-started/common-use-cases.mdx +++ b/src/content/about-cloudsmith/common-use-cases.mdx @@ -8,7 +8,7 @@ This section outlines the primary and supporting use cases for Cloudsmith, detai Date: Tue, 5 Aug 2025 13:02:30 +0200 Subject: [PATCH 104/127] add(vscode) --- .../images/vscode/configure.gif | Bin 0 -> 76440 bytes .../images/vscode/overview.gif | Bin 0 -> 436660 bytes src/content/developer-tools/vscode.mdx | 82 ++++++++++++++++++ src/icons/icon-registry.tsx | 2 + src/icons/svgs/integration/VSCode.tsx | 30 +++++++ src/snippets/integrationsGroupSnippet.mdx | 21 +++++ 6 files changed, 135 insertions(+) create mode 100644 src/content/developer-tools/images/vscode/configure.gif create mode 100644 src/content/developer-tools/images/vscode/overview.gif create mode 100644 src/content/developer-tools/vscode.mdx create mode 100644 src/icons/svgs/integration/VSCode.tsx diff --git a/src/content/developer-tools/images/vscode/configure.gif b/src/content/developer-tools/images/vscode/configure.gif new file mode 100644 index 0000000000000000000000000000000000000000..49ab4aa9353cefd52f8bfbbb8b5968a35ecfb320 GIT binary patch literal 76440 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 z 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

    gj`9(6!GxID!VGZon%*)r790U>GDQr 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


    HniN#|-s1cF{RcQ+ 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%0DK??BZ#8VtNp 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 + ## Notification
    From b1ce1cefe5f94c11751ad3ae46af5b63da6b341f Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 5 Aug 2025 16:09:47 +0200 Subject: [PATCH 105/127] add(privileges guide from @dan + a few changes) --- src/content/guides/getting-started.mdx | 13 +- .../managing-permissions/access_control.png | Bin 0 -> 131329 bytes .../images/managing-permissions/object.png | Bin 0 -> 166473 bytes .../managing-permissions/repo_privileges.png | Bin 0 -> 270644 bytes .../images/managing-permissions/workspace.png | Bin 0 -> 310832 bytes src/content/guides/index.mdx | 9 -- src/content/guides/managing-permissions.mdx | 142 ++++++++++++++++++ 7 files changed, 149 insertions(+), 15 deletions(-) create mode 100644 src/content/guides/images/managing-permissions/access_control.png create mode 100644 src/content/guides/images/managing-permissions/object.png create mode 100644 src/content/guides/images/managing-permissions/repo_privileges.png create mode 100644 src/content/guides/images/managing-permissions/workspace.png delete mode 100644 src/content/guides/index.mdx create mode 100644 src/content/guides/managing-permissions.mdx diff --git a/src/content/guides/getting-started.mdx b/src/content/guides/getting-started.mdx index 575a94d9..cbeee999 100644 --- a/src/content/guides/getting-started.mdx +++ b/src/content/guides/getting-started.mdx @@ -6,31 +6,32 @@ In this guide we'll quickly step through just some of the initial steps we recom --- -### Step 1: Signing up +### Step 1: Sign up First things first. Sign up for Cloudsmith, and create your first workspace. -Signing up to Cloudsmith +Sign up to Cloudsmith + ### Step 2: Your workspace Take a quick tour around your new workspace. -Your Cloudsmith workspace +Your Cloudsmith workspace ### Step 3: Pulling a package In this step we'll pull a package from an upstream registry through Cloudsmith. -Pulling your first package +Pulling your first package ### Step 4: Adding a user Cloudsmith works best with teams, so we'll add our first additional user. -Adding users +Adding users ### Step 5: Securing your workspace In the final step of this guide, we'll show you just some of the ways you can make your workspace more secure. -Securing your workspace +Securing your workspace diff --git a/src/content/guides/images/managing-permissions/access_control.png b/src/content/guides/images/managing-permissions/access_control.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8fd7d6b9536eefef08c42d3d89a111ef8be05c GIT binary patch literal 131329 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 literal 0 HcmV?d00001 diff --git a/src/content/guides/images/managing-permissions/object.png b/src/content/guides/images/managing-permissions/object.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd29737ecb52b059ff49131e32d5befcfe4247d GIT binary patch literal 166473 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¬FcNR`%-rb)96{?o@ABD1zEv6?71jN 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 )N<+FGS1sDFd)X9v0h;SNN(ZqI{`~*M3Xv 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%0A}+O-L)KAJI!jMj3@T` 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 literal 0 HcmV?d00001 diff --git a/src/content/guides/images/managing-permissions/workspace.png b/src/content/guides/images/managing-permissions/workspace.png new file mode 100644 index 0000000000000000000000000000000000000000..cbff003a0f8b0f8c9e6b1d4884fda2cdb4c666ea GIT binary patch literal 310832 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 !Am|3_+M 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

      mdglm^xk&PGTloe4!F3pOF0b>Qa( zhQ}R5mH$#;RbC|7&p6lWLNHUNR-_q;6MD!ra31RIFDnl3l(Nf+8Zxz+}pH#@kh|

      =__SYX5|AUVw>5({o_Nkqsy8qH(WH&DS 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 Privileges**. + +#### Workspace User Roles + +Users in your Cloudsmith workspace can have one of the following roles: + +| Role | Permissions | +| :------------ | :------------------------------------------------------------------------------------------------------------------ | +| **Owners** | The "Superusers" of the workspace. They have access to all settings and repositories implicitly. They can manage or delete users, including other Owners. This is the only role that has such broad privileges. | +| **Managers** | They have access to workspace settings, can manage the workspace itself and can join teams, but have no repository access by default: managers must be members of teams that have access to a repository (or have explicit access granted as an individual user). | +| **Members** | The default role for new users. They can not manage any workspace settings but can see other members and visible teams, and they inherit privileges from the teams they belong to. | +| **Collaborators** | A limited user who can only see other team members and inherit privileges from their teams. Cannot access general Workspace or Repository settings. This role can be useful for things like granting a third party, such as a consultant, controlled access to your Cloudsmith workspace. | + + +The permissions described above apply to authenticated Cloudsmith users within your workspace. For providing artifact read-only access to external users or services, you should use **Entitlement Tokens**. These tokens provide access to a repository without requiring a Cloudsmith user account. + +For more information, please see the [**Entitlement Tokens Documentation**](/software-distribution/entitlement-tokens). + + +#### Global and Default Object Privileges + +Furthermore, you can modify these roles to have additional privileges through Global Privileges and Default Object Privileges. + +##### Global Privileges + +You can modify the Member role through global privileges so that Members can create teams, invite new users, see other users' email addresses and create repositories. Essentially, a subset of the privileges that the Manager role has. + + + +##### Default Object Privileges + +You can set the default privileges (`Admin`, `Write`, `Read`, or `None`) for **Members** and **Managers** on package repositories. For example, setting this to “Read” will mean that all Managers and Members will have read privileges on all package repositories. + +The default for this setting is “None” - meaning that all package repository privileges must be explicitly granted to Managers and Members. + +For a complete breakdown of these settings, please see the [**Workspace Privileges**](/workspaces/privileges) documentation. + + + + +Note that this setting does not apply to the **Collaborator** role, which must always be explicitly granted package repository privileges - either as an individual or inherited from a team membership. + + +### Team-based Permissions + +[Teams](accounts-and-teams/teams) are a powerful way to manage permissions in Cloudsmith, especially for workspaces with numerous users. Teams allow you to group users together for role-based access at scale, avoiding the complexity of managing repository privileges for individual accounts. + +If you are using [Single Sign On (SSO)](authentication/saml), it is also possible to automate team membership based on groups from your Identity Provider using SAML Group Sync. + +#### Team Roles + +When adding users or services to a team, you choose one of the following roles within the team: +- **Manager**: can manage the team settings (visible or invisible team) and can add/remove members. +- **Member**: only inherits privileges from the team. + +### Repository Access Control + +Cloudsmith supports detailed [privileges for repositories](repositories/repository-privileges), allowing organizations to define who can access what and to what extent. + +| Setting | Description | +| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Default Privileges** | Sets the default privilege (`Admin`, `Write`, `Read`, `None`) for all workspace **Members** on *this specific repository*, overriding the workspace-wide default. | +| **User/Team/Service Privileges** | You can grant a higher level of privilege to specific users, services, or teams, beyond the default. For example, you could give the "CI/CD" team `Write` access while the default for everyone else is `Read`. | +| **Repository Privileges** | Fine-tune the *minimum privilege level* required to perform specific actions like `Copy`, `Delete`, or `Resync` packages within this repository. | +| **Self Privileges** | Define actions that users can *always* perform on their own packages, regardless of other permissions. + +Default and User/Team/Service privileges are found within a repository, under “Settings > Access control”. + + + +The possible privileges for a package repository are: + +- **Read**: permits viewing repository contents and downloading artifacts. Ideal for developers who just need to be consumers of the repository. +- **Write**: extends privileges to include adding or updating packages, often assigned to services. +- **Admin**: grants complete control, including modifying repository settings and managing privileges. + +In addition, it is possible to fine-tune exactly what these privilege levels can do in a repository, or actions that users can perform on their own packages. To do so, browse to “Repository Settings > General". + + + +For example, it is possible to configure a package repository so that accounts with “Write” privileges can copy or move packages, but deleting packages requires “Admin” privileges. + +This granular approach helps to align with modern DevOps practices, enabling seamless collaboration while maintaining strict security protocols. + +## Putting It All Together: Effective Privilege + +The final or "effective" privilege for any user is the **greatest privilege** they are granted through any of the mechanisms explained above. The system checks for permissions on each of the privilege layers: + +1. Privileges assigned directly to the **User** on a repository. +2. Privileges inherited from any **Team** the user is a member of. +3. The **Default Privilege** set on the repository. +4. The workspace-wide **Default Object Privilege**. + +For example, if the workspace default is `Read`, but a user is on a team that has `Write` access to a repository, that user will have `Write` access. + +## Permissions Best Practices + +1. Use Teams for Simplified Management: + - Create teams aligned with functional groups (e.g., developers, QA, DevOps). + - Use SAML Group Sync to automate team memberships based on groups from your IdP. + - Assign repository-specific privileges for teams. + +2. Leverage Services for Automation: + - Create dedicated service accounts for CI/CD tools and restrict their access to only necessary repositories. + - Use OIDC to allow services to authenticate to Cloudsmith with short-lived tokens, negating the need to store long-lived service API Keys in external tools. + +3. Audit and Review Access Regularly: + - Periodically review permissions to ensure compliance with security policies. + - Utilize Cloudsmith's [Audit Logs]() to track changes in access control settings. + +4. Adopt the Principle of Least Privilege: + - Grant users, services and teams the minimum access they need to perform their tasks. For example, “Read” Privileges on a repository for Member accounts, but services have “Write” privileges to publish packages from CI/CD pipelines. This reduces the risk of accidental or malicious actions. + +### Why Flexible Access Control Matters + +Effective access control is a cornerstone of operational security. Cloudsmith's approach ensures that organizations can: +- Minimize risks of unauthorized access or data breaches. +- Adapt permissions to evolving team structures or projects. +- Maintain compliance with industry standards and best practices. + +By enabling precise control at both organizational and repository levels, Cloudsmith simplifies complex workflows while bolstering security—a must-have for businesses in DevOps, FinTech, and other industries. Whether you're setting up your first repository or managing access for a large team, Cloudsmith provides the tools to do so securely and efficiently. + +With this guide, you're equipped to harness Cloudsmith's capabilities and ensure that your software supply chain is secure, scalable, and streamlined. \ No newline at end of file From b8632be133e56767fbda7d568c1df19e2ba9890c Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 11:49:33 +0200 Subject: [PATCH 106/127] add: batch --- .../LegacySiteBanner.js} | 0 src/content/about-cloudsmith/index.mdx | 8 + .../accounts-and-teams/about-privileges.mdx | 78 +------ src/content/accounts-and-teams/teams.mdx | 3 + src/content/api/rate-limits.mdx | 28 +-- .../images/sbom/sbom_maven.png | Bin 0 -> 67370 bytes src/content/artifact-management/index.mdx | 1 + src/content/artifact-management/sbom.mdx | 204 +++++++++++++++++ .../search-filter-sort-packages.mdx | 22 +- .../SAMLnotDefaultWorkspace.png | Bin 0 -> 82198 bytes src/content/authentication/openid-connect.mdx | 10 +- .../single-sign-on-with-entra-id.mdx | 2 +- .../single-sign-on-with-okta.mdx | 4 +- src/content/authentication/single-sign-on.mdx | 9 +- src/content/bug-bounty-program.mdx | 212 ++++++++++++++++++ src/content/contributing.mdx | 105 +++++++++ src/content/contributor-license-agreement.mdx | 31 +++ src/content/customer-data-security.mdx | 45 ++++ src/content/developer-tools/api-bindings.mdx | 3 - src/content/developer-tools/cli.mdx | 29 ++- src/content/developer-tools/index.mdx | 0 src/content/developer-tools/vscode.mdx | 8 +- src/content/exploits-hall-of-fame.mdx | 57 +++++ src/content/formats/docker-registry.mdx | 14 +- .../images/nuget/setting-nuget-signing.png | Bin 0 -> 419371 bytes src/content/formats/nuget-feed.mdx | 44 +++- src/content/formats/nuget-symbol-server.mdx | 2 +- src/content/formats/oci-repository.mdx | 14 +- src/content/formats/swift-registry.mdx | 2 +- src/content/homepage.json | 10 +- src/content/integrations/index.mdx | 2 +- .../integrations/integrating-with-aikido.mdx | 2 +- .../integrating-with-aws-codebuild.mdx | 2 +- .../integrating-with-azure-devops.mdx | 28 +-- .../integrating-with-buildkite.mdx | 2 +- .../integrating-with-codefresh.mdx | 6 +- .../integrating-with-dependabot.mdx | 2 +- .../integrating-with-docker-hub.mdx | 3 +- .../integrating-with-github-actions.mdx | 2 +- .../integrating-with-gitlab-cicd.mdx | 2 +- .../integrations/integrating-with-harness.mdx | 2 +- .../integrating-with-teamcity.mdx | 2 +- .../access-log-exports-to-s3.mdx | 74 +++--- .../analyzing-s3-download-logs.mdx | 6 +- .../client-statistics.mdx | 145 ------------ .../exports-to-azure.mdx | 70 +++--- .../255b8e3-client-statistics.png | Bin 231826 -> 0 bytes .../5b18a8e-metrics-packages.png | Bin .../artifact_data.png | Bin .../delivery_summary.png | Bin .../overview.gif} | Bin .../overview_usage.png | Bin .../package_downloads.png | Bin src/content/logs-and-observability/index.mdx | 4 +- src/content/logs-and-observability/usage.mdx | 134 +++++++++++ src/content/menu.json | 48 ++-- .../migrating-to-cloudsmith/import-debian.mdx | 4 +- .../migrating-to-cloudsmith/import-rpm.mdx | 4 +- src/content/migrating-to-cloudsmith/index.mdx | 2 +- src/content/open-source-hosting-policy.mdx | 97 ++++++++ .../policy-management/api-key-policy.mdx | 2 +- src/content/policy-management/geoip-rules.mdx | 2 +- .../policy-management/license-policy.mdx | 4 +- .../policy-management/security-policy.mdx | 18 +- .../vulnerability-policy.mdx | 1 - src/content/repositories/index.mdx | 2 +- src/content/repositories/upstreams/index.mdx | 36 +-- .../broadcasts/index.mdx | 2 +- .../supply-chain-security/epm/rego.mdx | 40 +++- src/content/supply-chain-security/index.mdx | 6 +- .../supply-chain-security/signing-keys.mdx | 40 ++-- .../support/operational-performance copy.mdx | 44 ---- .../support/operational-performance.mdx | 6 +- src/content/support/security.mdx | 4 +- src/content/support/sla.mdx | 91 ++++++++ ...smith.com_demo_examples-repo_upstreams.png | Bin 444780 -> 0 bytes ...ith.com_demo_examples-repo_upstreams_1.png | Bin 382430 -> 0 bytes .../tbc/integrating-with-docker-hub.mdx | 39 ---- src/content/workspaces/overview.mdx | 2 +- src/snippets/integrationsGroupSnippet.mdx | 4 +- 80 files changed, 1360 insertions(+), 571 deletions(-) rename src/{content/accounts-and-teams/email-management.mdx => components/LegacySiteBanner.js} (100%) create mode 100644 src/content/artifact-management/images/sbom/sbom_maven.png create mode 100644 src/content/artifact-management/sbom.mdx create mode 100644 src/content/authentication/images/single-sign-on/SAMLnotDefaultWorkspace.png create mode 100644 src/content/bug-bounty-program.mdx create mode 100644 src/content/contributing.mdx create mode 100644 src/content/contributor-license-agreement.mdx create mode 100644 src/content/customer-data-security.mdx delete mode 100644 src/content/developer-tools/index.mdx create mode 100644 src/content/exploits-hall-of-fame.mdx create mode 100644 src/content/formats/images/nuget/setting-nuget-signing.png delete mode 100644 src/content/logs-and-observability/client-statistics.mdx delete mode 100644 src/content/logs-and-observability/images/client-statistics/255b8e3-client-statistics.png rename src/content/logs-and-observability/images/{client-statistics => usage}/5b18a8e-metrics-packages.png (100%) rename src/content/logs-and-observability/images/{client-statistics => usage}/artifact_data.png (100%) rename src/content/logs-and-observability/images/{client-statistics => usage}/delivery_summary.png (100%) rename src/content/logs-and-observability/images/{client-statistics/client-statistics-overview.gif => usage/overview.gif} (100%) rename src/content/logs-and-observability/images/{client-statistics => usage}/overview_usage.png (100%) rename src/content/logs-and-observability/images/{client-statistics => usage}/package_downloads.png (100%) create mode 100644 src/content/logs-and-observability/usage.mdx create mode 100644 src/content/open-source-hosting-policy.mdx delete mode 100644 src/content/support/operational-performance copy.mdx create mode 100644 src/content/support/sla.mdx delete mode 100644 src/content/tbc/images/integrating-with-docker-hub/a168960f3724e369c2591180e70a321ac94e2366f028912ba1c874f9ddb5c2a4-app.cloudsmith.com_demo_examples-repo_upstreams.png delete mode 100644 src/content/tbc/images/integrating-with-docker-hub/a43b766735fe0608006ff0b0a31102dfd479c401a5b9db57e19e67f5b6db3a1b-app.cloudsmith.com_demo_examples-repo_upstreams_1.png delete mode 100644 src/content/tbc/integrating-with-docker-hub.mdx diff --git a/src/content/accounts-and-teams/email-management.mdx b/src/components/LegacySiteBanner.js similarity index 100% rename from src/content/accounts-and-teams/email-management.mdx rename to src/components/LegacySiteBanner.js diff --git a/src/content/about-cloudsmith/index.mdx b/src/content/about-cloudsmith/index.mdx index 0a223cc3..bdcdf963 100644 --- a/src/content/about-cloudsmith/index.mdx +++ b/src/content/about-cloudsmith/index.mdx @@ -85,6 +85,14 @@ We maintain a set of tools to programmatically manage your workspaces, repositor linkText="API Reference" type="simple" /> + Privileges**. - -### Workspace User Roles - -Every user in a workspace has one of four roles, which defines their fundamental capabilities. - -| Role | Permissions | -| :------------ | :------------------------------------------------------------------------------------------------------------------ | -| **Owner** | Full "root" access. Can manage all workspace settings, billing, other owners, and has full access to all repositories. | -| **Manager** | Can manage workspace settings and all non-owner users and teams. Has no repository access by default. | -| **Member** | A standard user who inherits privileges from workspace defaults and team memberships. | -| **Collaborator** | A limited user who can only inherit privileges from their teams. Cannot access general Workspace or Repository settings. | - -### Global and Default Privileges - -The workspace settings also allow you to define two types of default permissions: - -* **Global Privileges:** You can grant **Members** the ability to perform workspace-level actions like creating new teams, inviting users, or creating new repositories. -* **Default Object Privileges:** You can set the default repository access (`Admin`, `Write`, `Read`, or `None`) that **Members** and **Managers** receive for all repositories in the workspace. **Collaborators** do not inherit these. - -For a complete breakdown of these settings, please see the **Workspace Privileges** documentation. - -## Team-Based Permissions - -Teams are the most efficient way to manage repository access for groups of users. Users can be added to a team as either a **Manager** (can manage the team itself) or a **Member**. - -The team itself does not have inherent privileges. Instead, you grant the **Team** a specific privilege level (e.g., `Read` or `Write`) on a particular repository. Every user in that team then inherits that level of access for that repository. - -This is configured at the repository level, under **Repository Settings > Access Control**. - -For more info on creating and managing teams, see the **Repository Privileges** documentation. - -## Repository-Level Privileges - -This is the most specific level of control, configured under **Repository Settings > Access Controls**. These settings apply only to the individual repository and can override the workspace defaults. - -### Repository Access Control - -| Setting | Description | -| :---------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Default Privileges** | Sets the default privilege (`Admin`, `Write`, `Read`, `None`) for all workspace **Members** on *this specific repository*, overriding the workspace-wide default. | -| **User/Team/Service Privileges** | You can grant a higher level of privilege to specific users, services, or teams, beyond the default. For example, you could give the "CI/CD" team `Write` access while the default for everyone else is `Read`. | -| **Repository Privileges** | Fine-tune the *minimum privilege level* required to perform specific actions like `Copy`, `Delete`, or `Resync` packages within this repository. | -| **Self Privileges** | Define actions that users can *always* perform on their own packages, regardless of other permissions. | - -For a detailed explanation of these settings, please see the **Repository Privileges** documentation. - -## Putting It All Together: Effective Privilege - -The final, or "effective," privilege for any user is the **greatest privilege** they are granted through any of these mechanisms. The system checks for permissions in this order: - -1. Privileges assigned directly to the **User** on a repository. -2. Privileges inherited from any **Team** the user is a member of. -3. The **Default Privilege** set on the repository. -4. The workspace-wide **Default Object Privilege**. - -For example, if the workspace default is `Read`, but a user is on a team that has `Write` access to a repository, that user will have `Write` access. - -## External Access: Entitlement Tokens - -The permissions described above apply to authenticated Cloudsmith users within your workspace. For providing read-only, programmatic access to external users or automated systems (like CI/CD pipelines or end-user clients), you should use **Entitlement Tokens**. These tokens provide access to a repository without requiring a Cloudsmith user account. - -For more information, please see the **Entitlement Tokens Documentation**. \ No newline at end of file +To learn more about privileges, visit each of the sections linked above, or complete our [Permissions guide](/guides/managing-permissions). diff --git a/src/content/accounts-and-teams/teams.mdx b/src/content/accounts-and-teams/teams.mdx index 0aabfd3d..34b2e766 100644 --- a/src/content/accounts-and-teams/teams.mdx +++ b/src/content/accounts-and-teams/teams.mdx @@ -27,3 +27,6 @@ A Team name is required while the description is optional. "Visibility" control | :------ | :------------------------------- | | Visible | non-members can view the team | | Hidden | non-members cannot view the team | + + +{/* TODO: we might need to add here a reference about team privileges at the repository settings */} \ No newline at end of file diff --git a/src/content/api/rate-limits.mdx b/src/content/api/rate-limits.mdx index 5b86a688..977fc82b 100644 --- a/src/content/api/rate-limits.mdx +++ b/src/content/api/rate-limits.mdx @@ -1,8 +1,6 @@ -# Rate Limits and Scaling Options +# Rate Limits and Scaling with Cloudsmith -Cloudsmith applies rate limits to protect platform reliability and security, and to ensure predictable performance for all users. These safeguards prevent abusive or accidental overuse and help customers avoid unexpected costs. - -Our platform is built to scale with your needs. If your workloads require higher limits, we’ll adjust them. Just [contact us](https://cloudsmith.com/company/contact-us) and we’ll work with you to set the right limits for your use case. +Cloudsmith applies rate limits to ensure reliability, security and consistent performance for all users. These limits help protect against abusive or accidental overuse. Most users will never encounter rate limits, and if your workloads require more capacity, we’ll adjust them. [Contact us](https://cloudsmith.com/company/contact-us) and we’ll work with you to configure limits to match your requirements. ## Cloudsmith Web App and API @@ -13,12 +11,12 @@ The table below shows the baseline defaults: | Description | Rate Limit | | :---- | :---- | | Non-authenticated/anonymous users (by IP address) via API | 1,800 req/hour (0.5 req/sec) | -| Authenticated users with on Core plans via API | 5,400 req/hour (1.5 req/sec) | -| Authenticated users on Pro and Velocity plans via API | 10,800 req/hour (3 req/sec) | -| Authenticated users on Ultra or Enterprise plans via API | Custom rate limits apply | -| Authenticated users via [app.cloudsmith.com](http://app.cloudsmith.com) | 10,800 req/hour (3 req/sec) | -| Default download domains | 120,000 req/hour (33.33 req/sec) | -| Custom download domains | Custom rate limits apply | +| Authenticated users on a Core plan via API | 5,400 req/hour (1.5 req/sec) | +| Authenticated users on a Pro or Velocity plans via API | 10,800 req/hour (3 req/sec) | +| Authenticated users on an Ultra or Enterprise plans via API | Custom rate limits apply | +| Authenticated [app.cloudsmith.com](http://app.cloudsmith.com) usage | 10,800 req/hour (3 req/sec) | +| Package downloads via default domain | 120,000 req/hour (33.33 req/sec) | +| Package downloads via [custom domain](https://help.cloudsmith.io/docs/custom-domains) | Custom rate limits apply | ## Package Metadata APIs @@ -28,7 +26,9 @@ Cloudsmith provides native endpoints for different package formats (for example, Cloudsmith regularly customizes limits to support customer use cases. If your workloads need more capacity, contact our team and we'll be happy to adjust limits to fit your needs. -Every API response includes headers to help you monitor and manage usage. These can be used in automated workflows to prevent disruptions and optimize performance: +## Monitoring your usage + +Each API response includes headers to help you monitor and manage usage. These can be used in automated workflows to prevent disruptions and optimize performance: | Header | Meaning | Example | | :---- | :---- | :---- | @@ -47,7 +47,7 @@ X-RateLimit-Interval: 60.0 X-RateLimit-Limit: 600 X-RateLimit-Remaining: 599 X-RateLimit-Reset: 1485712175 -Date: Sun, 29 Jan 2017 16:49:34 GMT +Date: Tue, 5 Aug 2025 12:34:56 GMT ``` If the client has exceeded the rate limit in a particular rate limit window a **429 Too Many Requests** status code will be sent instead of acting upon the request. The body response will be **JSON encoded** and include a detail message: @@ -73,4 +73,6 @@ Date: Sun, 29 Jan 2017 16:54:30 GMT } ``` -Our goal is to give every team a reliable, predictable platform that can meet its needs, without surprises. Rate limits protect Cloudsmith and our users. If your workflows require more capacity, we’ll work with you to ensure you always have the limits you need. +## Scaling with Cloudsmith + +Our goal is to give every team a reliable, predictable platform that can meet its needs, without surprises. Rate limits protect Cloudsmith and our users. If your workflows require more capacity, we’ll work with you to ensure you always have the limits you need. \ No newline at end of file diff --git a/src/content/artifact-management/images/sbom/sbom_maven.png b/src/content/artifact-management/images/sbom/sbom_maven.png new file mode 100644 index 0000000000000000000000000000000000000000..b961d7b9cc8cc821387fda7d484ebfa333807ca4 GIT binary patch literal 67370 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 literal 0 HcmV?d00001 diff --git a/src/content/artifact-management/index.mdx b/src/content/artifact-management/index.mdx index 0f84c5ea..0f29253d 100644 --- a/src/content/artifact-management/index.mdx +++ b/src/content/artifact-management/index.mdx @@ -54,6 +54,7 @@ Here's a list of supported actions with references to learn more about each of t | [Quarantine](/artifact-management/package-quarantine)| Package Quarantine | | [Resynchronize](/artifact-management/resync-a-package) | Republish (delete/add) a package (usually to retry a package sync failure) | | [Share Private](/artifact-management/) | Share a private package | +| [About Package SBOMs](/artifact-management/sbom/) | Learn how to get your package SBOM and sign it with cosign | 📘 **Promote Packages** diff --git a/src/content/artifact-management/sbom.mdx b/src/content/artifact-management/sbom.mdx new file mode 100644 index 00000000..6894873b --- /dev/null +++ b/src/content/artifact-management/sbom.mdx @@ -0,0 +1,204 @@ +import { Note, BlockImage } from '@/components' + +import sbom_maven from './images/sbom/sbom_maven.png'; + +# SBOMs + +The Software Bill of Materials (SBOMs) lists all components, including licenses and dependencies contained in a software product and other data, including checksums. SBOMs can be used to identify all your software components and improve supply chain security. + +An SBOM in a known format like SPDX or CycloneDX can help drive automation and trigger security alerts. Software end-users can use the SBOM to perform vulnerability and license analysis of their software packages, which can help evaluate risk in a software product. + +This guide explains how to manage and verify SBOMs with Cloudsmith. + +In the examples below we will use the following identifiers: + +| Identifier | Description | +| :-------------- | :----------------------------------------------------------------------- | +| WORKSPACE | Your Cloudsmith account name or workspace | +| REPOSITORY | Your Cloudsmith Repository name | +| IMAGE_NAME | The name of your Docker image | +| TAG | A tag for your Docker image | +| SBOM | An SBOM in a standard format supported by cosign, SPDX, SWID, Cyclone DX | +| DIGEST | `sha256:` | + + +## Automatic generation of SBOMs for container images + +Cloudsmith will automatically generate CycloneDX format SBOMs during container image package synchronization. SBOMs generated this way can be retrieved via the [packages API](https://docs.cloudsmith.com/api/packages/list). + +For example, to retrieve generated SBOMs for Docker images in a repository, the following cURL command can be used (specifying the format using `?q="format:docker"`): + +```bash +curl -sH "X-Api-Key: " https://api.cloudsmith.io/v1/packages/WORKSPACE/REPOSITORY/?q="format:docker" +``` + +Generated SBOMs will be returned in the response payload `files` field, with a tag value of `sbom-cyclonedx` as shown in the example response payload below: + +```json +"files" : [ + { + "cdn_url" : "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/docker/.sbom-cyclonedx.json", + "checksum_md5" : "dbbff381d1de3feb65c125a4a599c136", + "checksum_sha1" : "bbeee0f7e9b3a69ac5eec6a9137ea355cffabfef", + "checksum_sha256" : "7ba61e9879422111330cdfc2023fa5719a080d491d18f9be73313465e3ad5a9e", + "checksum_sha512" : "f3fe2e47bd5418308bda7f8421f99c3f5c8d2002e49b77c0bb05c1c12c9f58c6d76822426fdbf18f7cd10e1aa4ea472c40c8dbcae1195ebab9369b54e668ec69", + "downloads" : 0, + "filename" : ".sbom-cyclonedx.json", + "is_downloadable" : true, + "is_primary" : false, + "is_synchronised" : true, + "signature_url" : "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY//gpg..asc", + "size" : 1040, + "slug_perm" : "", + "tag" : "sbom-cyclonedx" + }, + ... +], +... +``` + +## Docker Images: Signing and Verifying SBOMs with Cosign + +Cloudsmith integrates with [Cosign](https://github.com/sigstore/cosign), an OCI artifact signing and verification solution that is part of the [SigStore](https://www.sigstore.dev/) project. Cosign supports container signing, verification and storage in an OCI registry. + +Follow the next steps to sign and verify a docker image `IMAGE_NAME:latest`: + +1. **Build, tag, and push** your Docker image to your Cloudsmith repository: + + ```bash + docker build -t IMAGE_NAME:latest . + docker tag IMAGE_NAME:latest docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest + docker push docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest + ``` + +2. **Retrieve the Digest for the Image**. To retrieve the digest for the image you just pushed, you can inspect it using the following command: + + ```bash + docker inspect --format='{{index .RepoDigests 0}}' docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest + ``` + + Extract the digest part from this output (`sha256:`) for use in Cosign commands. + + + Cosign recommends using image digests instead of tags to ensure you’re signing the exact intended image version. Tags can change over time, while digests are unique to specific image versions. + + +3. **Generating an SBOM**. There are a number of tools to generate an SBOM, including Trivy, Cyclone DX and Syft. Below is how to generate an SBOM of a Docker image with Syft: + + ```bash + syft docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest -o spdx-json > sbom.spdx.json + ``` + +4. **Attest the SBOM using Cosign**: Now, sign the SBOM file using Cosign and the digest, rather than the image tag: + + ```bash + cosign attest --type spdxjson --yes --predicate sbom.spdx.json docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME@DIGEST + ``` + + This command will output something like the following: + + ```text + Generating ephemeral keys... + Retrieving signed certificate... + + The sigstore service, hosted by sigstore a Series of LF Projects, LLC, is provided pursuant to the Hosted Project Tools Terms of Use, available at https://lfprojects.org/policies/hosted-project-tools-terms-of-use/. + Note that if your submission includes personal data associated with this signed artifact, it will be part of an immutable record. + This may include the email address associated with the account with which you authenticate your contractual Agreement. + This information will be used for signing this artifact and will be stored in public transparency logs and cannot be removed later, and is subject to the Immutable Record notice at https://lfprojects.org/policies/hosted-project-tools-immutable-records/. + ``` + + - During the Cosign attestation process, an ephemeral certificate is generated using OIDC authentication to ensure the signer’s identity. + - The attestation, along with the certificate, is recorded in Sigstore’s immutable transparency log, providing a permanent record of the artifact’s authenticity and provenance. + - A browser-based authentication step verifies the user’s identity, and the resulting signed certificate and transparency log entry ID are displayed for reference. + +5. **Verifying the SBOM Attestation**. After signing, verify the image and its associated attestation. This command checks that the image was signed by the specified identity and verifies the OIDC issuer: + + ```bash + cosign verify \ + --certificate-identity "your-username/your-repo/.github/workflows/workflow.yml@refs/heads/main" \ + --certificate-oidc-issuer https://token.actions.githubusercontent.com \ + docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest + ``` + + + - The --certificate-oidc-issuer flag specifies the trusted OIDC provider. In this example, GitHub Actions `https://token.actions.githubusercontent.com` serves as the issuer, verifying the identity of the entity signing the image. + - You can use other OIDC providers (e.g., Google, Azure AD) as issuers depending on your organization’s identity setup, offering flexibility to integrate with your existing infrastructure. + + +6. **Retrieving the Signed SBOM**: We can download the SBOM using the command below: + + ```bash + cosign download attestation + docker.cloudsmith.io/ciara-demo/cosign-test/test@sha256:d7a7ed92bf99090997e3a62830f611369ac3fac7a61bb38fb244234640f0c24a | + jq -r .payload | base64 -d + | jq .predicate + ``` + +## Storing SBOMs Inside Packages + +For non-Docker artifacts, SBOMs can be stored directly within packages, providing a persistent, portable record of dependencies and licenses. + +### Maven + +You can generate and include an SBOM using a Maven plugin for Java packages. + +This step-by-step guide walks you through generating an SBOM for a Maven project, attaching it, and deploying it to Cloudsmith. We use the[cyclonedx-maven-plugin](https://github.com/CycloneDX/cyclonedx-maven-plugin) to generate the SBOM in SPDX format: + +1. Build the Maven project: + + ```bash + mvn clean package + ``` + + This command compiles your project and packages it into a deployable artifact, such as a `.jar` file. + +2. Generate the SBOM. To create an SBOM, use the cyclonedx-maven-plugin. This plugin is specifically designed to generate SBOMs for Maven projects in the CycloneDX format, which is widely compatible with security and compliance tools. + + 1. Add the CycloneDX plugin to your project: + In your pom.xml file, add the following plugin configuration: + + ```xml + + + + org.cyclonedx + cyclonedx-maven-plugin + 2.9.0 + + + + ``` + + 2. Run the SBOM generation: + + ```bash + mvn org.cyclonedx:cyclonedx-maven-plugin:makeAggregateBom + ``` + + This command generates an SBOM file, typically in the target directory, as `bom.xml`. + +3. Configure Cloudsmith for Deployment. To do so, set up Cloudsmith credentials to deploy the package with its SBOM included. Update Maven settings with Cloudsmith credentials, by modifying or creating the `~/.m2/settings.xml` file, adding your Cloudsmith credentials (replace placeholders as necessary): + + ```xml + + + + cloudsmith + ${env.CLOUDSMITH_USER} + ${env.CLOUDSMITH_API_KEY} + + + + ``` + +4. Deploy the Maven Package with SBOM to Cloudsmith. With the SBOM generated and Cloudsmith credentials configured, deploy the artifact along with the SBOM. + + ```bash + mvn deploy -s ~/.m2/settings.xml + ``` + + This command uploads the Maven artifact and its embedded SBOM to Cloudsmith under the specified repository. + +5. Use the SBOM.You can view and download the SBOM from the Cloudsmith UI. Select your Maven artifact and then click on the Files tab where you can download the SBOM. + + diff --git a/src/content/artifact-management/search-filter-sort-packages.mdx b/src/content/artifact-management/search-filter-sort-packages.mdx index fbd21139..5357cae4 100644 --- a/src/content/artifact-management/search-filter-sort-packages.mdx +++ b/src/content/artifact-management/search-filter-sort-packages.mdx @@ -36,24 +36,24 @@ Our search syntax allows you to move beyond simple name-based searches and build |Entitlement Token Identifier (`token`)|`token:3lKPVJPosCsY` (packages visible for specified token)| |Dependencies (`dependency`)|`dependency:log4j` (search for packages that have a dependency with "log4j" in the name).
      `dependency:log4j=1.2.17` (search for packages dependencies name including "log4j" & version matching 1.2.17).
      `dependency:log4j<2.0.0` (search for packages dependencies with name including "log4j" & version less than 2.0.0).| |Repository (`repository`)|`repository:repo-name` (Search for packages within the repository named "repo-name")| -|**Debian:** Component|`deb_component:component-name` (Search for packages by Debian Component)| -|**Docker:** Image Digest|`docker_image_digest:sha256:abcdef` (Search for packages by Docker Image Digest)| -|**Docker:** Layer Digest|`docker_layer_digest:sha256:abcdef` (Search for packages by Docker Layer Digest)| -|**Maven:** GroupID|`maven_group_id:io.cloudsmith` (Search for packages by Maven GroupID)| +|**Debian**: Component|`deb_component:component-name` (Search for packages by Debian Component)| +|**Docker**: Image Digest|`docker_image_digest:sha256:abcdef` (Search for packages by Docker Image Digest)| +|**Docker**: Layer Digest|`docker_layer_digest:sha256:abcdef` (Search for packages by Docker Layer Digest)| +|**Maven**: GroupID|`maven_group_id:io.cloudsmith` (Search for packages by Maven GroupID)| |Packages that have violated a policy (`policy_violated`)|`true` (packages that have violated a policy)
      `false` (packages have not violated a policy)| |Packages that have violated a vulnerability policy (`vulnerability_policy_violated`)|`true` (packages that have violated a vulnerability policy)
      `false` (packages have not violated a vulnerability policy)| |Packages that have violated a license policy (`license_policy_violated`)|`true` (packages that have violated a license policy)
      `false` (packages have not violated a license policy)| |Packages that have violated a deny list policy (`deny_policy_violated`)|`true` (packages that have violated a deny list policy)
      `false` (packages have not violated a deny list policy)| -**For all queries you can use:** +**For all queries you can use**: `~` for negation. (Example: `~foo`) -**For string queries you can use:** +**For string queries you can use**: `^` - to anchor to start of term. (Example: `^foo`) `$` - to anchor to end of term. (Example: `foo$`) `*` - for fuzzy matching. (Example: `foo*bar`) -**For number or date queries you can use:** +**For number or date queries you can use**: `>` - for values greater than. (Example: `>foo`) `>=` - for values greater / equal. (Example: `>=foo`) `<` - for values less than. (Example: `'1 month ago'`, that becomes `uploaded > dd/mm/yy` (i.e, within the last month). -**For version queries you can use:** +**For version queries you can use**: `>` - for versions greater than. (Example: `>1.2.3.`) `>=` - for versions greater / equal. (Example: `>=1.2.3`) `<` - for versions less than. (Example: `<1.2.3`) @@ -221,7 +221,7 @@ Sorting search results is simple with Cloudsmith. A collection of one or more fi | Downloads (`downloads`) | `downloads` (sort by downloads ascending e.g. 0, 10, 50, 1,000) | | Date (`date`) | `-date` (sort by uploaded time, most recent first) | -**For all fields you can use:** +**For all fields you can use**: `-` to sort by descending order. (Example: `-date`, `-version`) ## A Short Worked Example @@ -235,7 +235,7 @@ Suppose that you had the following packages: | cloudsmith-java-app | Maven | 6910 | 1.0.0 | 2500 | | cloudsmith-example-pdf | Raw | 309 | 2.0.0 | 100 | -**To sort packages by size descending, your sort query would be:** +**To sort packages by size descending, your sort query would be**: ``` -size @@ -248,7 +248,7 @@ Which would provide the following results - cloudsmith-example-cli, Size: 719 bytes - cloudsmith-example-pdf, Size: 309 bytes -**To sort packages by format alphabetically, with version descending, your sort query would be:** +**To sort packages by format alphabetically, with version descending, your sort query would be**: ``` -format,-version diff --git a/src/content/authentication/images/single-sign-on/SAMLnotDefaultWorkspace.png b/src/content/authentication/images/single-sign-on/SAMLnotDefaultWorkspace.png new file mode 100644 index 0000000000000000000000000000000000000000..f4314f03221e0b87548218a5118bb860c747435a GIT binary patch literal 82198 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 literal 0 HcmV?d00001 diff --git a/src/content/authentication/openid-connect.mdx b/src/content/authentication/openid-connect.mdx index 8b48dff8..2bb0fbae 100644 --- a/src/content/authentication/openid-connect.mdx +++ b/src/content/authentication/openid-connect.mdx @@ -27,11 +27,11 @@ The following diagram gives an overview of how an OIDC provider integrates with ### OIDC Flow -1. **Request token:** The client initiates the workflow by requesting a token from the auth service to authenticate with Cloudsmith. -2. **Return token:** The auth service receives the token request. After verification and validation, it generates a JWT token. The auth service and the client have implicit trust, allowing for this token exchange. -3. **Present token:** The client presents a JWT token to Cloudsmith for access to resources. -4. **Verify token:** Cloudsmith verifies the JWT token with the auth service to ensure its authenticity and validity. This step includes verifying claims. -5. **Return new token:** Upon successful validation, Cloudsmith issues a short-lived access token to the client, granting access to Cloudsmith's resources for around 90 minutes to cover the duration of the job. +1. **Request token**: The client initiates the workflow by requesting a token from the auth service to authenticate with Cloudsmith. +2. **Return token**: The auth service receives the token request. After verification and validation, it generates a JWT token. The auth service and the client have implicit trust, allowing for this token exchange. +3. **Present token**: The client presents a JWT token to Cloudsmith for access to resources. +4. **Verify token**: Cloudsmith verifies the JWT token with the auth service to ensure its authenticity and validity. This step includes verifying claims. +5. **Return new token**: Upon successful validation, Cloudsmith issues a short-lived access token to the client, granting access to Cloudsmith's resources for around 90 minutes to cover the duration of the job. ## OIDC Settings diff --git a/src/content/authentication/single-sign-on-with-entra-id.mdx b/src/content/authentication/single-sign-on-with-entra-id.mdx index 95473d8e..f5664b93 100644 --- a/src/content/authentication/single-sign-on-with-entra-id.mdx +++ b/src/content/authentication/single-sign-on-with-entra-id.mdx @@ -73,7 +73,7 @@ Next, we'll configure SAML settings. Click the pencil symbol beside **Basic SAML ### Step 7 -To determine your **Identifier** and **Reply URL** (we use the same value for both) we use the following format: "https://app.cloudsmith.com/WORKSPACE/authentication/saml/acs/", where "WORKSPACE" is replaced with your workspace's slug. +To determine your **Identifier** and **Reply URL** (we use the same value for both) we use the following format: `https://cloudsmith.io/orgs/WORKSPACE/saml/acs/`, where "WORKSPACE" is replaced with your workspace's slug. diff --git a/src/content/authentication/single-sign-on-with-okta.mdx b/src/content/authentication/single-sign-on-with-okta.mdx index fdcaa637..0f627255 100644 --- a/src/content/authentication/single-sign-on-with-okta.mdx +++ b/src/content/authentication/single-sign-on-with-okta.mdx @@ -84,7 +84,7 @@ In the **Sign On** tab of your application management screen, you can see a link -Copy this metadata and add it to your Cloudsmith organization [SAML settings](/authentication/saml) as Inline XML. +Copy this metadata and add it to your Cloudsmith organization [SAML settings](/authentication/single-sign-on) as Inline XML. You can then [enable SAML authentication](/authentication/single-sign-on#enable-saml) in your Cloudsmith organization, and you can use Okta to begin logging in straight away. @@ -96,7 +96,7 @@ https://app.cloudsmith.com/WORKSPACE/saml/login/ Where `WORKSPACE` is your organization's slug/identifier (what you would normally see in the URL when accessing your organization within Cloudsmith). If you're unsure what this is, please just [contact us](https://cloudsmith.com/company/contact-us)! -You can also optionally set up [SAML Group Sync mappings](/authentication/saml) to automatically map OKTA groups to teams in your Cloudsmith organization, and SCIM to provision, deprovision and update user profile information. +You can also optionally set up [SAML Group Sync mappings](/authentication/single-sign-on) to automatically map OKTA groups to teams in your Cloudsmith organization, and SCIM to provision, deprovision and update user profile information. ## SAML Group Sync diff --git a/src/content/authentication/single-sign-on.mdx b/src/content/authentication/single-sign-on.mdx index 77cb4726..b01d1d13 100644 --- a/src/content/authentication/single-sign-on.mdx +++ b/src/content/authentication/single-sign-on.mdx @@ -2,6 +2,7 @@ import { Note, BlockImage } from '@/components' import img_Saml_setup from './images/single-sign-on/saml_setup.png' import img_SAML_Group_Sync_Create from './images/single-sign-on/saml_group_sync_setup.png' import img_create_mapping_form from './images/single-sign-on/saml_group_form.png' +import SAMLnotDefaultWorkspace from './images/single-sign-on/SAMLnotDefaultWorkspace.png'; # Single Sign-On via SAML @@ -12,9 +13,15 @@ Cloudsmith offers support for Single Sign-On (SSO) at the workspace level using 📘 **About SAML Login** -SAML Login is only allowed via your [primary workspace](/workspaces#primary-workspace). If you try to SAML login into a workspace that is not the primary one, the login will fail. If you can't access your account to set it up as your default workspace, login with username and password to a different workspace, then access to your workspaces section, and set the deafult workspace to your SAML one. +SAML Login is only allowed via your [primary workspace](/workspaces#primary-workspace). If you try to SAML login into a workspace that is not the primary one, the [login will fail](#failed-saml-login). If you can't access your account to set it up as your default workspace, login with username and password to a different workspace, then access to your workspaces section, and set the deafult workspace to your SAML one. +## Failed SAML Login + +If a user's primary workspace is not the one configured for SAML, their login attempt will fail and they will receive the following error message: + + + ## Getting Started Before configuring SSO with SAML, you'll need: diff --git a/src/content/bug-bounty-program.mdx b/src/content/bug-bounty-program.mdx new file mode 100644 index 00000000..e9974cfa --- /dev/null +++ b/src/content/bug-bounty-program.mdx @@ -0,0 +1,212 @@ +# Bug Bounty Program + +## Overview + +Cloudsmith aims to keep its Service safe, and data security is of utmost priority. Suppose you are a security researcher and have discovered a security vulnerability in the Service. In that case, we appreciate your help in disclosing it to us privately and letting us fix it before publishing technical details. + +Cloudsmith will engage with security researchers when vulnerabilities are reported to us, as described here. We will validate, respond to, and fix vulnerabilities to support our commitment to security and privacy. We won’t take legal action against, suspend, or terminate access to the Service of those who responsibly discover and report security vulnerabilities. Cloudsmith reserves all of its legal rights in the event of any noncompliance. + +We are pleased to offer thanks and/or a bounty reward for vulnerability information that helps us protect our customers thanks to the security researchers who choose to participate in our bug bounty program. This will range from the public thanks to a variable monetary amount or loot (depending on our budget and the impact). + +## Rules & Process + +If you identify a verified security vulnerability in compliance with this Security Disclosure Policy (i.e. Bug Bounty Program), you can submit this to our bug bounty program with the following process: + +1. You should determine if an exploit is _viable_ (i.e., practically possible). +2. You should also check to ensure it's not explicitly out-of-scope (see below). +3. Please feel free to report the exploit to us using the relevant information (see below). +4. We will let you know we received the disclosure and triage impact and then schedule a review. +5. The urgency for review will be determined based on the type and impact of the exploit. +6. It may take up to one month to triage, depending on how busy the team is (we're not huge!) +7. Timeframes are typically hours for critical/high, days for medium and (up to) weeks for low. +8. Please do NOT send continual "any update?" messages; we get reminded automatically. +9. Any disrespectful communications to our staff including but not limited to frequent checkups on the status of a report will make the report ineligible for any award. +10. We will let you know if the exploit is viable and whether we accept it as a bug bounty (or not). +11. If viable and fixed, we will publicly thank you on our [Hall of Fame](/exploits-hall-of-fame). +12. You may also be issued with an award in addition to being placed in the Hall of Fame. + 1. N.B. if the same exploit is reported by multiple reporters prior to remediation, then the first valid report that documents the exploit will receive the credit. + + +Please note that in _absolutely no event_ are you permitted to access, download, or modify data residing in any other Account or one that is not registered to you unless permission is _expressly provided_ by the Account Owner. + + + +If a monetary award is provided as a bounty, you are responsible for paying any taxes associated with the reward. We are obliged by law to report any such awards to the tax authorities, so please make sure that you handle this appropriately. + + +## In Scope + +The bug bounty scope applies to: + +- The [Cloudsmith Classic App](https://cloudsmith.io) (the "old" app); +- The [Cloudsmith Web App](https://app.cloudsmith.com) (the "new" app); +- The [Cloudsmith Core API](https://api.cloudsmith.io); +- The [Cloudsmith Corporate Site](https://cloudsmith.com). + +The vulnerability classifications that are considered in-scope are: + +- Access Control Bypass; +- API Misuse Issues; +- Authentication (Broken or Bypassed); +- Business Logic Issues; +- Cross-Site Scripting (XSS); +- Cross-Site Request Forgery (CSRF); +- Complexity Bomb; +- Decompression Bomb; +- Directory Traversal; +- Improper TLS protection; +- Open URL Redirection; +- Privilege Escalation; +- Provisioning Errors; +- Remote Code Execution (RCE); +- Sensitive/Private Data Leaks; +- Session Fixation; +- Session Management (Broken or Bypassed); +- Subdomain/Domain Takeover; +- SQL Injection. + +If a vulnerability isn't explicitly listed here as either in-scope or explicitly mentioned in the next section as out-of-scope, then it might be applicable. Still, we reserve the right to determine this in communication with the security researcher. + +## Out Of Scope + +Application bugs that are **explicitly NOT considered to be in-scope**: + +- Any standard (i.e., non-security) application or API bugs (e.g., display issues, ordering issues, search issues, input/output issues, etc.), unless they involve privilege escalation or cross-account access. +- Any UI-based injection bugs in the [Classic App](https://cloudsmith.io) (e.g., XSS or CORS issues); however, these are now applicable within the new [Web App](https://app.cloudsmith.com), which was released for preview in November 2024. + +Actions/areas that are **explicitly NOT considered to be in-scope**: + +- Executing or attempting to execute any _Denial of Service_ (DoS) attack; or +- Knowingly posting, transmitting, uploading, linking to, sending, or storing any Malicious Software; or +- Attempting to social engineer support or other staff; or +- Testing in a manner that would result in the sending of unsolicited or unauthorized junk mail, spam, pyramid schemes, or other forms of duplicative or unsolicited messages; or +- Testing in a manner that would degrade the operation of the Service; or +- Testing or otherwise accessing or using the Service from any jurisdiction that is Prohibited Jurisdiction; or +- Testing third-party applications, websites, or services that integrate with or link to the Service. + +Vulnerabilities that are **explicitly NOT considered to be in-scope**: + +- Clickjacking, CSRF, and content spoofing issues without demonstrable security impact. +- Publicly known vulnerable libraries without a working Proof of Concept. +- Self-XSS or having a user paste JavaScript into the browser console. +- Issues relating to non-Cloudsmith products. +- Open ports scanning, banner grabbing, and software version disclosure issues. +- Issues that affect only outdated user agents or unsupported platforms. + +Non-qualifying best practices that are **explicitly NOT considered to be in-scope**: + +- Missing cookie flags on non-authentication cookies. +- Missing best practices in DNS configuration (e.g., DKIM/DMARC/SPF/TXT). +- Missing best practices in SSL/TLS configuration. +- Missing best practices in Content Security Policy (CSP) or lack of other security-related headers. +- Leakage of sensitive tokens (e.g., reset password token) to trusted third parties on a secure connection (HTTPS). + +Non-qualifying business practices that are **explicitly NOT considered to be in-scope**: + +- Institution access code enumeration or demonstrating access codes leaked in internet forums. +- Credential re-usage from public dumps. +- UUID enumeration of any kind. +- Ability to determine if a username or email has a Cloudsmith account. +- Signing up with multiple accounts to abuse referral code usage. +- Password length, complexity, and re-use requirements. +- Email verification feature. + +Websites/services that are **explicitly NOT considered to be in-scope**: + +- Any "third-party" website that we use to host a service but do not control uses _their_ bug bounty program, e.g.: + - [Documentation Website (https://docs.cloudsmith.com)](https://docs.cloudsmith.com) - this is hosted by Vercel. + - [Blog Website (https://cloudsmith.com/blog)](https://cloudsmith.com/blog) - this is hosted by [Ghost.io](https://ghost.io). + - [Status Website (https://status.cloudsmith.io)](https://status.cloudsmith.io) - this is hosted by [https://statuspage.io](https://statuspage.io). + - [Support Website (https://support.cloudsmith.com)](https://support.cloudsmith.com). + - [Changelog Website (https://changelog.cloudsmith.io)](https://changelog.cloudsmith.io). + - [Amazon Web Services (https://aws.amazon.com)](https://aws.amazon.com/) - this is our infrastructure provider. + - [GRC / Trust Centre Website (https://trust.cloudsmith.com)](https://trust.cloudsmith.com/) - this is hosted by [Vanta](https://www.vanta.com/). + +- Cloudsmith non-production systems; only production systems are in scope for the bug bounty program. +- Any third-party widgets, such as: + - Chat widget (powered by [Intercom](https://intercom.com), [ZenDesk](https://zendesk.com) or [Qualified](https://qualified.com)). + - Changelog widget (powered by [Beamer](https://getbeamer.com)). + - Status widget (powered by [Statuspage](https://statuspage.io)). +- Any websites under the following domains: + - \*.readme.io (incl. dash.readme.io and cloudsmith.readme.io) + - \*.googleapis.com + - \*.googletagmanager.com + - \*.google-analytics.com + - \*.doubleclick.net + - \*.hubspot.com + - \*.bing.com + - \*.fullstory.com + - \*.hotjar.com + - \*.statuspage.io + - \*.getbeamer.com + - \*.zendesk.com + +## Severity + +When we issue bug bounties, we assign them a severity level. This represents the level at which we assess the impact of the disclosed security issue to be, and it influences the bug bounty award. Please remember, any decisions for assessed severity and impact are final, and we reserve the right to determine them. + +### Severity Level: CRITICAL + +Vulnerabilities that score in the critical range usually have most of the following characteristics: + +- Exploitation of the vulnerability likely results in root-level compromise of servers or infrastructure devices. +- Exploitation is usually straightforward, in the sense that the attacker does not need any special authentication credentials or knowledge about individual victims, and does not need to persuade a target user, for example via social engineering, into performing any special functions. + +### Severity Level: HIGH + +Vulnerabilities that score in the high range usually have some of the following characteristics: + +- The vulnerability is difficult to exploit. +- Exploitation could result in elevated privileges. +- Exploitation could result in significant data loss or downtime. + +### Severity Level: MEDIUM + +Vulnerabilities that score in the medium range usually have some of the following characteristics: + +- Vulnerabilities that require the attacker to manipulate individual victims via social engineering tactics. +- Denial of service vulnerabilities that are difficult to set up. +- Vulnerabilities where exploitation provides only very limited access. +- Vulnerabilities that require user privileges for successful exploitation. + +### Severity Level: LOW + +- Vulnerabilities in the low range typically have little impact on an organization's business. + +## Timeliness + +We endeavor to try and fix security bugs within the following timelines: + +| Severity | Typical Mean Time To Fix (MTTF) | +| :------- | :-------------------------------- | +| CRITICAL | Within 2 weeks of being verified | +| HIGH | Within 4 weeks of being verified | +| MEDIUM | Within 6 weeks of being verified | +| LOW | Within 26 weeks of being verified | + +## Reporting + +To start the reporting process, please share the details of any suspected vulnerabilities with the Cloudsmith Security Team by sending us the details to [bug-bounties+nospam@cloudsmith.io](mailto:bug-bounties+nospam@cloudsmith.io) (remove the `+nospam` to reach us). Please do not publicly disclose these details outside this process without explicit permission. + +In reporting any suspected vulnerabilities, please include the following information: + +- **Vulnerable URL**: The URL where the vulnerability occurs; +- **Vulnerable Parameter**: If applicable, the parameter where the vulnerability occurs; +- **Vulnerability Type**: The type of vulnerability; +- **Steps to Reproduce**: Step-by-step information on how to reproduce the issue; +- **Screenshots**: A demonstration of the attack to aid description; and +- **Attack Scenario**: An example attack scenario may help demonstrate the risk and resolve your issue faster. + +## Reserved Rights + +Cloudsmith reserves all rights to decide on scope, impact, and reward. + +If another researcher has previously reported an exploit, only the first disclosure will be considered. However, you'll always have our appreciation, and we'll let you know if this happens. This often occurs due to the number of submissions that we get. + +If we cannot replicate the issue, regardless of the timeframe between the report and our triage, we cannot award any bounties. We'll try our best to replicate this, but please know that we don't receive reports, so we fix them without acknowledgment. + +Finally, regardless of the reason, we do not tolerate abuse or threats to our staff or company. We reserve the right to terminate and block all communication with such people. Everyone should acknowledge and respect that there is a Human being on both sides of every communication. + +## Acknowledgement + +Thank you for helping us make the package management world a bit safer. \ No newline at end of file diff --git a/src/content/contributing.mdx b/src/content/contributing.mdx new file mode 100644 index 00000000..8029f3ca --- /dev/null +++ b/src/content/contributing.mdx @@ -0,0 +1,105 @@ +# Contributing + +Contributing to Cloudsmith open-source products couldn't get any easier - provided that you've got a the spark of an idea, and/or a git client and the will to implement, we'll welcome the contributions that you'd like to make. + +## Contributor License Agreement + +By making any contributions to Cloudsmith Ltd projects you agree to be bound by the terms of the Cloudsmith Ltd [Contributor License Agreement](/contributor-license-agreement). + +## Code/Documentation Changes + +### Coding Conventions + +The coding conventions for each product vary depending on the content of the repository and the primary programming languages used to implement it. Please adhere to the coding conventions set out in the `CONTRIBUTING` section in the repository for each product. + +### Contribution Process + +1. Forking: + + - Fork the project on GitHub to your own user/organization. + +2. Branching: + + - Create a feature branch based off of `master` via `checkout -b ` + - For improvements, name your branch `feature-` where `` represents your improvements. + - For bugfixes, name your branch `bugfix-` where `` represents your bug fixes. + +3. Developing/Testing: + + - Make your changes on the feature branch and make them public via pushes. + - Ensure that your commits are in digestable logically quantities (avoid mega-commits). + - Conversely, also ensure that mistake commits, reverse commits, (etc.) are squashed pre-PR. + - Ensure that your changes meet the _Code Conventions_ guidelines outlined above. + - Add tests for your code changes to ensure that code coverage doesn't drop. + - Run the test suite via tox to ensure that your changes don't break existing code. + - Code that doesn't pass the test suite, or doesn't merge cleanly, or doesn't have coverage may not be accepted. + +4. Submitting: + + - When you're ready to re-integrate back upstream, open a pull request (PR). + - Ensure that the merge and build runs completely, and submit fixes if required. + - Take on-board any review feedback, incorporate changes (if required), rinse and repeat. + - When accepted the pull request the maintainer/reviewer will merge the pull request. + +5. Profiteering: + + - Give yourself a heavy-handed pat on the back (or someone else will), for a job well done! + +## Raising Issues + +Issues can broadly be divided into several types: + + - Bug Reports + - Ideas/Proposals (i.e. Feature Requests) + - Discussions + - Questions/Help + +Depending on the issue type we require different information, so please consult the sections below before raising an issue so that we can help you best. + +In general though, all issues should follow the following conventions: + +- Use clear capitalised titles and limit the length to less than 60 characters(-ish) if possible. +- Use a tag prefix of some sort to indicate the type of issue (this will be the category, e.g. [Bug]). +- Provide enough detail so that we have a good idea of your requirement/suggestion - we also like pictures! + +### Bug Reports + +The bread and butter of issues, raising a bug report with enough detail to provide developers a lead on fixing it will mean we can fix bugs better, faster, harder (no, wait, easier). + +Please provide the following for a bug report: + +- Titles should begin with: [Bug] +- Titles (or body) should contain the applicable product version: e.g. [0.1.0] +- The body should contain the following: + - A rough guess at the severity in your opinion (e.g. low, medium, high, critical). + - A paragraph describing the issue (break it into paragraphs or lists if required). + - A backtrace that adequately shows where the code breaks within the code. + - Details of your environment (python version, os/dist/version, maybe a `pip freeze`). + - If relevant you can provide a screenshot (probably not likely for this tool though). + - Any other details that you decide are relevant (we might request more). + +### Ideas/Proposals (i.e. Feature Requests) + +Ideas come in several forms - if you are suggesting a potential feature then the more detail you provide on how it works, the more likely we can implement it quickly and more importantly accurately. + +Ideas become fully blown proposals when the detail amounts to something that can be readily converted to code (perhaps as a precursor to a PR in which the proposer is looking for comments, i.e. an RFC / Request For Comments). + +Please provide the following for an idea/proposal: + +- Titles should begin with: `[Idea]` (if suggesting) or `[RFC]` if providing a full proposal. +- The body should contain the following: + - As much detail as possible on the suggested feature (yep, strict guidelines here isn't it!). + +### Discussions + +Discussions are freeform and are used to discuss existing functionality, and may merit subsequent ideas/proposals and/or pull requests. + +Please provide the following for a discussion: + +- Titles should begin with: `[Discuss]`. +- The body should contain the following: + - As much detail as possible on in order to generate discussion on the topic. + +### Questions/Help + +For questions/help we would prefer for users to either create questions on [Stack Overflow](https://stackoverflow.com/) or raise them on the [Cloudsmith Support Portal](https://support.cloudsmith.com)). \ No newline at end of file diff --git a/src/content/contributor-license-agreement.mdx b/src/content/contributor-license-agreement.mdx new file mode 100644 index 00000000..6fbde6c3 --- /dev/null +++ b/src/content/contributor-license-agreement.mdx @@ -0,0 +1,31 @@ +# Contributor License Agreement + +## Contributing + +Thank you for your interest in contributing to Cloudsmith. This document clarifies the terms under which you, the person listed below, may make Contributions — which may include without limitation, software, bug fixes, configuration changes, documentation, or any other materials — to any of the projects owned or managed by Cloudsmith Ltd. + +Please complete the following information about you and the Contributions. If you have questions about these terms, please contact us at [legal@cloudsmith.io](mailto:legal@cloudsmith.io). + +You accept and agree to the following terms and conditions for your present and future Contributions submitted to Cloudsmith Ltd. Except for the license granted herein to Cloudsmith Ltd, you reserve all right, title, and interest in and to your Contributions. + +## LICENSES + +Cloudsmith Ltd projects, including code contributions and all related materials, are each released under the terms of the individual licenses as noted in the project’s repository, or, if no separate license is specified, under the terms of the Apache v2.0 license (the “Applicable License”), with the exception of project documentation and sample code, in accordance with Cloudsmith Ltd IP Policy. + +All project documentation, including without limitation code that is intended as sample code, will be contributed to the Project and made available under: + +the Applicable License; or +if approved by the project and defined in the project’s LICENSE file, the Creative Commons Attribution 4.0 International (CC BY 4.0) License. +If approved by the project and defined in the project’s LICENSE file, sample code may be contributed and licensed separately under the Creative Commons CC0 1.0 Universal (CC0) License, by which all copyright and related rights are waived. + +## YOU CERTIFY THAT: + +- Your Contributions are either: + + - Created in whole or in part by you and you have the right to submit it under the designated license; or + - Based upon previous work that, to the best of your knowledge, is covered under an appropriate open source license and you have the right under that license to submit that work with modifications, whether created in whole or in part by you, under the designated license; or + - Provided directly to you by some other person who certified (1) or (2) and you have not modified them. + +- You understand and agree that Cloudsmith Ltd projects and your Contributions are public and that a record of the Contributions (including all metadata and personal information you submit with them) is maintained indefinitely and may be redistributed consistent with Cloudsmith Ltd's policies and the requirements of the Apache v2.0 license where they are relevant. + +- You are granting your Contributions to Cloudsmith Ltd under the terms of the license as noted in the project’s repository or if not specified, either the Apache v2.0 license or the CC0 as applicable. \ No newline at end of file diff --git a/src/content/customer-data-security.mdx b/src/content/customer-data-security.mdx new file mode 100644 index 00000000..1d4ef139 --- /dev/null +++ b/src/content/customer-data-security.mdx @@ -0,0 +1,45 @@ +# Data Security Posture Management + +Security is paramount and we are actively engaged in continuous security and always improving the security of our processes and services. If you need more information than provided here, please [contact us](https://cloudsmith.com/company/contact-us). + +While Cloudsmith operates on a shared tenancy model, it's crucial to understand that the platform was architected from the ground up with data segregation as a core principle. The system is designed in such a way that crossover between customer data is not just difficult, it's architecturally impossible. This helps us meet stringent regulatory and [compliance requirements like SOC2, and others](https://trust.cloudsmith.com). + +Here's a deeper view at the control measures that ensure this. + +## Encryption at Rest of sensitive data and communication + +All data is encrypted in transit, through all layers of our application and processing. Encryption at rest guarantees that all data is cryptographically sealed when it is stored on a disk. This encryption is applied consistently across all data types—including primary packages, backups, and system logs. Even if someone were to physically access the hardware where the data is stored (i.e., break into AWS Data Centers), the data itself would be unreadable without the specific key to the safe. This provides a fundamental layer of security against physical breaches and unauthorized hardware access. + +Encryption is performed using a combination of AES-256 and AWS-based KMS for packages, and Fernet based (plus others) for "sensitive data" in relational data. + +Universal encryption is a powerful safeguard in a multi-tenant system. It ensures there are no gaps where plaintext data could be inadvertently exposed. Even in the highly unlikely event of a misconfiguration at a different layer of the stack, your data remains cryptographically sealed and unreadable to anyone outside your tenancy. + +### Securing encryption keys with AWS KMS + +The strength of encryption depends on the security of the keys. Cloudsmith uses AWS Key Management Service (KMS) as a dedicated, highly secure vault. It acts as a centralized and hardened system for all cryptographic operations. Internal Cloudsmith teams do not have direct access to your keys. + +By using KMS, Cloudsmith ensures that the keys used to encrypt one customer's data are cryptographically isolated from another's. Access is governed by the **principle of least privilege**, and every use of a key is logged via AWS CloudTrail, providing a full audit trail. This prevents one tenant's processes from ever having access to the decryption keys of another tenant. + +## Direct Data Access Prevention and Ephemeral URLs + +The Cloudsmith architecture makes it impossible to access data directly, enforcing a strict, application-managed process for every request. + +- **Architectural Enforcement**: Artifacts stored in the underlying S3 storage are **never directly accessible**. All access must go through our application layer, which enforces two critical steps on every request: + 1. **Authentication (AuthN)**: The system verifies who the user is. + 2. **Authorization (AuthZ)**: The system checks that the authenticated user has the correct permissions to access that specific data. + This entire process is tracked via **audit logs**, so any access can be traced back to a specific user. This ensures that only the appropriate combination of AuthN and AuthZ for a particular customer can access that customer's data. + +- **Logical Separation**: To further enforce this, we use a segregated storage structure by assigning each customer a unique path prefix. This logical partitioning at the storage level, combined with the application-layer controls, provides strong isolation and prevents any risk of cross-tenant access. + +- **Ephemeral Pre-signed URLs**: When access is granted, it's done via an ephemeral, pre-signed URL. This is a unique, temporary URL that grants access to a specific file for a limited time. A good analogy is from the movie *The Matrix*: when a character needs to exit the Matrix, they are directed to a specific, ringing phone that only works for a short time before disappearing. Each URL contains a cryptographic signature that makes it impossible to tamper with or forge. If anyone tries to modify the URL or use it after it expires, the signature becomes invalid and access is denied. This prevents a link from being shared or reused indefinitely, ensuring every access attempt is re-validated. + +This multi-layered approach—combining universal encryption, isolated key management, and an architecture that brokers every single request—is how Cloudsmith guarantees the security and privacy of your data within our shared tenancy model. + +## Vulnerability disclosure and Bug Bounty program + +In addition to the controls describe above, we maintain an active bug bounty program to detect any security issue. +Security issues are considered a higher priority than all other issues, and the team will investigate and respond to any reported vulnerability in scope. We request that you do not publicly disclose the issue until it has been identified and resolved by Cloudsmith. + +We understand the hard work and knowledge required to identify viable security issues. We offer a reward program for responsibly disclosed vulnerabilities in scope to show our appreciation. + +If you have any question or need extra details, [reach out to us](https://cloudsmith.com/company/contact-us). \ No newline at end of file diff --git a/src/content/developer-tools/api-bindings.mdx b/src/content/developer-tools/api-bindings.mdx index b28b9282..85ad825c 100644 --- a/src/content/developer-tools/api-bindings.mdx +++ b/src/content/developer-tools/api-bindings.mdx @@ -1,6 +1,3 @@ ---- -title: API Bindings ---- # API Bindings The Cloudsmith API bindings provide libraries in different languages for accessing the service programmatically. The API is fully compliant with the OpenAPI 2.0 Specification, and the clients are generated using `swagger-codegen-cli` from the Swagger Project. diff --git a/src/content/developer-tools/cli.mdx b/src/content/developer-tools/cli.mdx index ddd8844a..5d030fde 100644 --- a/src/content/developer-tools/cli.mdx +++ b/src/content/developer-tools/cli.mdx @@ -147,33 +147,46 @@ Go to the [API Key](https://app.cloudsmith.com/settings/api-keys) page in your u **2. via the Cloudsmith CLI** - -If you login to Cloudsmith via SAML, you will not be able to retrieve your API-Key via the Cloudsmith CLI, as you will not have a password associated with your Cloudsmith Account. You will need to retrieve your API-Key via the Cloudsmith Website as described above, and then [configure the CLI](#configuration--setup) with your API-Key. We are working on improving this via SSO integration with the CLI. With the CLI this is simple to do. You can retrieve your API key using the cloudsmith login command: - +You can retrieve your API key using the `cloudsmith login` command: -``` +```bash cloudsmith login Login: you@example.com Password: PASSWORD Repeat for confirmation: PASSWORD ``` -**NOTE**: Please ensure you use your email for the 'Login' prompt and not your user slug/identifier. + +Please ensure you use your email for the 'Login' prompt and not your user slug/identifier. + -The resulting output looks something like: +The resulting output is: ``` Retrieving API token for 'you@example.com' ... OK Your API token is: 1234567890abcdef1234567890abcdef ``` -Once you have your API key, you can put it into your `credentials.ini` file, use it as an environment variable `export CLOUDSMITH_API_KEY=` or pass it to the CLI using the `-k ` flag. +Once you have your API key, you can put it in your `credentials.ini` file, use it as an environment variable `export CLOUDSMITH_API_KEY=`, or pass it to the CLI using the `-k ` flag. For convenience, the CLI will ask you if you want to install the default configuration files, complete with your API key, if they don't already exist. Enter `y` or `yes` to create the configuration files. If the configuration files already exist, you'll have to put the API key into the configuration files manually, but the CLI will print out their locations. -*** + +SSO Users do not have a Cloudsmith password and cannot use the `cloudsmith login`command to retrieve their API-Key. + +SSO Users should instead use the `cloudsmith auth`command and pass their workspace identifier like: +`cloudsmith auth -o my-workspace` + +You will then be prompted to complete the SSO login process via your web browser (if not already signed in), and 2FA if applicable. Once authentication is complete, the CLI is issued an access token for your account. + +To authenticate in environments without a web browser, such as a remote terminal session, set the CLOUDSMITH_API_KEY environment variable. You can set it for your current session like this: + +```bash +📘 export CLOUDSMITH_API_KEY="your-api-key-here" +``` + ## Configuration / Setup diff --git a/src/content/developer-tools/index.mdx b/src/content/developer-tools/index.mdx deleted file mode 100644 index e69de29b..00000000 diff --git a/src/content/developer-tools/vscode.mdx b/src/content/developer-tools/vscode.mdx index 70e2a23f..94712e13 100644 --- a/src/content/developer-tools/vscode.mdx +++ b/src/content/developer-tools/vscode.mdx @@ -5,7 +5,7 @@ import configure from './images/vscode/configure.gif'; # Cloudsmith Visual Studio Code Extension -The Cloudsmith extension for Visual Studio Code allows you to view and manage your Cloudsmith packages directly within your VSCode IDE. +The Cloudsmith extension for Visual Studio Code allows you to view and manage your Cloudsmith packages directly within your VS Code IDE. @@ -49,12 +49,12 @@ After installation, connect the extension to your Cloudsmith account using an [A You can configure the extension's behavior by navigating to **File > Preferences > Settings** and searching for `Cloudsmith`: -- **Show Packages by Group**: If enabled, the explorer will display packages as [Package Groups](https://help.cloudsmith.io/docs/package-groups). By default, individual packages are shown. +- **Show Packages by Group**: If enabled, the explorer will display packages as [Package Groups](/artifact-management/package-groups). By default, individual packages are shown. - **Inspect Output Target**: Choose where the `Inspect Package` command sends its output: `Output` window or a `New Document`. - **Maximum Packages Per Repository**: Set the maximum number of packages to display per repository. The value can be between 1 and 30. The default (and maximum) is 30. - **Use Legacy Web App**: If enabled, URLs opened via the `Open Package in Cloudsmith` command will point to the legacy Cloudsmith web app ([https://cloudsmith.io/](https://cloudsmith.io/)). -## Using the Cloudsmith VSCode plugin +## Using the Cloudsmith VSCode extension The extension adds a **Cloudsmith Explorer** view to VS Code. This view provides a tree-based navigator to explore your Cloudsmith assets, including workspaces, repositories, and packages. @@ -64,7 +64,7 @@ This is a subset of the full data available via the Cloudsmith API. For the comp | Field | Description | | :-------------------- | :----------------------------------------------------------------------------------- | -| **Status** | Indicates the current state of the package (e.g., Completed, Failed, Deleted, deprecated, unlisted). | +| **Status** | Indicates the current state of the package (e.g., Completed, Failed, Deleted, etc.). | | **Name** | The human-readable title or name of the package. | | **Slug** | A URL-friendly version of the package name, typically lowercase with hyphens for spaces. | | **Slug Perm** | A permanent, unique slug that does not change, even if the package name is updated. | diff --git a/src/content/exploits-hall-of-fame.mdx b/src/content/exploits-hall-of-fame.mdx new file mode 100644 index 00000000..ee91a2cf --- /dev/null +++ b/src/content/exploits-hall-of-fame.mdx @@ -0,0 +1,57 @@ +# Bug Bounty Hall of Fame + +The security hall of fame represents a list of security researchers who have provided [qualifying exploit information](doc:bug-bounty-programme) for actual/tangible security risks against the Cloudsmith service itself (i.e. not third party services). Each entry represents a separate report for a particular exploit that was reported along with its final status, ordered by the date the exploit was reported in reverse chronological order. A description of the fields is provided below the table. + +**Cloudsmith thanks the following security researchers**: + +| Date | Reporter | Severity | Classification | Status | +| :--------- | :-------------------------------------------------------------------------- | :--------- | :--------------------------------- | :----------------- | +| 2025-03-04 | [Muralidharan K](https://www.linkedin.com/in/murali-dharan-k-7a6b90259) | **MEDIUM** | Unverified Secondary Email Login | Fixed (2025-03-14) | +| 2024-11-06 | [Michal Guszpit](https://pl.linkedin.com/in/michal-guszpit-71a03332) | **MEDIUM** | OIDC Token Claim Validation | Fixed (2024-11-06) | +| 2024-10-07 | [Luca4Bounty](https://x.com/bitk_) | **MEDIUM** | Cross-Site Scripting (XSS) | Fixed (2024-10-09) | +| 2022-04-05 | [Jens Müller](https://nds.rub.de/chair/people/jmueller/) | **HIGH** | Remote Code Execution | Fixed (2022-04-05) | +| 2022-01-28 | [Imran Parray](https://twitter.com/imranparray101) | **MEDIUM** | Information Disclosure | Fixed (2022-01-28) | +| 2020-06-30 | [Armanul Miraz](https://twitter.com/miraz1194) | **LOW** | Clickjacking / XSS | Fixed (2020-06-30) | +| 2020-06-18 | [Parikshit Pingle](https://www.linkedin.com/in/parikshit-pingle-750b23186) | **LOW** | Session Management | Fixed (2020-06-23) | +| 2020-06-18 | [Muhammad Julfikar Hyder](https://twitter.com/thejulfikar) | **LOW** | Server-Side Disclosure | Fixed (2020-06-18) | +| 2020-05-31 | [Tarun Tandon](https://www.linkedin.com/in/tarun-tandon-67237a157/) | **LOW** | Brute Force / Flood Attack | Fixed (2020-06-18) | +| 2020-05-12 | [Sanket Wadje](https://www.linkedin.com/in/sanket-wadje-020364191) | **LOW** | Complexity Attack | Fixed (2020-05-12) | +| 2020-03-23 | [Akhil MM](https://www.facebook.com/akhil.mannikoth) | **LOW** | Cross-Site Scripting (XSS) | Fixed (2020-03-24) | +| 2020-02-24 | [Abhilash P K](https://in.linkedin.com/in/abhilash-p-k-69b8a655) | **HIGH** | Server-Side Request Forgery (SSRF) | Fixed (2020-02-24) | +| 2019-09-18 | [Kunal Mhaske](https://www.linkedin.com/in/kunal-mhaske-59928a170/) | **LOW** | Session Management | Fixed (2019-10-15) | +| 2018-11-24 | [B.Dhiyaneshwaran](https://www.linkedin.com/in/dhiyaneshwaran-b-27947a131/) | **LOW** | Flood Attack | Fixed (2018-11-25) | +| 2018-07-26 | [Abdelali Khalfi](http://khalfi.me/) | **HIGH** | Subdomain Takeover | Fixed (2018-07-30) | +| 2017-08-08 | [Suyog Palav](https://www.facebook.com/suyog.palav) | **MEDIUM** | Brute Force / Flood Attack | Fixed (2017-08-19) | +| 2017-05-31 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Hyperlink Injection | Fixed (2017-08-11) | +| 2017-06-07 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Tab URI Hijack | Fixed (2017-08-11) | +| 2017-05-20 | [Yaroslav Olejnik](https://twitter.com/oja_c7s) | **HIGH** | Cross-Site Scripting (XSS) | Fixed (2017-05-23) | +| 2017-05-17 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Information Disclosure | Fixed (2017-05-17) | +| 2017-05-16 | [Pethuraj M](https://www.linkedin.com/in/pethu) | **LOW** | Brute Force Attack | Fixed (2017-05-16) | +| 2017-05-10 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Hyperlink Injection | Fixed (2017-05-16) | +| 2017-03-21 | [Evan Ricafort](http://www.evanricafort.com/) | **LOW** | Cross-Site Scripting (XSS) | Fixed (2017-03-29) | +| 2017-02-26 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Brute Force Attack | Fixed (2017-03-29) | +| 2017-02-26 | [Amal Jacob](https://facebook.com/amaljacob753) | **MEDIUM** | Brute Force Attack | Fixed (2017-03-29) | +| 2017-02-02 | [Nitin Goplani](https://in.linkedin.com/in/nitingoplani) | **MEDIUM** | Decompression Bomb | Fixed (2017-02-06) | +| 2017-02-02 | [Nitin Goplani](https://in.linkedin.com/in/nitingoplani) | **MEDIUM** | Open Redirect | Fixed (2017-02-06) | +| 2017-01-07 | [Harry M. Gertos](https://twitter.com/GertyBoy27/) | **LOW** | Subdomain Takeover | Fixed (2017-01-12) | +| 2016-12-10 | [Harry M. Gertos](https://twitter.com/GertyBoy27/) | **MEDIUM** | Cross-Site Scripting (XSS) | Fixed (2017-02-06) | + +_Date:_ + +This is the date that the exploit was reported to Cloudsmith. + +_Reporter:_ + +This is attribution to the security researcher that reported the exploit, along with a link to the profile location of their choosing. If the researcher wishes to remain anonymous or would prefer to use a pseudonym instead of a real name, then this will be marked as such. + +_Severity:_ + +The severity for an exploit (if disclosed) will be determined based on a combination of impact (the damage that it can cause if exploited) and the likelihood that it will be exploited (how easy is it to actually perform the exploit). We will follow the [OWASP Risk Rating Methodology](https://www.owasp.org/index.php/OWASP_Risk_Rating_Methodology) when determining this and will assign a _LOW_, _MEDIUM_ or _HIGH_ severity rating. + +_Classification:_ + +The classification for an exploit will follow the general categories for qualifying information as outlined in the [Security Policy](doc:security-policy). If the category doesn't fit but is still determined to be qualifying information then we will either add an additional category or use a catch-all "Other" classification. Prior to full disclosure valid reports will be reported as "Not Disclosed Yet". + +_Status:_ + +This is the status of the exploit, as of the specified date. \ No newline at end of file diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index cbe0b53e..cf13d2ca 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -32,16 +32,16 @@ For clarity, it's important to note some of the differences between a registry s Docker defines the following names (this is not the official wording): -- **Layer:** A blob (big object of bytes) containing software and configuration. -- **Image:** A collection of Docker layers plus metadata that represent an application. -- **Container:** A running instance of a Docker image in-memory. -- **Repository:** A collection of Docker images, separated by hashref and version tags. -- **Registry:** A collection of all Docker repositories, separated by namespaces. +- **Layer**: A blob (big object of bytes) containing software and configuration. +- **Image**: A collection of Docker layers plus metadata that represent an application. +- **Container**: A running instance of a Docker image in-memory. +- **Repository**: A collection of Docker images, separated by hashref and version tags. +- **Registry**: A collection of all Docker repositories, separated by namespaces. For comparison purposes, where terms differ from Cloudsmith: -- **Package:** A specific identifiable and versionable artifact. -- **Repository:** A collection of versionable artifacts, with multiple allowed per account. +- **Package**: A specific identifiable and versionable artifact. +- **Repository**: A collection of versionable artifacts, with multiple allowed per account. Therefore, based on the above, the following terms are equivalent: diff --git a/src/content/formats/images/nuget/setting-nuget-signing.png b/src/content/formats/images/nuget/setting-nuget-signing.png new file mode 100644 index 0000000000000000000000000000000000000000..6d65bd736ea74266e88e4e3857f304a10b492c30 GIT binary patch literal 419371 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ⓈuRvL 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 z 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

      |
      Caching
      |
      Indexing
      |
      Indexing Type
      |
      API Reference
      | |:---|:---|:---|:---|:---|:---| -|[Cargo (Rust)](/formats/cargo-registry) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_cargo_create) | -|[Composer](/formats/composer-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_composer_create) | -|[CRAN](/formats/cran-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_cran_create) | -|[Dart](/formats/dart-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_dart_create) | -|[Debian](/formats/debian-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_deb_create) | -|[Docker](/formats/docker-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_docker_create) | -|[Golang ](/formats/go-registry) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_go_create) | -|[Gradle ](/formats/gradle-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[Helm](/formats/helm-chart-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_helm_create) | -|[Hex](/formats/hex-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_hex_create) | -|[Maven](/formats/maven-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[npm](/formats/npm-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_npm_create) | -|[NuGet](/formats/nuget-feed) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_nuget_create) | -|[Python](/formats/python-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_python_create) | -|[RedHat](/formats/redhat-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_rpm_create) | -|[Ruby](/formats/ruby-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_ruby_create) | -|[sbt ](/formats/sbt-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_maven_create) | -|[Swift](/formats/swift-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](https://help.cloudsmith.io/reference/repos_upstream_swift_create) | +|[Cargo (Rust)](/formats/cargo-registry) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/cargo/create) | +|[Composer](/formats/composer-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/composer/create) | +|[CRAN](/formats/cran-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/cran/create) | +|[Dart](/formats/dart-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/dart/create) | +|[Debian](/formats/debian-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/deb/create) | +|[Docker](/formats/docker-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/docker/create) | +|[Golang ](/formats/go-registry) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/go/create) | +|[Gradle ](/formats/gradle-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/maven/create) | +|[Helm](/formats/helm-chart-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/helm/create) | +|[Hex](/formats/hex-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/hex/create) | +|[Maven](/formats/maven-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/maven/create) | +|[npm](/formats/npm-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/npm/create) | +|[NuGet](/formats/nuget-feed) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/nuget/create) | +|[Python](/formats/python-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/python/create) | +|[RedHat](/formats/redhat-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/rpm/create) | +|[Ruby](/formats/ruby-repository) | ✅ | ✅ | ✅ |
      Ahead-of-Time
      | [API](/api/repos/upstream/ruby/create) | +|[sbt ](/formats/sbt-repository) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/maven/create) | +|[Swift](/formats/swift-registry) | ✅ | ✅ | ✅ |
      Just-in-Time
      | [API](/api/repos/upstream/swift/create) | You can can also create and manage upstreams via the [Cloudsmith API](/api). diff --git a/src/content/software-distribution/broadcasts/index.mdx b/src/content/software-distribution/broadcasts/index.mdx index 2ab5df22..209e7ee6 100644 --- a/src/content/software-distribution/broadcasts/index.mdx +++ b/src/content/software-distribution/broadcasts/index.mdx @@ -12,7 +12,7 @@ import analytics from './images/analytics.png'; _Share branded repositories via a public facing URL._ -Broadcasts are in Early Access. If you would like to try this feature, please [Contact us](https://help.cloudsmith.io/docs/contact-us). +Broadcasts are in Early Access. If you would like to try this feature, please [Contact us](https://cloudsmith.com/company/contact-us). Broadcasts help you distribute your software packages to your end-users through a customizable, secure, and user-friendly interface. It allows you to create a seamless experience for your customers, making it feel as though they are interacting directly with your own infrastructure, rather than a third-party service. Users can browse and discover software artifacts from this public Broadcast page, and download artifacts via the browser, or pull them using native tooling such as their IDE or CI/CD build systems. diff --git a/src/content/supply-chain-security/epm/rego.mdx b/src/content/supply-chain-security/epm/rego.mdx index ef3d4f62..c6f4b46f 100644 --- a/src/content/supply-chain-security/epm/rego.mdx +++ b/src/content/supply-chain-security/epm/rego.mdx @@ -4,7 +4,7 @@ import { BlockImage, Note } from '@/components' ## Recipe 1: Simple Tag Check -**Use case:** Match any package with a certain tag. For example: `ready-for-production`. For this rule, the value of`match` will be `true` when any `tag.name` contains the value provided in `required_tag`. +**Use case**: Match any package with a certain tag. For example: `ready-for-production`. For this rule, the value of`match` will be `true` when any `tag.name` contains the value provided in `required_tag`. ```rego package cloudsmith @@ -26,7 +26,7 @@ has_required_tag if { ## Recipe 2: Time-Based CVSS Policy -**Use case:** Evaluate vulnerabilities older than 30 days, check CVSS threshold ≥ 7, filter a specific repo, ignoring certain CVEs. +**Use case**: Evaluate vulnerabilities older than 30 days, check CVSS threshold ≥ 7, filter a specific repo, ignoring certain CVEs. What It Does: @@ -82,7 +82,7 @@ ignored_cve(vulnerability) if { ## Recipe 3: CVSS Score + Fix Version + CVE Exclusion + Repo -**Use case:** Another approach for ignoring certain CVEs, focusing on one repository, with high/critical CVSS threshold. +**Use case**: Another approach for ignoring certain CVEs, focusing on one repository, with high/critical CVSS threshold. What It Does: @@ -120,7 +120,7 @@ ignored_cve(vulnerability) if { ## Recipe 4: CVSS Score + Tag + Time-Based -**Use case:** Combine tag requirements with older vulnerabilities that surpass a threshold. +**Use case**: Combine tag requirements with older vulnerabilities that surpass a threshold. What It Does: @@ -161,4 +161,36 @@ reason contains msg if { ) } +``` + +## Recipe 5: Compare software package license to a list of copyleft licenses + +**Use case**: Check whether a software package's license is a copyleft license. + +What It Does: + +- Defines a set of known copyleft SPDX identifiers and common free-text variants. +- Triggers if the package’s license string (case-insensitive) contains any of those copyleft keywords. + +```rego +package cloudsmith + +default match := false + +# Expanded list of SPDX identifiers and common free-text variants +copyleft := { + "gpl-3.0", "gplv3", "gplv3+", "gpl-3.0-only", "gpl-3.0-or-later", + "gpl-2.0", "gpl-2.0-only", "gpl-2.0-or-later", "gplv2", "gplv2+", + "lgpl-3.0", "lgpl-2.1", "lgpl", + "agpl-3.0", "agpl-3.0-only", "agpl-3.0-or-later", "agpl", + "apache-1.1", "cpol-1.02", "ngpl", "osl-3.0", "qpl-1.0", "sleepycat", + "gnu general public license" +} + +# Main policy rule +match if { + lower_license := lower(input.v0.package.license.oss_license.spdx_identifier) + some l in copyleft + contains(lower_license, l) +} ``` \ No newline at end of file diff --git a/src/content/supply-chain-security/index.mdx b/src/content/supply-chain-security/index.mdx index 8d08ae4f..71420063 100644 --- a/src/content/supply-chain-security/index.mdx +++ b/src/content/supply-chain-security/index.mdx @@ -8,9 +8,9 @@ In this section you can learn how to: - Ensure with **Block Until Scan** that no package can be downloaded until a security scan is successfully completed, helping you enforce security mandates across the whole organization. - Reduce risk associated with **Software Vulnerabilities**, by proactively identifying and quarantining packages with known vulnerabilities from entering your software supply chain. -- **License Compliance:** Automatically scan for and identify the licenses of your dependencies, ensuring compliance with your organization's policies. -- **Digital Signatures:** Verify the integrity and authenticity of your software artifacts using GPG, PGP, and other signing standards. +- **License Compliance**: Automatically scan for and identify the licenses of your dependencies, ensuring compliance with your organization's policies. +- **Digital Signatures**: Verify the integrity and authenticity of your software artifacts using GPG, PGP, and other signing standards. Adding to this, Enterprise Policy Management (EPM): -- **Policy-as-Code (Early Access):** The next evolution in policy management. This new feature allows you to define all your security and license compliance rules in a single, version-controlled YAML file. While our existing policy features remain fully supported, Policy-as-Code is intended to become the primary method for managing supply chain security rules at scale. \ No newline at end of file +- **Policy-as-Code (Early Access)**: The next evolution in policy management. This new feature allows you to define all your security and license compliance rules in a single, version-controlled YAML file. While our existing policy features remain fully supported, Policy-as-Code is intended to become the primary method for managing supply chain security rules at scale. \ No newline at end of file diff --git a/src/content/supply-chain-security/signing-keys.mdx b/src/content/supply-chain-security/signing-keys.mdx index 8cfe9aa2..90da0b32 100644 --- a/src/content/supply-chain-security/signing-keys.mdx +++ b/src/content/supply-chain-security/signing-keys.mdx @@ -1,3 +1,5 @@ +import { Tag } from '@/components'; + # Package signing Cloudsmith uses GPG or RSA signatures (where applicable) in addition to package checksums to detect tampering. @@ -10,26 +12,26 @@ For increased trust, you can also provide your own [GPG key](/repositories/repos |Package Format|Key Type|Key Use| |:--|:--|:--| -|[Alpine](/formats/alpine-repository)|RSA|Index| -|[Cargo](/formats/cargo-registry)||Not Supported by Format| -|[CocoaPods](/formats/cocoapods-repository)||Not Supported by Format| -|[Composer](/formats/composer-repository)|GPG|| -|[Conan](/formats/conan-repository)||Not Supported by Format| +|[Alpine](/formats/alpine-repository)| RSA | Index | +|[Cargo](/formats/cargo-registry)||Not Supported by Format| +|[CocoaPods](/formats/cocoapods-repository)||Not Supported by Format| +|[Composer](/formats/composer-repository)| GPG || +|[Conan](/formats/conan-repository)||Not Supported by Format| |[CRAN](/formats/cran-repository)||| -|[Dart](/formats/dart-repository)||Not Supported by Format| -|[Debian](/formats/debian-repository)|GPG|Index| -|[Docker](/formats/docker-registry)|RSA|Index| +|[Dart](/formats/dart-repository)||Not Supported by Format| +|[Debian](/formats/debian-repository)| GPG |Index| +|[Docker](/formats/docker-registry)| RSA | Index | |[Go](/formats/go-registry)||| -|[Gradle](/formats/gradle-repository)|GPG|Index Packages| -|[Helm Charts](/formats/helm-chart-repository)|GPG|| +|[Gradle](/formats/gradle-repository)| GPG | Index Package | +|[Helm Charts](/formats/helm-chart-repository)| GPG || |[LuaRocks](/formats/luarocks-repository)||| -|[Maven](/formats/maven-repository)|GPG|Index Packages| -|[npm](/formats/npm-registry)|GPG|| +|[Maven](/formats/maven-repository)| GPG | Index Package | +|[npm](/formats/npm-registry)| GPG || |[NuGet](/formats/nuget-feed/)||| -|[Python](/formats/python-repository)|GPG|| -|[Raw](/formats/raw-repository)|GPG|| -|[RPM](/formats/redhat-repository)|GPG|Index Packages| -|[sbt](/formats/sbt-repository)|GPG|Index Packages| -|[Terraform Modules](/formats/terraform-modules-repository)||Not Supported by Format| -|[Unity](/formats/unity-registry)|GPG|| -|[Vagrant](/formats/vagrant-repository)|GPG|| \ No newline at end of file +|[Python](/formats/python-repository)| GPG || +|[Raw](/formats/raw-repository)| GPG || +|[RPM](/formats/redhat-repository)| GPG | Index Package | +|[sbt](/formats/sbt-repository)| GPG | Index Package | +|[Terraform Modules](/formats/terraform-modules-repository)||Not Supported by Format| +|[Unity](/formats/unity-registry)| GPG || +|[Vagrant](/formats/vagrant-repository)| GPG || \ No newline at end of file diff --git a/src/content/support/operational-performance copy.mdx b/src/content/support/operational-performance copy.mdx deleted file mode 100644 index 050cec45..00000000 --- a/src/content/support/operational-performance copy.mdx +++ /dev/null @@ -1,44 +0,0 @@ -# Operational Performance - -## Service Level Agreement - -For customers on our Ultra plan, it's 99.9%, although our internal Service Level Objective is much higher, and our historic uptime is much closer to 99.99%. You can see our policy at: - -[View Service Level Agreement](https://help.cloudsmith.io/docs/service-level-agreement-sla) - - -## High Availability - -Our uptime metrics (and incident/maintenance communications) are available via our [status page](https://status.cloudsmith.io) which publishes to [@iscloudsmithup](https://twitter.com/iscloudsmithup) twitter account. - -## Geographic Infrastructure - -Cloudsmith serves customers all over the world, across all continents. Our architecture is CDN-driven, and our non-CDN infrastructure is stood up in the following locations: - -- Oregon, USA -- N. Virginia, USA -- Ohio, USA -- Dublin, Ireland (primary) -- Sydney, Australia - -We provide eight geographic storage locations that you can choose from when creating a repository in the following locations: - -- Dublin, Ireland -- Frankfurt, Germany -- Montreal, Canada -- Ohio, United States -- Oregon, United States -- Singapore -- Sydney, Australia - -## Maintenance Windows - -When we need downtime, it's typically allocated for one hour but is usually much less than this (e.g. 15-30 minutes). We only allocate planned downtime for critical infrastructure changes (rare), and often only do so at weekends. - -## Incident Management - -Incidents are triaged and assigned a priority; if immediate action is required, these are fixed as a matter of urgency. We assess incidents in terms of exposure to customers and decide whether it needs to be communicated via our [status page](https://status.cloudsmith.io) if an immediate fix is required. - -We fix bugs and issues as a matter of priority before features where possible. - -As part of the **Priority Support** offered to **Ultra tier customers**, you can escalate urgent matters of importance to the on-call team at Cloudsmith. See [Support Escalation Policy](https://help.cloudsmith.io/docs/support-escalation-policy) for more details. diff --git a/src/content/support/operational-performance.mdx b/src/content/support/operational-performance.mdx index 08dc5fe4..22284ba5 100644 --- a/src/content/support/operational-performance.mdx +++ b/src/content/support/operational-performance.mdx @@ -4,11 +4,11 @@ For customers on our Ultra plan, it's 99.9%, although our internal Service Level Objective is much higher, and our historic uptime is much closer to 99.99%. You can see our policy at: -[View Service Level Agreement](https://help.cloudsmith.io/docs/service-level-agreement-sla) +[View Service Level Agreement](/support/sla) ## High Availability -Our uptime metrics (and incident/maintenance communications) are available via our [status page](https://status.cloudsmith.io) which publishes to [@iscloudsmithup](https://twitter.com/iscloudsmithup) twitter account. +Our uptime metrics (and incident/maintenance communications) are available via our [status page](https://status.cloudsmith.io). ## Geographic Infrastructure @@ -40,4 +40,4 @@ Incidents are triaged and assigned a priority; if immediate action is required, We fix bugs and issues as a matter of priority before features where possible. -As part of the **Priority Support** offered to **Ultra tier customers**, you can escalate urgent matters of importance to the on-call team at Cloudsmith. See [Support Escalation Policy](https://help.cloudsmith.io/docs/support-escalation-policy) for more details. +As part of the **Priority Support** offered to **Ultra tier customers**, you can escalate urgent matters of importance to the on-call team at Cloudsmith. See [Support Escalation Policy](/support/support-escalation-policy) for more details. diff --git a/src/content/support/security.mdx b/src/content/support/security.mdx index 6aa34cf1..8892d24b 100644 --- a/src/content/support/security.mdx +++ b/src/content/support/security.mdx @@ -23,9 +23,9 @@ Security issues are considered a higher priority than all other issues, and the We understand the hard work and knowledge required to identify viable security issues. We offer a reward program for responsibly disclosed vulnerabilities in scope to show our appreciation. -Details of our active, open-ended bug bounty program [are available here](https://help.cloudsmith.io/docs/bug-bounty-programme). +Details of our active, open-ended bug bounty program [are available here](/bug-bounty-program). -You can see some of the exploit categories [identified and fixed here](https://help.cloudsmith.io/docs/exploits-hall-of-fame). +You can see some of the exploit categories [identified and fixed here](/exploits-hall-of-fame). ## Security Certifications diff --git a/src/content/support/sla.mdx b/src/content/support/sla.mdx new file mode 100644 index 00000000..ebb00fbc --- /dev/null +++ b/src/content/support/sla.mdx @@ -0,0 +1,91 @@ +# Service Level Agreement (SLA) + +This Service Level Agreement (SLA) applies to and is incorporated by reference into the ordering document (the **Order Form**) made by and between Cloudsmith and the Customer ("you"), where the Customer is on a plan in which an SLA is expressly provided (e.g. "Ultra" plans and beyond). + +Cloudsmith may modify these SLA terms and conditions from time to time by posting such amended SLA terms and conditions (this document / page) to Cloudsmith's site, but will provide thirty (30) days advance notice to the Customer before materially reducing the benefits offered to the Customer under this Service Level Agreement. + +# SLA Terms and Conditions + +## A. Definitions + +### 1. Downtime + +**Downtime** means the time in which any **Included Services** listed below are not capable of fulfilling their primary purpose, of being accessed or used by the Customer, as monitored by Cloudsmith. + +### 2. Monthly Uptime Percentage + +The **Monthly Uptime** Percentage means the total number of minutes in a calendar month minus the number of minutes of **Downtime** suffered in a calendar month, divided by the total number of minutes in a calendar month. + +### 3. Cloudsmith Processing + +**Cloudsmith Processing** is defined as the suite of asynchronous processes that are initiated following an initial upload of Customer Data. These processes include, but are not limited to, data retrieval, scanning, indexing, policy application and propagation. + +### 4. Time to Availability + +The **Time to Availability** for initial (first instance) uploads is calculated as the time it takes to complete Cloudsmith Processing and make it available for use. + +### 5. Excluded from Downtime + +The following are not counted as Downtime for the purpose of calculating Monthly Uptime Percentage: + +- Service unavailability caused by scheduled maintenance of the platform used to provide the applicable service (Cloudsmith will endeavour to provide seven days' advance notice of service-affecting scheduled maintenance unless planned downtime is expected to be fewer than 20 minutes in length); or +- Service unavailability caused by events outside of the reasonable control of Cloudsmith or its subcontractor(s), including any force majeure event, the failure, performance, age, or unavailability of the Customer's systems, the Internet, and the failure of any other technology or equipment Customer used to connect to or access the service (e.g. proxies or out-of-date TLS support). + +### 6. Included Services + +The following **Inclusive Services** are designated as being applicable to this SLA: + +- Cloudsmith Content Distribution Network (CDN); dl.cloudsmith.io specifically, for downloading of Customer assets. +- [Cloudsmith Application Programming Interface (API)](https://api.cloudsmith.io); specifically, for uploading of Customer assets. + +### 7. Excluded Services + +The following **Excluded Services** are explicitly excluded from this SLA: + +[Cloudsmith Corporate](https://cloudsmith.com); for Cloudsmith corporate/marketing info. +[Cloudsmith Frontend](https://app.cloudsmith.com); for managing Customer assets via the user-interface. +[Cloudsmith Help (via Readme)](https://docs.cloudsmith.com); for Cloudsmith Customer documentation. +[Cloudsmith Status](https://status.cloudsmith.io); for **Reporting** status of the Cloudsmith service. +[Cloudsmith Live Chat (via Intercom)](https://intercom.com); for Cloudsmith Customer support. +Cloudsmith Processing; for asynchronous processing of Customer assets. + +Anything else not expressly listed in **Included Services** is excluded from this SLA. + +## B. Guarantee + +During the term of the applicable Order Form, Cloudsmith will employ reasonable efforts to achieve an SLA guarantee of at least **99.9%** for **Monthly Uptime Percentage**, for any calendar month. If Cloudsmith does not meet this guarantee, and so long as the Customer's account is current and not overdue, the Customer will be eligible to receive **Service Credits**, as described below. These credits are the Customer's _exclusive_ remedy for any failure by Cloudsmith to meet the conditions of this guarantee. + +Furthermore, following disaster recovery and unplanned **Downtime**, Cloudsmith agrees to prioritise time-to-recovery for the Customer covered by this SLA. Cloudsmith will endeavour to return the Customer to full functionality after disaster scenarios as a matter of urgency, but this is via prioritisation and is not a guarantee of timeliness. Time-to-recover is measured by the time it takes from unplanned **Downtime** until restoration of **Included Services** for impacted Customers. + +Cloudsmith will employ reasonable efforts to provide P95 Monthly Average Time to Availability \< 5 mins. + +## C. Reporting + +Cloudsmith will take reasonable measures to ensure that the **Monthly Uptime Percentage**, outages and scheduled maintenance are reported via the [Cloudsmith Status Site](https://status.cloudsmith.io). However, these are not guaranteed to be 100% accurate or complete, so the Customer is encouraged to perform its own measurements for reporting purposes. + +## D. Service Credits + +**Service Credits** are issued as credit to the extent that Cloudsmith does not meet the SLA guarantee for a particular month of the ordered term. Upon approval of a claim Cloudsmith will provide the applicable remedy set forth below: + +| Monthly Uptime Percentage | Service Credit | +| :--------------------------- | :--------------------- | +| Less than 99.9% but >= 99.6% | 5% of the monthly fee | +| Less than 99.6% but >= 99.0% | 10% of the monthly fee | +| Less than 99.0% but >= 98.7% | 15% of the monthly fee | +| Less than 98.7% | 20% of the monthly fee | + +The monthly fee is calculated as the amount _after_ discounts. If the Customer pays annually, **Service Credits** will be pro-rated to a monthly amount for the calendar month in which the claim is addressing. + +## E. Claim Procedure + +To receive **Service Credits** for a particular calendar month, the Customer must submit a claim to the support team (see **Escalation** below) within _30 days_ of the end of the month during which the Service did not meet the SLA guarantee, and include the following information: + +- Customer Name and Account Identifier (the "slug" in the URI); +- The Name, Email Address, and Telephone Number of the Customer's designated contact; and +- Information supporting each claim of **Downtime**, including the Date, Time, and a Description of the incident and affected service/functionality, all of which must fall within the calendar month for which you are submitting a claim. + +Claims that are reasonable, accurate and succinct have the greatest chance of being accepted. If the claim is not accepted, Cloudsmith will endeavour to provide the specific reasons as to why not, to allow the Customer the chance to correct any issues for re-submission (if applicable). + +## F. Escalation + +For urgent escalation, we offer the ability to page our on-call team. See our [Escalation Channel Policy](/support-escalation-policy) for more information on this. You can also use the [Contact Us](https://cloudsmith.com/company/contact-us) methods, by following the same procedures but designate the message as **URGENT**. \ No newline at end of file diff --git a/src/content/tbc/images/integrating-with-docker-hub/a168960f3724e369c2591180e70a321ac94e2366f028912ba1c874f9ddb5c2a4-app.cloudsmith.com_demo_examples-repo_upstreams.png b/src/content/tbc/images/integrating-with-docker-hub/a168960f3724e369c2591180e70a321ac94e2366f028912ba1c874f9ddb5c2a4-app.cloudsmith.com_demo_examples-repo_upstreams.png deleted file mode 100644 index b2ad5476c00a638ce285119b950709169e8c3c6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 444780 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 z z6BGy=1GB83^xwQ=vi~e*oTVyCiPNYdC+s>xG|dwtqjNp&CdF5#+i`D5#VFhdE;7yH z-aHc#@4DL5w{_s3Vs?i$fQ_^{sz!3X8xz4S^>7ttZ)UKrJ?=QXw_dz_Ty&5fb;lbS z|Me%U2xw&)Eo)vKnqD4XCjbiGPwxKVFw0YJB>5%Gz=evTcDLs?(-2OjUe_R@p}mCY zN3P04p+tjhFo^;0fe{wvSIrY(5-C1wCh39(quzf{NAgk9RgMA zlCM2U>{lksxh-R`504MNvt}DP!oB8PoEM?ni#}ysW*0yZLDA2b5V(Vkb{w4a#SL15S&GC%^YZd`P}swHH@cOg(|@5TPkSj! z3@bV8C+iC9s5U;&b>9x)Qug)r_3_07b}6OxX#$Yx_D+k0-OnBU)Pbz3rX~lBz&#W9 zT)GeU+I#W;u=&Fk{~zTqzkHkDvEP5}lphKSNLB)M z3af7lF8%q;|8F0@oCDfd#J8RQCGsp{3Jy3CmgfC)fZr(iYMkl6p7ODT9^fis)u$UJ zPN7#CCFU;vq;;zly{Ku)aTyyCB>PEL6f~0c_(_+ZFP7~lR*g9DS+m4CH$1n*CTcqV zR~ivu=>gBx+}e{c0bcDjSEBe6M1K9E<~86z?!^xeJw+6 z_P6hBQQH3^oTqlg_~EvBi={+*r=H#;vB#(Xcc{p8$vUmlEttjGX@d1zsbgbg_D38e7Xa0aTOgcIun1; zSO2U9`e;Yrf0DXt=@fv3l-5Gd$o7?CM+g3Rc%U`C-q>KGc#=V$f3wHKr#yd41(8?da*#{O!F*e)>q{HYP<^OMzxUF(m&FcKls*@ zzt7?KI=`<2XuV+!W1qhR-03t%#owJ;6zKX-m`2+tmT2CWt%8aAhdd)jX@0H`j+n~o z8u-+2{r?}Q>U}aW^o4nEcdb7sxO=7wf^B&J=&3kKQl1&--oLT`|KlnDIGcf;lz@u8 z8ea4N^M@a+$biHO-E)cGNYsBX=7#i5qTjs${`*_tFHiY@6y^nI+5hXe{~&1mIo}^2 zfYxt7#az&++P?|?AG7E)SM+cxPtKPX2$N%@r6>2RQIZKk}cuK&AX6;XtHWIiU>0vsdw< zSis-S34&yXY`0GDBs3r7yx*H*C_`R&A?>_oieD$p5u$;zJH2X$#*q)twee+y7)Udj zU1{n;NEt%4`QXTD_4|xFi7LUIkha4@Xn;hEkBtTMxDuwbcbZQy5CLA(OhDTU#hv-5FZ*$aJO%D#{qWSz(sqJE$;T+*rUS^P%<($V3WkqYe>nBx z%2+(A#3;Jg81W7vI{;&{74 zh_K5dtxlM3K3I6Q&6RF9Stop)Kv+q?s1|;FB5fIRl0aB48$vSF4idH?$J$eSG7Kr; z!|yWtoRD|`xYUvuwf*N9{&Rb)B*_lt*mnm1$Jq%~q7n5xFo+JSpZEr}K!4IVlt0&f zBZ}U|Vf+!*JgySDELY}BQN^+pZz zfJh~oH0gAKM_`yyi|hYmG{wN~w4SRG_~*af5f7Z2Lbyqj-bS5;X2k^kNgp=lkG zpEO?DWissQ)Q(zjDi@jan%~*)jB#7}dQjwD=2Py7uBoy)7&I-%Kn_-m=|ujmOzCer zL6ZZZC3jib|5^3*Q|G)<|IvWRv=wNEb;04=&c|(+sc&xrIcwJ^`O@r1KX3>MAqnti z)6SVH^Xbo~^)3fvtLJgz?W+0yrvs4yMf9q}-T#MobZ3s3R}(=h@t-=U?dC==VsZ(c z&ip8!4ZBUcei@r431R=S!9DB@(h=f5ejR%bnAJ-!Ooov{<|cEmgTx-}qyjO9-suc8 z24myY*1R9*w7#=wA>IG*0dVWbb7WN)eM7CoBdiXr;CF|rpYJ8e_%0Ax%DeAP>-wyx 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∾U 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�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∓BOu$2=iRDP?Mk=GN-5%Kb(k-k5_ zu28(swHmSH`^8q_YPscYYVKV&8qdE0F{cVT;@6|4fG_Ah;&J~IDC%{QntPO zhMsGBee}lTL;Q~p#w@p6I%wWI`3%-@SvM9H2cc-0`-aRDUlx~M)DXR{OO#Nr{H<&} zDU?ilCB&k5;U>%J1H%}PLirB1uwz|?fEY3k>Se$omKGR$2?r%d#iQ=7blj9>OMwQA zWgys!g$O8h<()j@9}DoQWd60LHaqlipIl*gh6fKfa;*Ue)T10mX4~!;;Wt!LUo~IS zFzv8i@D3&*AqSi^vOVck2QA^H?Gqz69|UWVku&XtE9~O2ICgh(RZ=TGPY8YcIV5fn z?b|C}RuOClr@vw*c6Q zm*0Dd$;;5M-OW_9D%}Ec)iR|)W+Hh?GSD@ zjL20A$3nmh?UC&wlo-`A%$}pv=}Q9GTEBYA8q)411Cx%8zdBh0IG8qn<@VYHw~lc=TbkQK!LT zXGR?bLs~)`ik&7@*2DFZ@e&p;5Q1k6FSHu@SFLK0Y0T|jo?c}0oBOI`8ULx3>LrNW zEMu($W<9da%iVW-B}Lr-)wQ~ARUcbZpg`K3Y)pT?)2k9k!nP+=7Uwe7?t;&Y;pH7T zzp(C%@Lhf_k9RdsFDKiKS7c|`vgVpma}{3J@|U-?!Ep3!#l=?7vKzX{((`Jo)a-X7 zs!I|sFBZ9i6Js5q<{ia_^b6dlSvs)Bx1lVHcrL3k<`mVZli1L zwVJyd0PiuFlE}vyb3QD?teMm%$Vib~D|ZN*Y>$kjTB><0+B%5FSU!r}v!-ERU#%Wb zR%8gag(!(f=MR0Hr}ZW{n0(GsC7E)6r*77JG)^s?&`Znj;dU#liA|y(7A?4nQ)#CT zY3go>$4!gPpH56Y>c{A*m9Crwlm^Nr4)SKlM+{P2f3Sqa)>Os6hV@3Jyrd4uA?7L{ zw^tzQ<3XAa7ks2LFz)OY6tgjg_JV=PjnTnTU5S1sesR|=!>oJHLHoFhezr~kd8AWQ zX}{3!{kgI5%6L4q)OW5}|H=xduSLZRkkjDPQT(csqRAD_{Sx3bvDiiezzju7iE|Ko zUC!MJ`%t$qypztlLYnrjdFtjzADr_2`h0U+WQ!2f!vo4(oznipsCjp*pB7a6F6C(lkL;kScD%l9>*|eD3768X0A}sPZlze%Z*L+&0OsIRYHN7 zjRp{dmrC8SXDkva)C#)HZNe5W`dzttE1&TQJ{XtZ&<3AxLSK*JI#A^0^!2FXXxFsU z!PFe^cxVxO+ z>7QE74?h>j#6a5R){9tW$VHx|W!L+wJV|-RqNTAic_}6l5?N~EUni*(%>o3q-cTZX zqkOAy^P8ozT|v13Z{pkRqKFU9ckg;NOI1FTaV3UkCqT=qZeCz^s`0?TQm@)BBDDJD ziR)yf80!2J|5;<7y(`MkDL*?oMIO|2t8Boc)uL6cTW%dL-CiK~yzF7MUk94g!R?7n zY3{?sFM9PPcUSN7B|KHo`+Aiwf2Sp`nB96xdhcpm&6@G+A^W~E50p=#i$~#g!3{D5 zF42K|1uO2mT(b-li&%`Ckt8j)_^AHp`^P~Ja?>dnrEqm0KMo3_y(=%;&8<}+6-+Oj z(p;pJN>1I<+NuB?=lCh(I~AY598=9I`$zX_zDP&V5!?^v(kbc1K@{9pj&nG1<*r`4 zV>VG$dX~nes-{+Z{-dw2FUzf4kIr47o!7JsaORBy{1N)oU#dNh?bmxrOwBGSx#$tb ztk2YxA%uGxv1aWmwo~!}Y7z=A6u-?-K`c{op|CRF`!)b6(sy9WlHUMMK`cP}=t3wz z@-vXZ?@V~k;X18LaAk=_NXy{s1R|{yU7jF(X7xFK>-<&A@*MbJwq_I%YNQ#MteK-V zbM3useKZ&V`KiiD5)yGO!@Pc9?!oIL<2gMvIJ>SO0$Ke_CaIFkxXE0ul1`<~1=jV^~aZB(iTrDkgT90mX3&lrKDc$V07?9J^ zh+Oq@o!m))cq=5IqyVtQoy)Wr1DpSa@}R#o>{6q$RW*!@OuwEXPkj>Eg8gMA zDBhu!m=sQ+q+#h5QwhY>m9JTSNjrWOwk>6-H;CioT;UXTcPGMz`TkB&F)LQ%ZsYmM zY-kX>{G)q*PX7HHGi+q=!vr}GI-_&_H#@@LNtFiWU@@ez>Bc?Hpl+F1ocv6(#L zXE}l&v$8ZJf@x@IbO_&7HUJ<+$zP`9BKZg7+Fq&^)*CnU!oT!v&$U|gRX^i<(Rl@$ zeFulM^TpIq<`WqvatX#+P5;n$1y^y5bIh20UhrkKi`DIRi=I_+$R-wh|2{t6QXj;| zY8&QfAvzhgHTi6ahWP{tJm`x(xA9tz!L8}1I)Hkdcw3Di3WL|OE7{HAyHI3mrW8;E z4u*8%@CryOeLCe^Dho-9iOOUC95`O8d!r^jsxv@Y#I>&>IHE4Z3 z8svs#%-4U#Hy8fLGO-6V6xV~*(OYf9cLZC#q9SN$H~@GUuZ)A3J{+AOfZb4!E1Aw7 z^JQTZdWeG7kK*r^ckEV*t;PMreq#^7(hH;J$WS{+1mym0Y%*R4jxk=N8vF1`r|^_s zVv}_tB@ABjOih|xxbvM5QniDnW~k&{&thhUX=l%CEgxhCr(}5=DsJT5zxMDA__jd= zCHbp+SI#2dUVR}Ko^|?ou4&XYK~aiOhanU>vZp<`@5Cr73xZk*I*55Q2OZ}@2c_zupxj_2H&K6_hhkN^5 zc>i?vkw6Vux_x(dQRN{5kHo@$p=AF2+Ms=jkW}RQyIJ|z#_q8&aAQDH4{f`f<#ZUi zRFYiXS}fkfWFNu?3VPC2*T#J}z(Qc)Is_0@yO0`~q|>?36XiZqV)j9)5hmqJKz6|H zA@DSkTi;x1zYwTj!2qxM*YhR;>y=d$Xh=Wt1g^WY;38?TA|&MXM{yI`=^?tj(0Va+ za*0`Akl3$V@J~-=@;#z>VKv3`5fgkhNyR$>^KDto+GQNd2UjzmD7^L|E#N($jEmQ7 z1k4s9ssYGvX9XW_?2Gshf{XPO3wbaXH7`HmT~=u6ZnAJ<07C!jQqo@AAFw zrQST=^jWQ?BDoqe?Y%D>L#H2o!SawJ(u&|tp9_}yxtjOVW_^}{a( z6w&cvTu)}CMND`S?5v)e+RFCGU0K$eF|5|C7dDDI22 zv@01e2EPRa1cX`S*J|7ZY{m=h;^O)mIa<&3!J^B9*--=epebFd-&Jb+bE$v(Az7Z{ zVTZSHatBj^{DmN2pwv}GCZP%z*ul3QLA^lJg6&p4@{6?LdBWmh2=0&A*804}=w6aiR1^R9Lp%pig)E7q zf6ebqxKGKGPs$mEI)9~h|H~=Grh_t#2`m3LM5db>YL3V@K2Z3<+pXe*g|X7WA-eRd zg#Rfy$?O!#SXJz~=UVUm@V`IYWwzfg5|W-Da^MkyAj3==-u^WK4aYYP(OfUkR?c;; zU(vtq&L2;#xs;4GDoUOH8x`9i%tFpU_4%aZTZd!@s)+B$Jtl~~Ys0&1!{`Td8JuaNEyn(`4{uEiLgA!JE&t=IZhqblemBIOA znc8K&ahB|#8MFM$6M!PgVmRcJ_uu$&2!0V;Kc}yy&Ssy!gEZ~{hK=c&gvgCRCj6lF z(LRlayn+oa{eOnBPpPP@LXtE2tl%G(c zTNtpA!u3B) z?<%V}6yDbfGlueu4k&)O{jBYuZnV9H;}li&0rFF$|8mz~&oey2zbObO!#s+Ies4-W z#v5yiz1r}z!oT^`UzZw|C@P$+jdg?+$@i8jXLaPgv7p(kTf;@^*)ByK9yhUjHLncJ z{Fj}vO~YGhN!@ceEFtu%Q%w$*IeX4)DLl!kdM&JyeB57#`qv=->d*HvkoZc;C^_6B zbiZPFH4OOWlX~)~Z_-@RH!N}a`kGk9UvB?#`v1BlwNFUslb2|bmJZBsMI^rYwIg8< zd?`@J)E%emfBWd4+LDU$W_k(2KU<&*dZ-SOCn+v=Z`7`00ndLqlDrgerloBEb#f&SX{ngX&WB%#EfBqu1P7DkJWs&pxtPf#0rBtW%0yxR}^MXx< z|Lvks;^9ey@SkS@QYUqRaKLEG0SN2py}PwAfcLZL{oSNINCHOD=h9Ug4fKopx=MCq z&$C`zUh=X(wg%9%e<#pDt56HMWD+0rq-d@gJhaRr!^r&m=&!TePKDVm9~{5CuH!c& zR*AJVGvH+T-}Q-*q*w}1TCz07ExKoR>w6cbM=9F$lm5GT{d0n`pey9$So&AtkGP2b z(=dKs^fnxvWXOg8IQF0alu3(?-TTxbOFjIr9{haA-%KTTZyoM`p6H*NQhx_%g3p!e z?7*J>>B4^)r#IHissH8vv&KI^kiv2t)MKaoZ$;uC50Jtt+5De62i*MhIullvId??B z#lM-WzmXs&tWlT$Z6>gwpD6(0xEm!e`#%Z?Io7)9-)*PA5gDmLLPGDnScSBd|8boO zy$`PbZ!;m4Y>tN~rP-CH`s8os>hJoFCv`&lAH?U^x!UO&su|81{7CFTFN*DpHa|HJJCJ%{(RTzWT@UfbGfKkT3R)CwzNA%;2a zE~@7Yh^`8zT?HRx;5)oX*Nx)NtLTbM0QbMK675e!`SllGVuj5=y3`+Z>q9@J!$#@D z%@Xx-)AdCwv)$kcO8CBh#cBE~tR@ClOejP~l$^&a3zpylxiRE>YkCg;J zh!rt2s;q!pxNRV-s`h&I%hR^!TK07q856+}6Oj>j_I+`e`U|^0h$*cYrFgN3#m?wR zYfxE9|ILXG`CYB8wh0bZ1&2+C%}KA@wY4u~3L&7~#?c9gPoCgh>)kZD&C1$MqolLr zV)_pL0i#HmftQO_^C$jyR*zvBj~PnHR;uT~bmgg5)d%UrhubF`Yt>b=h$Yly7i#xl z;zV_i&dSQlY-RqDne_(8rhXmgT>%nLIy6ugcDeRKTp)yuULs7VMKHsxvPUoUqyWFz z^gtAmzFys5#We;C!*_tagLAPBB?*s3dY;PfHQ$cLpjM2*cTeIy`;pOyZ;y?&;{XI3w3kK9uP}T?7m&#%wxmVrn za8DJ83DC_Jl90I$b-M@L_jVZ}%(eMnn4*J& zgZK6`yu#{EK18YE-9F^HrG^U-GWTdRKrXqj7f}mpA(HPU4vu6{ zXi!@JLFDgD*4ys*cv2yg7WoT5ZEh7AoKVQIBx)HBi&Y#8(2z}rpacxtwl zNG&B|(aTfE_cnZyq_`_$m{CRDYTqQ|Z@V@*wES2iNT43_VZ9zn?_1*si}SiWYa|!; zot9O)S58~Nt7^{;(fObg4GPx@7Y!dmPxLBdol3kI^6gSNb!SXOaFV5>uJeXcwxG3Q z_K>waW=0t;hRXLkp;m)PSclsi_H2m3WV8X5p;xC!;9e6FH1MPy(*ACi9M7#5 zr$sw99344TA;i_)IC-)wmHKp5Aj4NKI30sHM029Pf{>Mta4x~f>V5FK#iTp(aUX)Q zolnPOE{0kS+*-L;86q)aQ?GT~VRV50xddOc1O@q3IKtJ!0=eVj89p>0bIWtxA&K^O zpkp(x&cok8<%Z0Q<8pqOqGo zz0U1qgF%k*XkBWZ!IjM73_4EBpAY(WbsDqBk(BG&mQ=T|gzUkr=LdN10HV^bUp}dB zS557Z)K^>+Z>oOOEXE-{Mbfe$Fm<{eD7&?r8vhiTgz*JE;!9WJ)}+j*@J7+q@3NYG z9ZFbUl{|X1LW6Y`yN!a0ej%%su~R!GX)S772-z`(oXe-&_cTSNZ=gD$4=MP^Lve$y zAGu>bcIOP*)j))Sf(+m)oMc2#q5(I%f!9(0s_d2nY`A4l64TX_ZlXZtlplh9AA@wM z4=-C}TB~pvTL%Q6icA~^STCTc>PP?Ff zXTmf9HK|j34RTl+1?%zLf=sN|Ui&9P{t*O7DMKe6diM3^#D78N0A!DIc09Mzoyc1Y z+H&A$w%7OE`6d@|aNlq*LOB2})Go(RSr6R9SuaXp-m|$PDrmharpXz?+4m%+XVj~L zZ&>(_U{spv?Y#|1f_6#=#3(LPZm;x-#L-r5txuA%w!&`3UUt&4Rt*>0>zQJA5QLWn zr=L!B8DmDl&$A{UolYMdiU4k?z^o71sH~P@GmQ1 zE@k-TXfcJ7)&9XZsJ!LwaY(%+M8s4re)x`Oa@QNH<5!F6v%{@Q@tLl{vJR#h%W5|% zrCX;U=!JkWlCs-H;&R$WhSta8cXjfKYevFkoXQ;raxX31}M0o_LS}D9G71x$SkFxHp>E(+qPs^SP zo@21d)yvSLrg?9SS#_Awh!lopP&N*3SJEF9mvi9my;@u}BJazBnX10h+!VGg7`A$% z+3V;r9M31pDB)bAg>JZ7P6Zq&+IPH^V(&uC3y-=6S5NZlrV)fG!6bc8f)j<@8rQ+r zTk|NF1&EqR7;dlTBJ}b3UqtbbSz{*xOyg7|nx8Lb-htBP>#7VKX_4MR0;e!jf`mhv z5wQev33nMLT)a@D&Bva{nD?5(zto`zI=jV}{y5JyHgbEeUoFJtMY{*`HT+F{r7-DG zUtg%f#(782rS36R85u~G%W=`Hm@j^Q1Z52W$28Y!yOZN&grfdthtoot!5OqmuENt% zPEx8qaK;D1fjbk&%kfP>b|*!vfh28xQTN?Y6Hd6@=Tr`A^Xsbx#4#=H8$sRTAy=jQ z`!+pSP$B8*h3_V^7kgs0<5{UrXFwjTS4Bo?-jCNx!{fl#x*BUt7u#M;_i-euBVrf_0X#t#NS=PHbs;WLKk>XBLuEXejmXx{>Ir<#$l5d7sV}4yx92|-WB)3TC0RfF@b-^=fZ@`)UH#xmTgOf)S<^pFzpQI zTLt9wkWH%5yL~O2FxzR0EODHvVaCd9T}IYI+!j_!EI_8@I`t85jf#QP>6LsLnmQ)m zWl4_$>R`6IQ7d~6v14n(xVN5EqfYXfM$p-EgD#&#)204_#!@-ll2alI+C$-bO7Lz< z(X=~JF+W%514AWP_V8dKj!e?tD`2h7LcmI)es{qpHQy7_YBmz~T6U`16+K?!*jK~M zRykgWuz*1Hk)=J5JE$?qBl$v1K4um3o;lgQuV&=di~Ig{rq&EO12Hm{h{S|V>P0jJ zuxV}~CkXi^T#sJHemIG_GkhdPN-xnD;pTQ)Vb@GTyzqpSVVT4`QOMJyGIQ2qB#G>D ze1d)Oa@}HXhEm4*vB>El8Hg>I1~N4}o*u|$(z4NpllxsC{k)3+X$}L3LV5OIKpvF+ z@(~@QTT0vfQR${++yR47_@svoWLr~!#pk_5A|I!u2YiQ~P0vj=lTZU)D~WNgRH%m+ zzVjuJ!oc$(*;5h=KDREhrh<-|2>Nr(a7}%JEW;Ur65z~%`-cuphjNUylJ6{Nbs3Br z;M7xEPjjkS2+Cx8?Ze~p>+=Ya!40|8Q?9J2&JSeN9ULe=voA;V^a8?G!)4i8keh%= zv|;OU*x&5^7|vL;wUQhMIWSf}@6DjzCVvL*5~YH%l`yA*m=14(tRB?l6q-)?DLu(9 zU~{VKg2ATe7IdvSgDD#OT^20cd206!+-JI;QsO3G_dkYv?K?CxC2fkGs4~~nMtG7Z8U`Nn``Ri}tf>6bEO-z% z@~!?V!Flhx_s6rx4*mI_i^jNU$yRUHZjKf~m$Ji`n)(D|Ln6Q1xDPTKG6}t{0h4b1 z>Ty0wZ$${+C%!+qR5P#hqq78Rp`3hOuGg`|#S!Ja`p|T2G_O`(L;4-F!aT0axX$VN zcy&Et>SzhXw7a{4$7-Uox=jTzWKb{MExM329q_WY_gqu17K_VOiV68Z}IR&#NPNbUAy z)ocOTL}ks%7KJMn!_@J&j^)?%OyXKtj%$tp{$Cz^n(YwT3o`@WihX=C9LijL5E=h$ z_nyf!()%2^`5acFJOoJ`XI97U8XRLfI@QzidQRS#rpSSBW{*glP{St-4~x^4xit6P zxd{5ki%-)BhHcT2ZhN;VuuvOFF4^~XX)%{)>61KmLie^?8RX-f*W@h(tpI$!{%s`Y zFjZVw=(zTRZa_T9Z&0h^vE+Y~?p-Zke>mp6t{7Lo$^Am$ zs3Rjufv4_R2}zAXO+Dt)mu@VaN)axeWm%te$&5C;HrW#|l6Dk$c(UW2-p`E8Oia54 z7j7T%nDQu4MPszoNY625hA)P`7CA>I`?d}pC5Z|Zn>Lqi#=x&EX^BU*ilf+!{kAX{ z#1D59&(!i8x#{PtSt%hwQ|^FUGK;%@Xn)DU50Ml6GX$Z&PJW2H+A=?7wQn3SWgY66 zIn;4nU3qt?KRDRo_}s?GMqFM*EH$;5btn5zW}H;=5Z+=}Z0PLfH-ZiJSgOXRDbIrp z+1pzj9Pm_AkQ<-4=TrhJ76Kt{LbBE)k3Bp5s-}UxQ@k9R78uwyrB^F~ss=ROwkH5{ zuHj3zwop9Y4?Ubnsykgb?RQB6vp|++P6CWc_IfO`hc4G+jO)QRx_EnO4(N zg!(rE5dSbASz_FnT#-}DZf^e;GJlR$*Wm@iC4gxKI(ixVnILB@ z=rm$%t<5(SFv}TJpIQi}@j&L59W6E(KiTA|8%4gdCs)e}F`N}bFrpR?1GKNAkMir{ z&P=71NhfJdti8tTay!WhsOB9S;bHItQlH==OmFBwD8bHs?cq|Z?Q0l5r=6zR_3b&< z4p~Z2$G#e?Q+H0U%cr_U%=(z*<4_{e6$#UpJq1$F;NAE(sPmJX%F!w{NWVY1%fCKA z(KzD9hS#aePoLmuY6nj9F2c~;n&tYsF*r$18I zy5H7vMFyM%USAj6eFCmpjf`V|!JH`ekp+UzBD);(PIFNz#|3VacLhs-Ii9*WN5a&b zyCXqx>OF8my14@{jb7&Q+|mOuRhQXNNq0kzeH_$4a%);#*zhEc`DB3%JapRV^YLt40_5RZvGHbI$>H=zgKFh=lqsH6{n3L>tffzGhJCA>d0gGc zOB3aq9^SVl2}Ch-JZKN39A-r@a0FiivDRyXwKrxVka}iSH}4`A>(LN3k`=eLNznk$ zEsm+V6W;A?@|@c@tpk;@Xt>J8 zs#NMs#>5Wa_Yim8)7rLMN$vJtPFxk4IuyWEl8Hx7y1M9x9wQIYr@G4^G?`a6Si>KE zLRxbpERMc=J>bsp+Id{YM%pu-U(t`#1ps}SM3#@Pi=)?ZOAvXQI-}b^dPr>DaGD+9 z9$vY*wYjc~v_155JTG)OOy5-3@agG-;p$k9<5$F;kdJvy>~FX3`M%>_f9A>4vs=2~ ztoAb=T;jRyu#zgafXbuagVERycm)nzCFi$lpWhhVt`_w9#C(M#J)4o!c*m!*SPf5V za~PZq#>{x^5;I~9?dmee7*CtaVVIqA&u0%aEZPN)Bu?8P%NA27cE}b!o>Z9lIgvxL zhL4t|z_Dr62mLD7zv+b%71um;$MoxNQb|wazO%3ACP;3^Jtg#>ECYMR3R{_n9v8!< zJ*(b(ad0`ZF;&LLS9#}P!6VT>%Kh%<`7U#d`; zFJqz3M00fH(nv?eY=k3&dI~ z*RWxWRP3Qi{=^t3V4^x2QLHTYmb0r+zvqr9oK^mD@X=80{&Jm|RF;jf)8b;WJ^OWgpRz-*7Bg z&{?!01Qi{BtQFUd&cPd_t*u zlJqUnE1&PWwVyz}h~&JT!bf0!k#8%9kM5vjZr2GzW-c*u25)s&buAwYYLFhkWb`;n zWbWm_sT;L-UX@>H7M%Kqt%nG(j4Gd~5Spl4Lwb63L~?REznd;3{7jp9Ut_&eSQoJ> z3|^><$97!)5|7gUzHehGhoeuL#81em)^)318q}k&Bf}R2xt8mCPVd2ka0|ZzB(s_@ z-B*AUqU&X2;9eVt2`{}o*vpz2lU+oxSqR!F%LOMa8B88_rC&`zIqzkN1591@m4Sic z&e+kB@}78S&-VjCS!&g*+Sa0cHZH3d0s}*OYW5!Vg+#8l!x12m_VYJylNaSS4W4k< zO|KTQ1omG#oYJ;D)Rgp)FiqLmtDO$kr@IeA?K6t$dQ=@FWwS`I7+26`zY8Ck_UN>1 z>V3dz)ih9sh;bD)wiGpglX>%wRIBgAkXl9{U8$XnK+3?}45A?fY_W(mBm7Ah54>;q za5$9!&^jH>U4C8|Igp~)u4$4ypS?iq(L1^rREPZrD}xdo5ftv^lwh26h*)czI_(PtoCdl9DC7o+fzuPjC}dx9s^yx4IIL5fqo`=~}4<%1Nw)O|rfK~w_fo~tYtXy66OwtjNOFiKQ z7#f?(Hg)CKOfw`Ri=TUmqG0tWudP4qoNl}C9eqpL4AQ=OxG1%(@0JWdgE_L~j?eQv zR|*Nh)*HVPZQt1q>RaTzB~HgL#*P-#FCWer-5hbH67n3ch;75uzl7au_iXl=EzRk8 z=+t+_`v)O%ruCCY@zN2uRwcLRWn>#RKgV+&C!NM&)W^O3DMm7S;<;kgK%giI%=Y0S zu~gk^B;79mZpdY*s!dI~L^BA_RJPaZc~a0+w~5=7I7k0i7cL&j1NVsT7n^Zk5Y1(w3&LfRo<*fc^cc=IXgBC6hRnr_dx|rfFWWx3j3`(@VI~p2sl8 zNA<^kATG-@tJySBC<#?1Hgx9an$5R)>wa3>gMOUvyJ&)YBCcqdm8QGvSW(!9=>4i}7ob zCc?c82Cv(Yb+9Bi=@>YU_t;ZPKbHR^%S6rdCuuNeo@$q4E@5H>-)rN;FQ>qNWFQEx zFghw8HVwJ-?yZ1}xOtz#$1XGONQ#f?bJH!|EqnT%yl*GwcSH$RxnORW?DEf}bMmYo zS78ox2_~LBA>~gL1iu(9bpe^T9e(V%Sj>3}tKSV=PAi{M1lW7!K&i#Dg9FETEz>DF zXv5jb1VQ?4DiH6WAqvl5q2ZYMdX75}<%Sm8kn~X4lN1BK3`Ipo&!b6ZnB%FJ)YKiD z#h^1!1@qTE;25gX>`4%=Jwb&XN0{>Ya}L&TZIh+G7Op_*O1cTJPnOqTNxdwpl)%qB z;k0_e4Mk9W(y)QMC@8}l0@V(gtQ8ZF^36UufG(gHct0g2B=~*>sQ<*pMFGHsx+;6M zeg8YB_^TvTctHJgxr{7DyD53gDZpa`!>-2!42{==gxzPK52h<@v{BFAw=lgKv@Oi{ zAax~gv?XXdsv+ygK&9JZI28PJk`| zQI#KWh`wWYZ`g12>u!h2Qygwvj<2MKEW|5N8EF0vWhj8z-i$z{?;IgNh4;JqOPf5Pw4 zc?F2F-M>)q-B0^l#`5Ro_}=Y?ObVd24y|!>OV`13Qc0rl80;$AzQLIPWrW@h56`PR za9RTmgv{f+SpP4>0Ve6egXGV+$sL!+ugf5Eer8jC)8n5zre_8HOzNGtI54Jpa!-`; zXQ}v=lmBI*pgQE4D_Bc96qQkAa_@Up|qQVa->5sKb~EHr4Vr`Gq-wNv)iOiZnSn& zs&IV`un6m@`?H&hm$eu>5cB)u9Z(s${^ep*FgN>Th}Fx7U0rjk3TV2VraHe6dWBZy zvUC6joc0=7#)<)&AMR2Qm}0PxpIVXJc}IXBC7s`-ziGosE+mPqyRSBRRdK*UZ_*h! zzUs0AdT`g_4s-n`ozZpni1JaFX%&&UF~Pg=Ea4=ZWc#hHP)BwGeEuPLMhq4lf=nI5{Ccl$X0Wrk>fut7rVuwq_(@xX^nmZuNBK7(KDms$S=zOMmGBTPM8W z`6(mTT^sz@-xY}-FVv$Lc;&OH=m@P>M*ooq#%|~TvG>+tQN3FmFb#@;igc+cNQ-o% zC@38cHH6aLjiiDSf^@?m-NL|7L#c$+4BZ_=cjve9SLk`a_dVy&@4L=FTwJhc_TKAR z&%N#y&sy)IS)2~Sgg<%O-`h<}050QUR{VBqRG?KXp^bPkBk)SXQ<^ ztu;DC$c(^zzzOC3flhH5DvfLMnu`iLR|V zf8Ewzzb$0U^fY?4(FsUb2zSKxi@kCM`e%OmY=2a;U==60 zl4uEpE<10bbKbzBLGS9>@@O$*Kk6{6bz73ZIC%kvkRErKgWs5x1))ups}&W+qGjI^ zvxmF>_*`l*1=qoK->%tRe3|^(^ugTb@w#*b4*5Np`MS>z;Nk^-`@TJR2sKs}o^7%e z>e(A}XDM8+wmAf11VE)>P-D#Yioi{y8mN^@pmD56)~7(@ULYsToLsi|MrW*?UG$Q^ zUU;j_Qpu`dmfVWk&2JSMhi^#dW(3Hcya-K166sv(fO5Y@;Qq2RO(CmRQ!s7!o@yXe zM&V7L=MdJ#e;ylZ8dg5<7aTY&6Fd!H^CV4lRi`RZ_=Rzh3U7hKwbX zb|z`dx@r_A3K!e;$K)J7ex8`e%J@0?eP||m!$~(dX_s1T?POuruDbR(sx4?ht0vaT z9#UeDI9me=?XM|Zgfi6TXV#)b#-H}jWvgKM#u#P~6}7E$>^ZK^uP&aASXT~?1y0W5 zd4}9f`=Xx?WSvk@Ya)kw34sJh1lqzkiI%mo$Sj^3cHLzkX+(Y(rlr2XCD{MQah-yd z{y+f7QNE*Y4oj4%u96E_%U9f2p4Q#;;;dj;<9wDv?4eL*s)uSi%uv;MufWC4i6UtA{e*5r#4NUIuEF!Es|f{t_2Pk8|!LDMJPUl%_Kv&$G@0( z3fjX8s-JAGJS=$O}P7Fps!l@iZU%0Ch+}mWN9@#mkD4>)2|jn1#_U zSB6iEPYgl(#?xukRKkUqU(v&jUAN3he;BB*xhO(2LJb)h&l+cJ${q{`^q*XFRVZdJ z(dR%Qz$BL`Q*Yo;mJl99*1i}cB7n$^O7@)U>y78S-OMc&gmMl!`k34FVd?>&PWkPz zNU4YWtU=oglXNvZl7iu0rBc^zC}gS9B9B8}hS1FcbI`JuxA7Kgm)&TgZ|L~0->tTp z*lL$4%9>%6&m`Z3b595_fN_S4)}5k6WB6`RZWHZ751Z)Nls6JKRvTCuXeW{0e*#*6( zXH>*Loo`vx9^wN0p$b52WD)B?lRBNZ{zVC5S$O_Bl}-}FaC_$>w1rxVRC+~z3)_Q4--p;*MLxVPpGbE8s58FHiS4Uz5~oR)dvJkuVEyG6hVChirRs5)0 zbi}u$siP;m#XnP+f3R2|7J9|Aaq}OT^woe%Zg zmTnWIy?FMQH?#LVp~?xlwnINuk^nR2YLYS0al?Tcy_HekiIBZE+%h=Md`4jWWQZ#e zRk7)*<_U9Vi|l8Q$rR4BnV3Xn>)!hokL*_Nt>cE1E)@`7roI(g!1=5g7Jk{|81!~I z4@m+AGYZ{A&PNhz%q-Dtau;^1)MhPTIs1T^r2y-9q$N>XGxIowMs*w7x}9rr$yYJstzNaL!pE%D-9yzZiQ||3d;ig)k(4#E(EP~_vaFDOUHZ2@z@VXzA&9H z%~^cud3JDtN>S!~>3Fgs_nt|_8SW}m5hJ>%<1`J_lao^dB<<2%&Rl>-+Cfj1FH$A( z`(LT@x`8ZsI-8IaSp#x))q_@2m)ZC9vYTf^a5YxN`5i|qzI8q;Mtqyu&WUZUK?8hR z%At~7XGUsQ!kJwmuisi4mxzw(taX=dra9}G!1neuw!O+XlFk;mQ%`@X)i!MF>f{&vkX^0|rNLX#Lh>XA)9@H(DbYWSvSzBeg z`E^Z@$YB&}xmp>58?;P2RFL+4IoFX&#bD2>ZJEjr>74PXI747n>}3ie%BiF6m|D<| z)q3QUp22>yw2%XvP`q`k@NsJbN%@Ba9y-sRv%qEGK>y!9=Opvh#Ogql9rI62gC&J6 z{nZNqsRE%qhM48sE7-69tk`qI-g!*#v^rfmTLYXOG2iBD11Mr<$B1)AhpC!UN^F6X z5ut4DR28->PCrWmd5-aPX0}A+;h}(b?`tV}D~Ih}Ap9%2l|r?})f!voB*A+Hg_o6-K}>NiL;mVc-X5zgVD7MgOIf=|s?qbJ_yxm5e>js^;CM&8hf6LV z8Lk&;Z{V4nd>S%$W8y|44SMr8(DV^o2Ooi|^=Np%^-%I!)o$ivg);YvvtFPea)g_W zXO8NI65zCv4!BSFNC@QZ`IJ7yEm32)jnI42RjW>i4onW0Z{g!$w$^6xUu zmzu`ERcZd?vs`Q%^Jlli@h+-Q@6OoXyDAu)LPPrlfk`xL42Uy4{h)d~IswPE-^rFO zz-8YKXW$SjL`>CqLyvR>D4{}?wArEUVAJ+#kG|k|z0B`*FHDo$+9@nfF!|2=wg!t^ z2sPa{FZ}Iol#q4h=FJc*vcF8-h279f0L~#w9aN2$>uJRER@&X(@XICD@S3q!ir2QF z^l2z6d{Y!V&s4%QQR1-aN60z5%QxTE%{L$RO$oL>oG|WUZ7B$3dO5>gzPx2^f80Lj z`PNdc(A?UZ1H*gUW%lkj+e%^Ic={PzgNP8I`opwRIVX=Q;x3*b##{PjTZ7)U_NyXq z(2+`^Ext4w5ZpYl#zc!Ajp5@^wDkkH&0hX3pq|}x5^W)Jgo|@RaR`K^L?__%nY=iu zdvXycbN2S4^bl+Y{%cJ1l99L&uG!5GvvOgwxv~#P5LkTcgGs6dW1q%#prRdd0&G0< zSdU}CgmVuOQIdE92Du{P1{kh5+l z;#2wRu!=!pvVeGZdLBp$brH1vi$c^#-K;p#^-#-Y0J$XM!9LOr+$eR26^Iyb7A*G# zLM<&DQ7yG#`S-o%Z-Y**r`hXEXPHJYg03-#<#w5-CM^A}vq0ubUOKgRR99Ki{ zDI~j`89mLX3+axPN@(s?GT$y$UbZ7$@R455=~=8#O>12GDDa`O-H8Ujb9P-Zvf|2( z5uQ+UX3_mqM&Gy@p>lg`gK#Sj3^@HH`0~sB{g!|JqL_!lGGOtX(f;99U_$i#x4X!`CJJ^&*jPmm6#Gpan|um+W+J=g5*s(TdkWmY*^L`o!0RA`@ud?R>_ zU7#}j@>zZ#%^MYhVX0-GL8&y*?OTtVLsFh!9Hk)|<>XYzc&TeaLXoP5vZz-wl3N$+ zhN;_zoy!8K2bB$#D-a;w0-VVVLz%)h^m3H`;7p=P7~q>1U&iy*8E_449|H zsS3`Nyn@)0Z2Hh)nix!j7&Z-u;`en6tNN5VEhf}_H(_&CtQ!196P$NnRbD$Whp)F5B8ayLLjC>yr~RKAyseEl z{PEeHrn9225FB_0w!4@4O=8nzSN#)_8dONNA zLlJ8;~Gg#mgF%E^GCe1-?ca4n;T*Jm1~C-E5W8}=^-R{ zF4G_HdOV*%}g9~JI>FKJ^kJZ_zdZZ>Njm^`A!tF^K>n5OOV z7zY~s<&|w4%_$9#2^qbPe4=6S1^2_I7rK+j&&# z9tvQz(d+MsXB3>a%C_+!H`y-v>i-z3Klhf60LJFEhvCmGN6Pq~-OP;5;5+;L9a_S4 zcsNwjh`+r8R|zu2JncD6bnr$witGo?bkf{|ZjYXfa)eV6sJ5aU=ayfM=qy1|R9o9q zKLoD3$$3gr{K%6Bdg*(_Z+3K;ntFOxnvAdL#HCjAZTMf_(IDoB^9unHs5I8R>>HdQ zg~(`h$&rw!DuK6q`a9_&*aRZ1DIx_E9WRQ>1nuW7Xvc&L$s2_dQFgyHM7j1}{3JT? zaTJZ~D;;ohUuFT@*>Lx?tG)k>Lrv&mbDOeY39lsU9>>g9=@;G6aOIxJvt|F+KMI9G z){zag`Gnt0e>T*?lB^Uj+Y{^4Tvs}C?0Exd`OBJmo}qIszlpL0`|0FZ51vO?`Fi`Z zs*b7>BeR|FLc%I4R%vJ!4Lo_lDa0x~&W66U0dCg@1UPnw>{py0A!J9wJf`Dz{ch?J zsGZVWN-O%9>rQ_E(f>J|7~G_L995wBt)T}?ZLs095BA+jSIA;0&iL|H|Mwj^HNC4@ zZFzn*za{}L%kaW7+U#Q8-Kf;0>n3`(sGK6w?0MrL|MJF!^kXlX)%Xlc{mbHC!qeZs z6o{j)UNqlGGS9hx$^2ga-v5`cGt&Y3o^ua zx=RrBm(u)y1u%X5&8(*aA`1G(v34&LpZaXF1%79C$5Q9?y^y`$WL*TT?4uho+OJqW zsd?Q*#8Hrkw>0bMsOlm^zqDmO7Rx#Cq_6jnW`cj|i)69)HDubsw7KB_Z8a{LKOZyV z?4xT)!1AjlR381>Gl0m)KJ2uT1=9iCi8j{X&yMLpL}&f0Sp$l3f~{#|xWxI=dyG48 z^~FA{t!zOPktAIRgR^%2aj=d3#pGZ>M5E_)0eb*K9(ccO0iP1x?0)|rXxas8^8W{$ z_#HWep8zH(ZR4}~qyO+dNdUY2-`o9aoc}A#U*++0Gx?bPS5^K(m4ATuzpC>8J5|wo zi=kiGAeeLW0!f1jeau$g<`#FR&5Wc+U7)lFx`*Pbu0Go@ev?n`MK4a0m>2hdF$5Pr z-SScpL$alL-fpJZ&)P^WdJMx9mA%IU&&&K@ek|!Ur1CF~`1n(!>J9NCJ>-XQwVP5` zemx8eBmvMbvN32~cmC163vH~Qy9zYuVkPWyJ8GY!Z9V&GCtp4P;}#ObixKb5YH_rkGOv%l zzdA~iKJ|l5{@k^$T3y`|Qla?1wAce$#DF9pDr4OEPU0aKx#0epC>Qp5A|J+*S$nYx zIzE~Ue0gfR9lyxiyS^Ty&)L|05~lvMgYQpi{50#iny-MOvflCWWcd_ z9|&gbvizZAzjK`b@lHQi*X%hE%plN~mHXe)ApiPxKx=D)vT^a%|LIiRB{KNSY6Khk z^w3x?whZ+<&F>^%Qeu;24&i;%b7UFx>eawV)c z9urDbo+O=(A{3lX1Z4qkYg)5_Hf|qRNf0fDm>b3KdUQ#d5Pa|^3OiOyLR{b zP*Qn0?F%7!y47(rS;~l}0lrMzb1`>k400*giSzTck?{PseYOeS!KP6hSu}ksUx|uu zO3x#ZpCV6==`-ZKOygl!EW^*9+zjWvgZ>1=?^UObuD>@rCaj_9Ky*$*)BqggXr6Jt zO~bi7)>l|s;+UVl-$Pi5$-*Xsc_k9T8#-UG$T86uuv~7CV_@Lj_D1^;e%O>^JmWEB z&SfG7=)ujDn&CG5UWx-?RF*i|ss}W^7 zyzJ6c$@ineY?B^eYBeKp36(+;7z@0vUiV&0DH4K8qM>757yq|^_=w*AQdFqCoV(}F z^+G|uYqFHp@V-kUDx?Jb$=#(@e6Au8iA$MV1KDq$tL7GQ|KM*p>#*anvyKV8;&FXY z%dP+5W*1KeIlr=!&omGn|91Sly$TmMH@(p78%tD}xfaJJHJp9^l_I{f!OBpf;dE}%!*0v<6iH} z2SPmBhZI&i6mbP1P>8dpa-bT)Fp)R0uT^7j79X$#Jscbn692aJfxADy<@0&E#+D$% zrgx*_s4M6E>PlYTHC0dA@ZITlh1Qp{;hGVd4ti718N9=V zvuz~JGE1!&6>YJ0M?~{!i9D025rvKCv!h?t?V3er)f=7s}|U83KihA{AHT3^I)# zFy0r*Ct~qX0iJl`jW)57D&3n6A6~0ba!294j-bRu>NylD4+0Ta$&~H#MxUBMesFt5 zWSL)3&==2R4$nix^W>@FK=>?&(}5X8H@(+VQ|_<_{hRw7>4iOAa5n1Y7wZbgNFXeG zmtwCyIFNgrQQ6$Wth-YpLuYQjlQsrBcUg|yXO!`Qp;r3;VKq}&R}JdRZ@w2 z*XL)$Fw2CC0fc#<K3SdXC_>|ZPgXiwL-i}ETDH}&VrB7gP|4( zx46Fal?`u)FZ2pW@6Z4X>PpeZOqBDvgqc6y_H?Bmo0vfs`HW0E-4CD44VW;pPm8`V zsUUHp5Y4JF?Uw?~0L;A@Ew?rMW0USpq)5SMK7xNx*++-*Q{-sVCy7?f(yk!w-|h0f zbZ=)VWM>_V$&*f=CJ5^Z+|yhsxTagM93{(4-@Nl0_fMpvuJrb}VtTmrkyF72A)(MX zN>)j)IYA{Vri%rk&q&YA%v7bqRDzW)^~&&abMu+1Y5VaF`<5>FJ$E-_j&dv$R38vL znCP1+HYb$rP?T@-p3G=(!ay4Fu;+=JT6)rw3kNg)gi>F)39x0D$7eof+Vp%Y&RE-rig7RR(VTPdF3RYx)=41m;AQGZ7A!i+d=DHo zTdRdF$ZwkbH`_WDf3@-}VmaY&p(2 zd2@vxQDf3|wIg75d0{atr5~7vd(+KiqjI+xAWJ4NbB#XJJZhk#z5tj4 z>JAEx0d~Ij%y!E8n~e&WWc6J`u@j4i)#bu!cGjn36f@=K>f)8DsgLQULV6Pg?BU3Y zj^=qIbQC5o;ern?EwY1eVl>sPU$x;-!RshO&0~aFPa#=YBZ5J0E7!t$xb#OJucagp z4-a5zsG?@A5{&wiI*{>xsjFqhW?j6zb#WY*5#}AqbCDCGI|WVTHup>8DK#yPF#leY zKgq$BJFnI?My`ryRUyVkQ3Bk5FO1I`89ASw%f4ENdj2M?oJCPwpedtb6-j zLpheCQ>C~JI;v`8m}&%d=^yWKqghJ6aD0&*Hw0LWC<3x&DsyQ#px zIX*w^cYt}#11?u(QO!qg&9&8_*~|)jl_xLJ8+fynlLco3hST)`j1ZUv`>oDIQ2zu3 z0_jv#7Z)o56l=5a#v?3ixJs6MA23_+fjxJS3`Y%jsZ0Vwtx#*xFU4}SeB3RMEPs!P ze}B~8kOVT}ilX5#sC8P^q;X#<9_P1U?e{!v(_I37M>XPy{LJCJAfQ4gsVGA1N$ludUJ@(^WgX)^3zBU$O@83*q zRzDC>twWl>rzNfuxsd`EcRfEl9Y?axQfm?n=is~$WZGe|qWUz`E zX_P<}lE-pG{j$h7z!|G)drO(vWTnFh|Fb)ahZ-#|;=Z6qg%-~fspCEx+L+1sXddT0 zWC74<>`U<3rhWH>(F?Sy2wmH}cIx3R(Yzfk+TyXVZT=KuE@-sOJEL*ieXep&cB#>OnNVwo2g2}&8>>eY`ok$g^=3jj^78E z!H=8PL4NLxva#2T%MJU!)^Hhj?&LC#xaQkIvD5T<@TJ90HoocH=I7%Zz!w9%2$eWC z9kjK!`eqRngwTv03=!vvTRt|#cOU5MW1^?86{}GJFrWVcJG-i*qoX?7n0!)r_~#L; zYPK!AeELgDUXA@|wUev(yt9aT|Jmc?hXRWm<&Ez9?^sg3cIhLEvlQn-$_Ovi^EYpl~@ zkj|DxCnu_>X!K!G-kit&KpkW~H*&vSoZ@-b6~H0oZjC0^Ff^*ucqs5_a&!wnFXKt6 z-)A-~8p`;P{6XsBiB5AA;+*y6s%~@bDRC9s7C9J^(k~dfOgGUJy1TpUc7D2F=CY}0 z{Qw&qTk!m38%)ra%QDif3f(Bijyb(uHZhPZbDRp)WHuisq=_cmHc<%f_Nqk1!~lKy z>$<)+h6-b{w-;0bx72BSKVs%jIpE(p|yfM7?@5QvSqvZ-5v zN(x$ctUb4>G#XLB5KC8*l+)#{zmyOVg?I`vIe))j!s@q4ayoLgHIwRi)fCLvPcCtp z3+_=PIr*u^_~WK$Kf{eTh!JxmhnJXTtq9LpSDVMR{1^cU9S@YD*}A$`s^ttmLH4uOziA{^8v3ck4^l8UJNtCe)Z|c#(`*MFVsJY1Ap#E^R zb5XheY)jY$7j((u?H3gE6atydEt9aQF04QiR*u;Co)^Y-gm$ujctV44iU?lCgHR6Am$bEB?S&({4|3L(Z5#kMt_8kp_xCp(f-3N#?z^@`~9YeZ*eo}W;{1``y(i3*ImGrLYh6c#s{7t}_$?Mf!@Z85^8ZwMf*?|ImAkD>YNP0*q<4u;tps4-DPt-KN&AVxH=`u4qaRlU#zU?#BS%*p_a$m* z1Yj)3ydJ!Tg>XqYD&!{=HM-Lt?E+^Vk=h5E8fEh>{av~SVW$Pd_9ke8B}Y)N8srk9 z_~^i+dYSXlsKuROUtixzJ)d#daEW1?0VutIfRg(;W0FHSgM8uw$f2{fRXP0FsVyy3 zG?##iw^Z;WK%JZp`ZB?eOZ7PTVvLN8<_*5sZmVSjFF~LTH67PRDg`Smt6naej)PNT z9fz)Glw3x^YDq&+2Cd>`?bbsB%>vQX9)Tfxm%irDB{CIoF@<+-_?M_0snVQ%5s|H!{xCXQ07ed5M@2=Q_0W5ke%U3fJ9u^x$Wg6voBHafgEz$dP}l2px1iI#bcRSI z)vu=DD-={xn3L1h@D{h`;nuq=#N2K>CPmUvP>|>_ujh%&kY1`e)%oXVL8ayc>>A|5 zxsP?7#~h{HuY_C{APQR)^<2R@kNiL$gz7Ld8T^zNFFAc|F3vQ@7nI6whTGLMFRc?!24k zmsfW($FaNy^fF|Y15jniU4#|y7cw}2f6cL6WTfut)$bLS8{-+>5BHrlqyY!(PLxwEiH+=LU#a6+9vdF7AmMHp<-@0fVi`>{Wl zGY7v~fV}aT3k)i=t7+q{EF}Fv%X?rm)eZ}lU#VFvR8)|&*Z+zQ=^52F#_(x+R}U?I z$18^RmnegD)bIs4bYPF>huC5*Ce}>zLTRWeV_~~U@zR1KJ1_NSGt#f}kpMUxS3c&HU}tBi zndG#9Onp7VUVETdByH#DSf)nfI{iJMwWEVzPhfa+B!H5Ns>~q=U#G$-Dp?2$c=K|+ z>i~ssn@@}%J_^O*Dh(U}+Nq`TMf>~X6dgGlhrG4F6uLyxW6;Y-^;g$n;x47>dJgEO zQ^@1%Ki&bCqD0`ITw?;lg{(?V*Q zATQO11eG);rQ^+r@1a@hU$HbY>{v1JP`Pb;7K6lnL;vkZSEfPgtVR#RGXe%FRr?U( z@xAw|aUr90RaWTBGoy}2($Ln9epUz=3?4Dltae)M4&tcI4i1hMe{vhS^!aUUCN7JPl; zB!eRsd(th#;X0sRX_t{t39TF)WQ%-ruj6Z8pKE zHqPbrqOfSTxU$ZU&Ymf?Jn6#3g~8>)4&A2$Ij8O|2QCMKqvCi$`Z2V+Y9 z6=H^`Yavylu3H8KbfQ}B`)g5$Kv;iyP(O4RHiQlsflnRHMJ1~V{>iKy9EiLxmVJem z#epNFvgMmkRoe+gLQt1z-cE&h!%HT2_%ZJc^`#2+sYt%IK-(Cl2a-ErMA&(C8Tr=Os~KcZ8=jK2NZkC4#*fZd zr@U;Ay}CcA;Oy+huu#!NsMMcJ#&36#He=_QKdbF;P~|sM#|?$J>k_xTa714a%z+gM zHSE-<+jrxbD9GvEYA*#KXQCB~Ki04n!*wi@>mKh?y7qXGP84NRVZTOT>C`VFDEVC z4N}w2Xr}WT#b46Q&<6v61K-x1GcsplVyfC3Hh(*%YptJnUb)jP1A6CTbc^UzQ( zkza`y1~~cz4Np2QA~JO62U32jm9WY~z<%5;Wi#*3?=sCw%Eae@KP>FJu(@s<4Y-D& z)uAA>HQ0@FQ8rT zYDKrY{@6r9n`+zXGohpFmXY^Kj)yROTn zx4Jqok|p<`_ml6aj^&pLkRzC*VXlCLn(U?4c@M)*_mSMGx6G)$GU8(Bz_luB>$#%h;YNUtoI?%TpBDClj zoZmkBBFoY-9?9I}*@#k2I-11E+k3O!!PoYrQB`{|-YxHf~DHb6iuqw?kvl`fC$QN-D7$*A! zYc}o4G(9=kT$OM39o9W;RfFrtuz}~X<0LGBfGRw2C@aw}(7C3CIN5C}M`vzzcX2L%^3osTy+0Hx@c z0rY>NONwsS36UhEhDvhQ$uCqY=i}kYfx}0^tXh_xq@O~vG|Eiy^%545sS;_mqMM2D zMgLLsQ>pqjqizEk$cv9_n4?Wi-jt&gD10fW6H*(gd?UKsVvi(pM@f%Kziy8v$!AVX zT2b}vu2Y4$&{AKDMqKbxWH~l(wa~2^&w^g0opFz9gq(Bvo7x7CfBudF1RZjj&9EeE|?S1yp8R#Xho&dKOe;PvnF?1vtiiQ_J}yB_iYx zl9xjicD^_)xUgOKNWZgy+}`nbbw2Q$L%RS$pNBqA+rWMVg`q{lJ1cqYU>IVq)qgP) zdkx>*7DjhA|GEf;l26Wn9-FGN$}<;@0Fy^cH|EN}5>_64g^rT7H2GOB7qAGKx0Yqh zLrTVsLG(D+WV1~z*g2FeA;nTn+_&$8BDVbfwcQm~?|>?WP_pgR>6~${uaDIQSdk-M z9HsIhw8>Nm!3VDzjLo$*;wps-yBbWL-S^wuWru(O(QSL-*GBleO;jtE%WgD7&i7^} zYCWpSJYmb~e#?7jk4=|)b6Q(kHgXl!Kp;m07ad)E5pbU+Sa6v2Ijx3kbs7pH_NTu7 z#3c4lOSQrRRz9Wux#E1!>Q1V}o=4O@M-!|f1mE~IzgndU83K9e?0<5f7;Y-aXx6@y zG4lR6iP&>(iOF&PkPUvkCY9#^DV0_2a(V7~a_2pecpbOprNt*^bOSP`i@3=WERTtp zJ`_R1Xsj*0OrJg683WIcJ+eFdqqabNo#e~)9dMg!6NwQF$qnRwh4vy#1z%N<^s8YY zzv0fhpqt?D_2XhlE4(n}nMfXf*#6Pd9b_7+HC{+F+};$NA4gHJeo?ZMJ^*837L_7o z0}=!lsk>t6dATcmc~)aOQ05*-N4AL*IuSPq_pzbS%MK93!#QcwnbWnmv*fyWM^~9~ zBJ)24TYa0 zM%8#H^xEU12{!}dRm*MB5)Hdsf5=^gA@7tEV6QIE4&gPWCT^`j|t1c#J zZ3)*F0#bZD&_`UF6C^;4%vl#~)c+n!GNg1QvaA${ge+a8R&%TS)Ju)ZiM-~b)Zp5x zOm1J_UFoVSzLeuZ$GVFx*%7rBVtWT=s2q$4FI(d4{t}_Z!&b{i`=eR#lHy!gKeDUb z)zu^gRcdAyhquL+qU^4YF`gJ#a;#=P8ylnJ)x;bA3YY56ceAt3KA{%i!+#9MUZ%HH zWf~z;rdt%?C;XGdOcQ^&_LxIe=6Y2@+7+?#j2^d%cU|;5!-)CB~`vWbN@vadpghT>1n;9iMbfv!Xc>fJ|<1(KOlunz+PF0%E7SWdk1eR>g$UWeEi5v zEdW2xD%)kJ$rE{kG5Fz~#lYO0x%CEwXYwQ_JKbTrOeyEnPeAV}JG5Hg2k=0l&;QLL>b85a; z*4*z>Mu-Dzy?}0lC3W94senoqu-oKz=7Pj>X~7>wcc7}{=xziSSCu+Mke&+6j=8$s0X>jxOF=YHSt^2DV zJ`kOocgg}QDnjf#1*Dp3oVBVw7XJvp|J+gH3i$V4qE+pA?+gYg&+QGe5*J0zPjDD+ z6l@MYU-^AEar-ckQM+s>bo(FQ+n<}tW)qR9GAgTvc0Jwq8|x%sAodPn?)& zE^T9e44y-AV&ZH1rN}JhzU)%Z0<3S+C%)Vu;~_rz2>^N1_ddq>Xxv8bV|VxTI0DYD z8Gx*sfM>OD0!qot%j0=fk2W_q$Hd2{2ITT~NoyS^_PrQl@BFM=BZ(EZ`5?+ZF^BC5IQ=r)Jwp5P52d(7^IC;PoxeB%g<-F>ce@gE z`-}{^k+-crqdvzGAFV7G#Dh}bovQzHn0csrkL8}A6VKis@*n4vsl|tX{DMBGz;%cdGx|SJc zm}{N9Qe8Od>1IEx@Jc-=RK^ui6oZQ$-z`i|C2m)G$wp}W7K*)nJxg3ZH4kI;2{MPN znCO8vOM%^;#U@@+?+_2}UmoHDzD;x?l`oEV_LYC!%&Gjirc%o=r(ipQm`j`BjU4p* zTMj=nA<RGXvfzBqT>B;@>FEeBB+b!Q^%+xTPUKZ8G zQ{s_i4>A-S5be*6_#+FZ5ItNOLlX|V)0W!UY;bz>e|Q$4JY?8FMXqblu(CZe&vz6_ zjYI~oyh||il+3iqvA&jFlB&w%gVR@;k;(+goR7AC!%)rKZwlbZ^A{?aV7qRd2Q?pk zpWSx^<(lMg&znsdPu!hiKzLUH^9CGZy6p7+a^wH7eLgxYKq(0K^7(VRv$xe9HXb{s z+!aKSiCXQd9VRC8isgt~HM)sl=NRe_P{y&}Udv7S)hx0>+v~8&Y(IH>J$-4cxX932 z!g!2nPVV!Oy~X{#OPYv8VY412Bq!!Of{ts%Z7fyNaIy@USa{f`=B<3@8*-$`kcCdV zH${+&1#V=?FkTUNyr>l7wWzgZbX&UgHQRaS%TfX~yhiR-zgmXxkR>X9ziQ+<$8o?* z-JubqW|!ai%}r3fAIVM^B3+x~N7R!bk=De`Zd+aFz7#IK{nvlz$uG9d4!+N83IV}8 z)}?mJkKnI1fa12*0+IA1ahc~89JdFxEaZ9l@Wn;|w#@6Sd43Cm;c)(DERN@|z4phh z6L-hhTiq6Leo>^&))(EpR@3V7K;%sb_o3a7Q;D`Pm{rbgr}Vco{J*Wk+6@z{a9G`) z0*7@eD(&lnsxnS2S6HWc;Z6U2uLCl&x%Sjla(aho|~{dt@P43#eaK!AWWUe>l7HKq%L? zkC2E;AzMf#gt9MLBH6M;W9%x)zVCYy4nhdoDf<}fAbY56VeI?9jdkq%^4)XZ(|e-x zo%6o0znB@%JkNb!_qG16-?ek?U^hfje{Z9yb@Jy$0W#fB#=p4NKJ1Wuij`~?%{u1W z6(N(O!=$|%%WYW7S{Y7SnZR>=>B0Y8vZO;n7p)x_taWSPmJF!c1az?oiwnYb_gqTn z_wK#kS3f@n0Y5eofnwv8EGu=qeof7c&|MY?zDDLvUsdHLVl{y!k}Qdi0v=bfp!U#E zm)f_KdVHAL@(n|FuVYuCN6O)G`pVjPOyjgbWq3~ODSmhcTi=y$msFH4nb0PP_IT+R z`1PcQzU>)(up~ScnR3w7Pa>N3X)D?WZG{#havGt;uP6L@Q}18Q{hSMVSd`KNdCYE+ z{zzZ10!r53Js)$5uy@FiG%@9qZ0Brt{af$i0+sggu;}b^#KTNsrq3o}=@RrlJ82T|2dISc{7i6^h0B!mA*&lede_H2MnP zZmK3X9AF9VVY@1|52 zkuJB-n-eQ{3MXyfi+d>`6f$58TXe34ES7#9%6E*}qY*-?DsKLiZ~pyU8(_ooRkg3O zS?eYbZ9X3uGl+ESuHR{oMayPH9jFJE`~*n&{Sc3yL9Au4$(~R+1oWe4)a>8|9t_07 z&5-_l#rOe3@>lLVEVHA6TiEt`)U|!v#F#R( zCC7dv@c1LW6iWuk8tDt&C*=A3Z`a@QJQPF+D_7sjh&zjr6^YRK^ss*`)@1FRV(pziQ~aRN7LQKvM5fZM53c0{Bko%7Ier!s;P2aF4>L$P zJY_xpG8Rr7-YQec`E|PF!G=ZOMAjnNR^6Ls&JQwkEN5(r`F>Q1emuvzuID!mqcS34 zQHKzOhx(qyMJ}R27o^nS&~HID=zA)=In-P~m9c)8Dtd9Cj&KQJCs!K5dVAe*c5qLd zEV~VSwMkQQPfpnI5j4X&XU|dyxitH;Tl)J-*WpITXjEP<+dq=Y`Ba7nF*On0j}2jt zTTA4gJIgFk80>kQ_T;$_0+7k|wjC?(;}0(8L3Y_K!nV6&1)v3%*O)}ZbUrEf7mFKb z*;A+E59xZ?zUTY-Ki0WC#o`_p$vE%GwXb@FP*Dw>uCI@1*^lEMhWINem{f@hpD>)~ zQ3fD+x7SD1VtZn{1s^@BNntC#+7dVDe%-KaVR$RqK*52|@d%MZWve2=MB<}zLbw4I zHH=8Gr=$!AZhdb$ZOEm1kwaGA%9WDW;q&nYkT~;lwDcqnOi{v^bYNB1&Dv% z6Cl-0M7@!kY}@5WDzk74nbu|p2OQ@Sw^^Q``Cba+wY0LW2#<&d39~h=8CEp+DNf49 zZjM-NLgS_`{fnR<0{+JWf^6+hSh8HaJ*0Gy&A)?lT=2_0VoC-|ynB}7^`VBG-R&}A z>%`$j|Cx)c+Z+;#$FJ+ny1ux%6hT`y%#_q-0jb~v$aYRLfG!Fs^(Zeo!C<}RU)`b#ofTbm-HB;s^5sO&-Fnxu9py6O zz^v;^TnI)KAG-t=jupZAmqDle*iXDnV5|0I;qEL^jtu%J2DY%D`xrW$ckYV`tA=@$ zX|a4uy}hR~^nx=&Xl6Mqjr=Vn|wke$`^N>MLp{p)EFj#1j zNMC+0KGFSif-+RDvG4f4x;+t5ZM?#)Phwu8pASh=$XDz#I87=QoLZvruLJ*8Y#gN2 zmv8q@T%N#IEOFTtTCsE1sLRdVs+cc(c=i=C+rKx2m*_s)y-eTFKIjsKyFwmen|WR) z^2CKbQ8@BTa+%ngT3s{Q#>`7W!jyRJdBt*dM{w>ZZ_7y0U8VjpYbV0W^>g4>4kqkg zM4Y%6VYat(nY;pmA(3; zdS;yly0~+L!u2qs%&YZUq>KH)$&V4xTXq618yx-i;z{+3#P;<3n8M|Lvw1gqJ%i|; zg(DI#X=pK=dT22sc+s-tu7V&OemE0Dfmgpn)dPz{?;&hUb*`5t5$8XX66%8 zv0IEeiwC=0E+@`nJZU}iJB1@Y;0i*pHILqFx^sl**xf@>Wi$*qN8Pqntl-q5I3{|i zPcI=Z3Nn%S3bqc1R%8jmR&tv+DO`*0b05nv{;rDzHGw@h2(T78{;k-!f>&=p$>rXo zZnyGaB&%XIb5-s?%z_bCKnXj`Zri@RZ7X$m_IN9rt?$dJ=rC=RfIu_Eh5hX}ovZSd zjlwN9_fXhFcW|;#7?77@RpcNUlB4T><5>2Wfd1`m92w?zRDnjsx1)FV?DkDpjR095 zB!oz!r}VZhV^`9}X*@mppJf7>gZm0-zhSmM(6C|K6(^-Tiqkq%_&T1;n%39u!*Q(% z{!z>Ub23Tvf4wIuT!7SBp(whwoA?E>aIVdxliM&(W=U5{@z6v)Rd>W%Nw4s6k$PtDbPZA{S;9PnImGy!H0UWsSlY&E zQi%{r)w!_k9)H>c>CfUVdvv!@QGlHODP`0S;By2Zb` z7J=9r*ALC}v!wpxYZVWGAmlh@T>dXQR{vB~=U+}6{C{ilx2xbB2$orAP5F+}|FX>V zSk0{`e6IiO&vh!G;wz?8o+bWQi}c5b#jv6i{+G=;kKzGx;nFPkRqTWk{;RG0<+Ybs z+@h!cm-|JU-~yjHI?~_sgr)m)1OMhXF&5lkzf{bERIS`G&)CGIfqm#^A7bpuiyIvs z({;&EIgvT>rHiSdsp&_)vfTnP6&01nUQE9Hc0q79Im~vW3u>~t(C5CD9vncy5y94NDl+{Xo{=Gg zY5MQZQvV3L0nx_jzV?ax(3$c(5_M=M~7Q>0DQv2Q@H3+ zQ?j>IRxz)s#*e4~Al>1){hhUqG|>ZQTWDFUSuDBbW^Gf*>GJ*6rc%%tX**z6JPQEU z-tFz}SIZpdt9H9`%CQRI&tJSS1`u`)gkebKN}z?|K#`da-H|BYkgbXu)-I+Mb-M6r zEq;~UG6vtb8b2_|2H>8#O1wYL8&a2d zGIep>j3R~b`q}9^g=W5_pEO*ki#X(u-M9OouWSV7C;O^rq;|j5bOsEq3OHo9@Q;K9 zeJrNgs%H#Fndt6mz{Y~W8DNUFd{t!HHx4la9RwtsJBt<`^WGuw8k^^P-NltDivz{J zX7T)1A5sFf>u65fcVazYjQ7`YnO{;?_y4i9k(D98MXr0!nwx72QYGBfLfD( zfBT+EPj(kLZ56p2L9{~8yWxU+3k90qpVrpaDwgd5Xf10u9}jV`IqZVQKtAIo zWo7-V1m-3{M>CmSnc1zIH6NchV?%M*6o+8W70UCRE7qqtFJrm-j zB_b>C!SQ@~xHxjimNkGm9eX23I(l_M#O53v96iDA>x>pFe1|K+9_yKWiqYH+BiCT= zph@rC>7I^`j*TxD6;b(3>_p}TOsc}Wr$x6t-M4G$@QVl5>hECMn5gA)!(6O^mT6*9 zotd7-=hH;(_)wew2CSYoE8^7#08XrfJ{=eAh2-RG=<=eGSKo^Vt>tbLn1x51xsz)J zrD+4TQhKmCP?5N~JXWiZJp(#^(8yrXL;hR1?hAQ!7%r8b`Vhui1+#(gIYmX?1BYY2 zbd8y&zAd5)FLg?lHLRp9*bdY{-*6}5%tXzL3x>wZPWs{Pq6I_)QHiX?f!G$`3k!WE z*3Sq&_Bk0f{4C37Frmdg-OImx=;fI~#3+t1fP6{Oz9JzO-Ab8jC3nR%2A56xe$5os zOz*LMGbmwVZA z4Us13?oGh^$mVF)Q%u;=P0pqj0zQvkF>5A;#t~ z^$pOavS)@&yr*N?FOE!V{^mGj*W(0%ag=_WI(hm@JkJ0It8R6}qNwp$VWh9bRBhg z-ktsC&9`_yLhU41?xs(J8Sdx&vcz4hK?`r6NBvs{!Ncu|4Itmn2U&y&$lG|(bW$82 z6*UWy3bG?5;xW+IXXYuKN-*&up{43B{Pan!q@-k+mxxNUP_K$jEmur+wgmp7E0j%5 z>+$1D1p|Pwr)IN|&tTpaw871To)(fT1~Z=)@|#}GhbU%$8uuTiVcgo8C(l%nl_jiv zK%RLx2d&EV*iG|jPnHSWHy{3php;G}P0ckMsvsrcHtN`nV-ZkG&13X6T3=3*wM$y7 zSJl=`14Czx4e!NU=NFXkn6VDSv|Tohtj8_~Ugo^H@HV(>>rOy#gHxv}F$HZVQh+O*RdLG-&5ojS!@;FT{YPX>GpW(J0|8 zZ!f0R>k5ObV+kVUqd2eI@=UL7;vjj4kr<sIGnFKWc{>vxQC8p1G9I!0ZT--ih_V7pxX$ZcdZVyUA;&oBD&m3q*3YY zWjsIUWk5HF^JV1IVLHEx@^`v=<&N3hk#T2TXu(`2Y1 z&Ft>_B(DmITe})m36bO; ziO>=C%y$3A(djqq+(WKAl7bVjqpHm|ztANdsN2-!scbOvRl1!ff!-Uz!-!d7(>dvZp!&6M7g>rX`ZGz*Yz9m1V0J`Bz&|}A5DDIrne4q99N>@zn&~1b zQr%Y@m}(WCR$FSiuf>cw4j42?rvMjI!C}zK7ys<#^WDWT=oRNpvWmU7v}nE=$7bOb z{v6Vs)vo!CaZNef9*e_tw8vURIwZeHbb*54wv2+Hl~f+<-naH?1~V=TU-`72IAv8@PhDrJ zZ)yX;zKsFz)`nM2GqKL%u(eB(3q90TM`|jBQuCQat=)(1))ubhK9yT}GwUBM zMl#nCh*7JpyZgx^L%EPTg)8WqmO7)}(RlS3s>Xo8)^%IcvFKq`0CE!2EOBfwFr#pQqYS=-$)a&BFbhcAjR@>|C4;q7sBL zZ;DE~inu9q-NyZx)@z73P>2qNwVJPR!4hJaD!kpHYEK)}SJ@QF5!{_3SJZdZ0-B=m z+$}2ipUK-ZjQHt2n42SNZ40M}UDTO)8Sgm7@hImYf(T#NwL3$@5>UB0Kt8}ftipTP zk$!awZNmqrH#$u$T=EtFytuarD1h34Az8|C_8f*~mo^ef0xyJvk2Y@maFKgDPt3&^`JXa<>Ygvzmp zuz{W^q)ARiYVnA>CMEy|bpoZ5k*rk&f`1=@=zDr&5Vt@s-=-+W%cK(6K6MW?{_FZ zHa3>+4I%H27qN;3Y+y^-#X4zpqFkm&qx)Lgj?)=W2SUTbw7h4;*|ZCXiHurf+gG{x zODx|U?i5v7lO?HCTwhOASGmzx)9JDm>0>_qOPTOz4fX#Qaky}j7z{<%7lL0e7jRfT z4<@%)kdd+KGC4JT27G@ZAP4|4Jzd|Kp-1Gy#Ac#LJFRwmi^aa?tMTVRt9D1Kd`A;U zRhAkysv(TYm$n#C;^l6ru>zR#o5H365&gz@xmfG9=R~tWgq+i?S86f?+W#tE7I??P z)s+S^jXXfGO{AJVj4%qj;<|j#ZGw6PwfdB7v40+?%7|)_<(5(g|q#dA!7}(iO=f zEAxd-F1o%O!PFCYiStw>(7>WQ8j1ZD8|J!3Um3!oSK5=JH7p9uJ{~U>{JefZq~kEH zz+5~66vs1FpnK}p69!aqB>Zfd@mTr=oo!B2Mpjx<+yyw-3n)wRK?_DynHzy(5UI*qM&WH@SBGYtZ+I@NlDApNPz_Np(IV z#aQd(Ujw{iRN)$3jMymM{c#G7yl38gL4YptU_DJVyy8Yub0!3E^Tfe#i5{$XAkDQ` z%g2>~yXu5WeD!{23nmizF2Y1ZE^qS5$UUbqvZMpr&ABOJnsl!zGQrUxYUQ^x=(**I zqSnlsnVGY1oU=qL50(T$BO#NJby#uyT;-+na2{U#^%kiF)W-ED5UwIbO#ilgA&6mk zG%&ViKj{iNi;V&!yY(5ecX+)OlPSgOf3Y{Od!$iyuxO#DP!7CGz#<5eS-#~WGYKA* z7knIp>fw6c#UnA>Z3h+2 zywlg}o|>7N`F_vLw|NIJP7!S8?YPftj`$0x68Q}9Ebev_5)!V1RKo-K6`H$7G>Tao zn;?WbzpyjK;UVy1+qETDpxS*iIX(TRX$7n5K4Cqv*<)VwO=Et!Hk^9$%R${)b2et$ z6-4=Red?z^*!j7{9DG*~fVlNdO;tot@X(t*TG-Z5Q7LfWs8`X*vkxP34(@_b#KSYP zLpMH!)IyXsQqc$FhuaGGIZm$8u@L7J4jirD=jkRn4uJPFR#i384MS4fs@9{#8gKl>9N03 zr=!%DDO22&#j>jCzIxFNq%Y=;ljbm-q0}D(o4-{7J&W<%L0q46D;e|yJ=wsdM{+_7 zN48e#=(e)00EesdOaiCAzx_gQ62>7XhLM{ct4+EpwkEBoAr{no8@ z@ov!S+lA@p#;A*@J%WIgv!=W3*>wQ{8AhM8-Ru-l#-EyE z0jYS?1i0y7kxDqE3%+UAU)eM-WIu^it+TbQMU6=m0=^$khcFrT6lIz85yPX-2Ljz&JN|gP~^7BBY*#NH_NGzV4?+6L+?0lSabpy~Y zFjtA&$jb*Vft+hlY${}=iM{M$kCsg!IlI>7L4#^j&3n^-P!rQh%-G zH)p@p=^Mg3jk>mLWRbWMwSh}B&l>!@bdIJpb`eMm93>20~pO3@-LsT#Kv zHVt%?fKv zcZ)U6hU_+GbnHg&sH|z zm&yqz_T{4<2a!K_?2q5XBnV=+t7Q7m!=9Y|Rd3Pb;PoSn7y%a@fnYBzJfYBdo$hei z*SM@rwpC-Lq==l3jzdvoCwb(KD?0A3Q~oW`SPdvwrd=``XHY1^62Pr0Z#Tn2f#bRj z6dSAJ-IdoUjaNn*R=a>O@DiMUNNI6rCL!|h0H&&%ZL|PLHygm=G|!ai>C8#Wj&o~2 zPl<$;Eesax9%$A$5)xA++FEE8^v?PN_ofi?L(1P53Jo+AqMrsUcQqF9OcYw zm0Aook+;G;?rueA^xj>{Qkh(5IF)&;z@yci)C6z1N~7eS&VgZ2l-@+qcNRBS(d1$? zwy+jqIe$6XDGtRd77IJnPA%Wo0u-8_jyMwJXR$1wpgbjY^|C(IzqC{rj7(ch}y47RWMA^FjU_#772^pXXLCVe4xu?9SVSK_X$ib*_g?Gn5{*@4*_20< zs(Lt_LOQC6tysq;%GR{!!M8wuNoCFJ4bH5%a7gw^5ZW;t1J2I3Gje2znXQUjbpq=4o^~;2wK4iTG2Ekbx zg|gu1;rkNB1d(xD!Fg^O5Z#y#m#f>}s=#FPAT>jFRNrAX_Vz_**iF<_Yuk9d%PP!a z8@B-g-hz4$JV}q(DlIv=(^*%-4(SF0rP^|C=^+@DV@*~;!91N=!7%oeuZ?{8bT=~` zC#b-=Lls84s(FLnZO2>hVO2Y4Buz^b-_x;|d{@d6J$RRdEu{t3y5c6{>bw>Ththi1 zf-lKFeUz86PxJ7obkj=H!-uZ1IgB@hne?JcA*mxEJ$n}keJrHgBY^r7?{xl(=finj z;Wm$uF>lSa8V4oLK%M%EdSEKh+wy0XS35JG1$G7;WYmaRb@uWzM$f zl&Aaet9zrAPTe_i?H{Ro8VaQU)(LFiv2+o*<}T6sm)TXc4u6SpP%`jbCB#A6J($4% zRh?qa`3{6g>}M{3^J1StVFp2g?|V$Pe%#P&S^95dZALjhI3n%O=l=aS z1OfJ;iClo=chkQr1kn%TcHunJ+A)N`1}Ytxge>BM6E)t{ab z7-Z4ZT@(Aibs0|F`=8$oKy#CH4Adv{ssF*9Bu)X?o4G)1blhL=&97;UpVt662>{=G zJ5u%dCr#(`yLHgt$)+H+S$0bhHEc`%{x7$FfpUMi zFpXVg)TsTvM}DTPg159|ncI07!ZVQ}%b%}4AqI@*qYSyYf2|RI{?_BWJ$fIHGr;P}$ujHlK%e zE=I)WUln+^sB&u9S1wpKL3Qz3Uq2IEA1t_-{$ z@&3z|HFUx$3s`-w+4i(x<=y2pgu@NVTjCi_Y^qYQ# zH3JG#S=ZEZCVL(I0y042$7{&%PKI@EveK&d^&8vT8anLS7nK?9M{eB$6Sxv3CK}WK zt78a0ELM+OUfZg%A;88i^4un_{&UH7$xuz}$AsD`*uGYp_Y8{%u7B-jRrJ3GyQv%c zZ2VfY(PC4S(xM2lbKL`hhdhQtSPBHCR4N4`_pnOUMRj<6|9;7jzk8k;C(32(bm6-< zEwr!Zq|zc-EfbSJtL&6$YlS9%6J#X$n3$|aa*5)-l8qaAnx~N)EsMz2*_DRSg)FM& z?#~YIAOeDA2&CEB_V>6dn7hsULj2R`3P5N6Q zG%6(}Nj)i^bEK?ihYBGketDU~1M*0m z>bv2ZZoUNDP5=!Ca_wpL+ba`ZBxD@w`SQtdhQ&;MV$V z$6^yt<;={C%TiY&|KEe1jwz|=;Lkx7>haBk2OTDN>xNHLg?6*FMY)_)%Q*;b`@;Eb z*yT*!O14|XK;^-Uxuv-F6qhuTF|`NMGv9ADhT}N+eUTJOt|&0~z9&(7+r*Ms)PS6Z z6y8gdsfuFZv3Y*27*6_1HDKI2GVjsHH?I*&Y@Sw(7_d5{2m!IMf%Cz2)sc+FJL}rD zNO=Z=iWkjPPJmK5WpMWtd;e}j0QM<->0KB{g`Ihkc%w+V+K;e!33(AK0Qok=Dy|kxyQ_uVO zj|$XO%Ou2i!KvcIM&UI<8wyo82zn!lAb9o*4WT_EhY!n56m^94W7ikjGmPtQ>}Px- z+zlvjKM_R0m*dnORxG!dan>xle12i8)Pr)is|z`vB%1-9uP! z0CI`v09G(=$&VusnQ|2uf29u6@Y${)M`sO)#^fHJts2UtU%~!+8(Gis@RLM+O0n7Uf!rgPW)o$e`xKRih>L)=xOU{z|z*}08)8>Vv$tcSb3vLNIl_LIOTD zbl)3V;)I$2R#YE=&{FrnQ8qp+237Mo)sJlmSH^^g7hiUZ6{%V;jZ}Hu?ucGSEKPMm zb;Ch1LOu71=Nnof-gKAQ69lgRc3uDN8Zxmbj?KsqaGfGSw3Tv(Hr8XiefsgK4GJWk zxJI72&1dW@E-Cr%pMNINq1fN3a9-tSz*_XSUC1pjFYlKrPO#|`FQSispC(d)(+^mWMm{C9V6? z2v=?9dh9r*un^M-?#FZLWTAz!);8HVi+$Xuf7k#qqVuTkyb9OZg4U((lIiwM3g~oy zXx3b-6^Yb+v-!_?h2DCP1dAQ8G|W2Fk%aeP>OHR~$UfBOiAk1D-qoa*q)oH+Y zK#fmXP3@+POnCKj|I&tou*l)IqJv@hY;?5tfxw+RZIAuC?Y8E7T3^2h!@RBmnoCj& z3TVf9NHzv7$!jrex)dW|ld1*a4v_4%e>j!cxZre zHOsL3fhSw6>dMe$KGB1QAYt_v=`Ts$juup+ukek^-S3U#8j)ZF*CTso|9ri>lCitdvpDWX9)cCjUf_k z69SFk4Ojjc{79ZJS@NvR#YP=BP*brUhdUpRu6e3j*vF14!e~TXd$}y+O)SfX@&VU) zhr{S+&l?Ch-2zJsd!!uTRW)Q0aKX=-q8AWQ{}x2cn&7^hvCx|*p_-$kowjE}8Q=6{ ze}9#Yf1j;CK63sk&XABdUoqKJn!wUn&kD}_y3O$LcV)?+wXZ(vKDz$(%Y)8MYq=mF zH{nuzG!}wNGWsAziouM4hoT>BZzm|Rv z^^cn5&jpcJpzmOLUQ*j=y^*`BO}TN?(CNb#pTKSM1t@(^R(-6Z?S0kllFq3JacIT} z58t$mwpaFb_HScRs&E7$qCZ6_On64XPz0x~*?=`9FRVY4e~(C%?@J@k@`C1uxWIb1`^MQ8o;qJm=*y85K_Pa#_mZPdtnBgw)T%w=WMd7zI^#24W@@Q z&j5yDKh>gaxsK6|$%e3IHfJ;_ZR$i0oah%kxq;xo-@{nx#&2dq%}tfp!D+Y2PBpRj z82(}2J$)`YPSuv=TRQ2pH;jB*i_8gyio`PRF69_GYM^z`kCs-s@b~QF5(as{nPAKc zwYsOSU)?5seoH&ROn*SKhDu$cmQV@1^r>)45z^`=jMId`IURy0$Ws!YfdltMAr9eG zj=t6BW@ujmP{5hPZ-VO>ToR42M&av9RpXY1h7dr}To2UUcSD1Cr__h)R1%=8U{Pj6=-SK~sq+{N{gx&0@za&iWX{}#KHfj1!l2fJ^4-uMI z^a(XV7F1h#(*#>`DPLO6N8JmpVahtd{*1g)oC-rJPg$>^|G_ zUF-Cjv)t~0)ORLSRgXkcv(nWmu$BZc=(Y%MOJQvbB zm`j<6#d~nqXvo;!t9Og_9%=u zboLHY$zOGkI=FRbz3A^(|M$cSf{K@_)-9;Pq~VKrgwj1OpI~$hTT!?f1@nunk7EFb$QPSJ$(%!Pxy*lEAVa4h zP|(aVe2>LrjtSN%u;-*Db5{-R* zeE?K*gPPa$twNljpX$r(45M^)P0%~^{Q2|8^K+K`&p*G!&NuF2=_@peoSdHSrpnx; zy)VrEX%xo^plhzNvdTrUYqNl|!}8)cgMSLk(?5P5w_rJPN$^RKiswWGIY8};C6J36 zY1~mtx!N0oLVP(2d);98j(yOSBtfZ;E~WV&GbL_%zG<0Ft+7#xJFsn^Ln20Tx%c-y zxL&Ax-yWLw(Kq33AdZxON777>tF7^2~qq=1`hX!ie)c8-T=005o zWf;6BJj4plFBOTZmKZ+8Y*1RNl7Q=04e#rxQSbpP zsN*i=9M|dJwsA&m{ygYSib#uhmIb`}`XGYjblbJf2@&|E3UmuH z3SDkUtXE|lOix22dVQg-M3?p2#!3)gyre4&LUWw*yUm6YZRZa2G9@i#&BY8e3l{ z957q`i^kH^hk`%kEc6ECNO_i76|V_s|;0VJ^)6%IIzKGZ}|S5n=H($v_UZq0DKz3n3eD0n4X09cl0vX z0X=`Xb{Wf&R1mNd+F<;L+Egjp7o3PjFxSsm!Nk%TI6{@$uXgW(i4*E&_HfjGg6pc^ zAc$S=4M{Qmlj;!r4E;=U&jtGG3bG(3je5-B9Nr(k@@si|8?@)eXrYfjHL*1uf_S?$@Tp3=%%QzStu?$hi0K4YOTFsF!`P zD7b0Nec?9N*3ZF=4s2&@suP0$>!0b`;L%MK;kb+1iyB^S{ptIrm$(0ga`t>chO)x( zzU6?c&R_6|@6uS95rOl*dRpU7H>~7!Liix1w)%V#VvzQc;^*1l0^e_JXMZiqU%dJv z=~i+z#)4ed@ACBFRVL7Y$M}O-75F?Di05?kb%VrjL(B< zy|Ww#GY0Dy`U;xuh|eTA3_D@(;oDTt+WKeTi&53=_HQ4Shw+=p$;gD54+S0JA{^+@ zdItsnYjR72q%3*X_qArkWJc9jFEol(6;! zR^iNj+H>sX%i?W`#Xhw_%Pf_YeGosofd8W$di)vxbcPA&l^{<-Ak9t_MV}?p7S1E^ z;}@Yv@syma?iwXbI||?`CTq&ujtE{`%wVgv<@bD zZYfuYY%LBz5u~=j1IyB_(&2s!Pny6Cp8Q75`TVz;Peoo=gq@{N zx4?;M1~EL;1IM5tc-0qULjHMDYxsGa#8i(E_%NbNOMzHvNF5#gWx1e&iTLc%vajen zz%nlb;2Vn_km0bfFnur!#u{{tHh|$#nOZ_2=kDCO!)ZAx#&zGwD8qE{QyUEcPjr`? z5R`z%!+VNgd|}x$glg_^rJDXi*%tyC#hEn3exKzJGUNZJqUGsx9x0aVQKxk|_jU-Z}i1E02JRT4!JgF^u z7*%MQ;RGLvrW}-)PmJUed=N^jkdb?sgCtXDKye#9>&0{HNqk_O^1@ikBp&C{j<*zR z^f*9Z21n~NF?k>HDQbh()5aC}WLEVH_~b&4lkS?x<|2$?K6N!R4nG78(76VNS|G-4 zK-coa@E0S(E0jNLx#%h}NlEW_^G(|9+1ACMw9J`pO0Ippc%-MZ=CQkQ{^ySZ$Ur+D z=hkAR8f;X_Z)0Q&U<}rB+8=1*dCl!{B>Naw(S6r6^f5QVdyVlhTRK3#uLIYAK;wW(ik@ykCQDO~iO|NYGI5OH^vLz>Hssi3+$mO;;#grAVLJ^Z~S zvHsy`e;t;ZgP+`5_^KTdjaNC4CpWxn>mIJq!Strc{pI(gs^~{4dKb5I%Wf(bk1 z-+JQF(9*CqIPiFrc3~LxuY!_TGNB=X^WiGwo_7=vw>&K7b9Ro9|R&YDB(MxOh__Ou<<%6#S2`l`Nk1h zqVEP;TR+_BK(j%7or zwJo$E5uM4jGrr37?Bj=&04~YRcaw4o>LIq4_Z1Xw_fc|~Y57@ynl$`qTx4~_|Mv%q z(fH$m%s;g9*6tE1v5M>!-DQ=AKb=EN*6-9dI|RD^a|Mh_LrelmH4Rtnm}`(vS}i~i zbK}CvvgQX6%0;xv+33rIKgxO4XSRJ3DP;A}m!_7T5$#Dq#c|l~d>2}Mm&Ek^+m8`~NJpGu z22}rx>-$2MZ zGKZjo;|ytU2V^T4+Wzy_|Ea}mZi;;pc(dL7d`<-3-vBDz*G3>$^B$4N1Ox=Xk2AVm zA|#gK&QZ)aHV1=Mh&=kjhmJ9Thnehi+L=$7F9%}pe9SR_LoFu(bFvOslð+fjRat!ug|x?ypf-f%^Pv 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
      b@;0ucz=HK#qt90vBGzD1Tok=1 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�=g-1sphWn&?%OmDPCTY@a*z4!x8ncGZUA-+Pt)$TM4gjTb8AU>d)6N@}c^xf2Z`K2u@71hKav?VfT z7{khB_1-C$Uw%h>cmlzeJ}m%;B2-_^A+|ro6;P-V!QW!R0?OmjQU`~qM}7AT>UPi; z04eVlN3~ka&iF5s#f^ zwQsEpsRW-Oo9#q*8h)$Gl>WND{ijl6VSag5(`bbG8xv3&bik11-Pa+D7%cDRPi$%k zsiKaQ;8tdCJ1p%D&PkfQf&CX-IzCqLdYX`Ew*8g7``b#&P5$yR@NFC68tIpN!Pm9KN^IHgH~?L<;7 z8z7^;p8(j|Xdc5^^3!jkCbhowE2M?)Pv@^M0i6LQZNf_MU|>@PuS7*pG&a6#;#F_Bwe!4p&A&ph#IuSmVNTPGqM{&+i&&)vwPV z4zc-MDuj}Cat*Q~x$YhR1{o<#v+!NW7|zrdkN~0ok}@uA06e({W|ePW-Tatiy78Is zPM#K0I(o%B_z)X#mcc*!@#JO4_+z=%&Ev`%vS1$nB?B(A&Q|)JNlDAHVd<)wY3 z!}~1G0G1kd=PT#!Q_Z1JaOzeSc99Qn-Z(A7mGfn-Gh3H~U9;lR!+}PR^xOw(x9w2$ z+6s-0Kd+)@B6#^Oaglx|FuulUY9DKa_}udojX1={{wNh_uh|5g{sf@Kn9t-pu%U!) z_J-j0<&8Nki6uQn{&F1h$3F?~{}_$Q()&?o^7BoHI?ADVVM3K(frT$4ib^!YlpAUD zkM!BJxh(gCHb*)kgtTVO-6y>C1&yukyCN$|hYrsRE*S? z8Q;LdCEhXVvgQylXs7Dsdw)bkSy$kL@04U*c-PX|`9;JM(Q+Z|(*EAw>%0f~ zz{w7qzjW)*)8y-vz1TTi4(;rLVb{xsVx5&!2DkW4hEUM{WfA?pWuFa?LyFgDjy1cE zAez2fFkYH|su|8T9SqpPtSYiY8Jq9&1(Y3gKcUDHuaqxy& zJ)%}fEd?elWmcY7<~Y>hySe1RrMi_00@`f~3#2=v{#igB+>ejsTL;qeWru*5XgDBpCmqMp^g4>bLQ%WXR^DEX}a7%H$Lg>j3y z8x<%?g#PnynZtXLSf6#eHZ?RNQL)n~kMM>f2dU`KcxFlwrRUppW)5dMqz~f$5=-G> z3z0jNOxiK9KALL7o={?j8SZ{o71q%X3hZ$e-i-u4^LN=hHk{|;U^`{>Cj4(x^1pJ( z*?XPrVHc#VgP9(*0Q+rpv9B2Sjf5tL2qUjEN##3@ehF^*n& zE_59Cgd{k`XLQl#srFU*tD4||+4$=p zXO92QFh8E9_8vzd+tXe*{SSug&ntSrCGh9? zR-FY!EgQDh{G1Y+dWsU*x;dV;IdO1!c?H}t5~c?~I{qnm&5)&#>)26cQvPzRy+(Xj zP$I8(KKfYu^H{fko}K?|(4Ks1P!M_-`_eV2b?sr(C)env3y2=^vnlh6cLe|WiuGT^ zmUH$-Lf9wnIfoiI$Z3P2x%o_S9C}kQH^;r?VONy{yX-u925 z*zcGI1*^k~@4B_Gy@^PCBl{*KZv{xRJ8}|yUAG6ET#=Ut-n(ywG~qb>H7k~y#`>CR zeE%Fi{43rAYc5(k^j+Si(y`Amnl7K1oakp>UX5g;^hOeB)nw+{9Y_RgZgx7JwDF9aI9!fdzO4Z6#UPV)PH83z#vh*(p0J5c*_(Z z`u@lv3R=bjL2HMOO#O@x^(}LVq*Rm-UqWaadvXKjktdtR{tG{Njz+iabab@nq$0Yi2TFV zCOOZcKrgOKCc0h0I9H%8Ciog#lu@qhT=|M^dUyYvFM$fswIPa_Ej7rF67^~%2i1^@F2eK`_% z#i}Ycc#4nv-%lyPJMP)A8NO4s+333XKY6?R!RTaJ{}0wO;7;v>$4Tc5sd{{Hm>;ko1CYM*Q>uV!W>l}6usIc;c$b;t$fn)hMq zH@?4beRb)m{M;R%+gOx&fsRYQR^o-61donP+D}UQ($Ds9!$r0R6hfJLM`rHH z1Mq0{<4N>i+IM0Gv}Q~7%Y(LWrtxYDk-r_0U(myBy*@f!r#ONeMsW6HyR*60(vB~9^>PjC zk~lvZ6)%FsO*MHxiW#5{yIyS5w>-2_zrL3vD9P#Y8}{TmDGS?(#bI%CfyfLM ziK8&;1h2v#|8S1Ur6avolBTYjQ6d%3csfi-e-7a*dyb)W5?v@2%Y_zxo1=}*q4^K1 zijB(j*`0`mbr$0#;X~P`3R6`{%AOsqy38gkY&mt@37c%+e(u`%U2&7(Fpw@0WYRW6Ng1vWHurx4qEj`A1cJ>A>25hbRZHOj|@ z6y5K-`)3bC^BtbwC2n?c{oV7_mjR-gp834!EQj-0dGiHnt8cwukz%0!V|3~q+bfkk z!}fD0Bbx8C8>GJJ8w6QN#W}@|=<|4l)~m9@gcM-o7~v7zn4DA6$g^AAKM<2!m`G=PO|4$l;}wR5XHYYzgp&jQ_ltRIvW!e)3S=?s~2y&c^4ilW6$g&q=)o_7nGcS5N<(o~>{2 zL|VSNrao0-gV`aU;k`|$foE|Q0(aC!-1aWcH?QbJyd_6yyqDXrc!8cX{`~e^mZWKe zP;B*Nc2F3TOIT+p(_WGNeky{R0HdcO5Km33#hdMI42H-7%JTikKb0X)Ta?jUd!d0R{jJ}j(c_)<}GBc z9gnij?nL8Rj#-w!Q9kK)x?18?BvM^&J3IuoK8S?jPJ@5e7-^&GM=V({Yfw?>i8EBv z0O);zi>(%NeQI&L(`Z|K03F2YV4_BRTEYpBRjPlQW17}yHSkjlr+GCjYuuB$l1M(? zg}=UY!IBdVua&)t9z1S^cOg3F4nxX!WOFs=kX?yTAX((-BITs=9B0E2rN%>v71S|G zMPp;L=J^DVB52_^!v|vpbJ7+I%N1%Rr_Cw|7R&dj6IB)u3Hdj<{z8&do0gi2um0_F zu?8Tzwr^8Rs8MP_g^ubj59iBvbQzE-87_>vBjs;fOa&<7Cq-#-bYt2icK3X0wM~L& z-xYTG)&g`ChuT1oYM`(533Po)nb19t5n;q4NXh&6N2``sM|?*=K49fPnfG?WE9ZaT z=D?@Tp=4?t_%(+TMf|81%yv8^>?v(fV1>B~{RC{PhpYDqmwo$SJr&3iqo#M!kR!ex zI1UX2NtdlWbdchNMGcEws%ZQiPWHQRo;4&*XdGnO6Y&IxA%wc=Si}I#E zV2Ry;jN&B)ebkVQrlp zzH_}m$V~PQtHr5JM=*+E(6vIlazX^E!9L#^RBR=-yBkF&-2?@wB29s0+;dHHnCJgH zSIpkO-1x7(0RA_?>=6naL{=(!Eg26$^-?_tG++a(T34J@TS22gcq|XMAevwOY{H7R zOZhy&97-N&Fm*roIpY4}QAT?Loerg*{vS&6j`e%!8?tiC_-h}cCfka<}ptluZ??7Mqhaz{5`gLVhRBAr{`}6 zLbWG%VfoLaj7Vi(_0-XT25^g{0s8g(2cYku%hi_oi^GLFQv0wwJG?BqtiiCx=G3ocjjc)M8bI_990y{%e?7+ zpjr35Vi01aS~hny(?yBpCl!z@dOG-NtN)NUe|@Q0Mbd|#hDBbR-)+lZ5nzNe`}!C$ zi+;oSQkRle6C?kLQg~LrXIc%%Y=g*HZp!q z!ntj^7E$kPTv0BIHtXca=Oz!miAR`K`zEWk8hXmT>BPGh%GB@P-kPtl(XOz1ToD`^ zHL|hoK-m4_SKztY_AS?3K-DO{O>3j%vk_$68KAhz=snm+pU!1ERtcHO(V0H5fp+R< zq^IjsnBVNMI8Wzy9~=~6%J)ePE`WPXq~ znKs=L){+cy4KSV&m(fkejzn1wPz8ADOJAu!&|u7Kbta>fmn1+Ag)_dj!ye$z@U;>q zdjip6m`s*pZstu-FRwE@&YNsXOFb_X<%eJ~DZ!a6`8T85xmtu+;`6q$VeJR=kCdW* zDi(;Sz{cmK%p49@#xu+2q(&j7z60?h)5emJ=RbOTSy>-QINA2H;0WB{sI$iTL2 z40+0Qt0{Id&v;m#$Z2aMMnxcW2J2YM2XwL*7a5g6nR(Wd*L&Lu#9+d zH!zfd(Mp_)FaNZu#NIu$iG^avjJ!lvw|O~t{aEQv>1?ZxQ#Ri#I4db#`A}lNEQM88 zgEk8dtQ`>d2@UOD24?E&7q#n)!oOFeZH!10sJrgu*C5&%ObFtz^=`TgPm(U9(l627 z)oc)LH0tZ|W~M^x^9yT4Mj>k{q;nTC5RH}Ty9LHPUocMpJ+G8} ze7K7Fu55X4@N!N|~Oh zw9G#Rpx_WIe@GsuK~_k5(87F~_nI|qpit}fdos6?{yoDqxia<8s2!het{3~+Y&j3T zVljF;&gO^G{3WMiWJ}OX1RQ zc_z3;`Fm?itgh#qc^J&^lyS8sibsl1*5KJ&_g1&Uqi-5|Z$;)OjNvs;MF}+MKYIH+ zPM3PMLWTP#*Vys%nLGD~RPYvd$rf~+_2Y26EtQMXeR%dxFkz;kjyGq6Us#vtRDsa# zhMi>6tzFOGwLvZg)pVA}j^H;RkAd~5i^`XpH=~3#P-=1ahKPbnx6XY&#g%?(&joy@ z{q|=ANtH|aligRBqiKDh+u?}2jmNBdn=#PNb21y*y@Ljj8VEG@2fOLj&YRGb0790Q z5_SfihCoH`#Q6Tn@f95Z^k8U@ZJSwoIajf)=k>px?>OnregcF+ZroeYx+$q z-|D+22Kns!uStotMx}h%v=CyTHw2vabzpv>IH?Lt%TCnsy}j{Y<}L-V^Yx1)mCOt2 z?a?cKtxVTiQP)F?@hmfPS{7-yAyhLM`qmpelqWa3T(hI^G+Oy!i}HhXeCoOOn>bF{ zHYL~Z_CKI4Sd{;=66(fQ?n{eiy;+0gf}nC2{PLvBI9@`!s^Qosb@|BmzKKhNfue85 z3WCo%tXgb=W{7??km_y%NKZvsXH|8lM%8W3+^^As#yx4EG!;4Y_K+!M7br7T3okyu z>OCa;TfzPlWDxPm~tVW{W`6mbmPxFr@s_k9#!BqbqhPCm#F*S z1H$Q5kJe~Q881Ybh0fo0%BV)TAm2V(s@TiSIb8WvbyxVgdI2ON`E`ZmtzW*? zk#DLT+Q(&V zzI5E)EZEBQMW=uL#T0N2V_;6I7);#%bB>j*2=Zsd=0f3WsrTzKQg`OE*w@mLX;6wC z@V(D5M#6+uw~{6lo-|*Bik$1ZPRw1d4T8q9%`eX1|9j zo*A7hUDIBNpxQRRfzfP(oj-BviCtn;bGDa*XGgQqap7Q0gyE%H7FsLcc>&mT#y~*i z%!JqEmx3FkiaI=RA_R^;fu2KLqz;2G>&b>txWx@yW`i+b$DKh9Fi;$T)0#qJwFn^O zMtGj?hQMgf;%`!l&jbvcS|tt|_8c+=!QE$fv|UGacD`(DrMHgCLn^QMdhBnvFjRp$ z5HUr{9dk0P5G+28ek$>EXTQ!Tmq*H7@#sb9Llb`m-~PK~)Mnh~7>57#bzbirig+Hn zWA0DhU2RS)#Jq&_=Hg$sE@j+Ys<%QAux~D)pXc>@+3=n+0QKcaU;MGyHnvwbQQbCX zG=|z^t(!$Vl)^wBbZ{T2*XYFC{;qA+M_a3R3PyuTRVwOq{HkLPTPeDFZze?E;!;gq znS*JYICilpv0`O?NJ|#gcRs5MJs9KvPDL3*bn;^@v?Jj+^d9Jfl3n!cBe`V74rLdT z$X1dY(rWdD_^jiY^sMuHc{=O~u|ZP@jDT8Bn8&?raK3xX>Wxh`-h@H_K|?@sdC^(L zvTVb#c`4_7YeY@BBd8sX!}Vrar)EUgUwxu@uNLqU*AJ_PWc5JsP2jJ}Z|6UDzvZdn z88evNi{sQ-h~umuT~p|E&ysLF^O=s=6zg7(*sS4~Ed>XlsW!{%q7{VwV8ava0^ zc{w6~-9W^h!|dcJCg1p3AZOpc4y-|-w?^3pJdxLX;_TsAk5y*1$h}szq4DZgr>O>- zfb_2%nx_%Zi{R`0KNBrsBquAAS@fV9bMuW?cgcpHcWdtt^!{Q^0lHA}Iy$UC(QRIg zqvV1#gP>1_!|Pmsg~Zz_41m}X>vRT-u0?*QWnT6gBm)|P2-R~i78Ey_ZI*9AsgUQ{ z)_yn7TgdNkHwo-1e@FkUwyba>{0_K-_w8U;_7p_ZK1K?GCWp5@i2XyV#!E`X%6E%Ay!6v{0t`^w zLrUi9UHY@jUKVX26{YdPXuIavftdEPQ$;EFi@MlThX(r|;cN0ti7`%Fs4!)&y4K1;jptD@`d zkBmix*swCRq@XoH$B4ABH%C+8G}kOSS$EFkD!xiLrWEfwHWyWt=UfU|B!ci_Wv*1S zowGi+_IX*U+0&IlEsIC#46>!yWtP(&ss!Svru zeUP@NhNU#u%3D!W{_0Z>7qi`as_U~&87SEC6At-JFXaL~GcpKSRdB5u;&Ubw@znh~ zPqRp*3QbTq;9D2`*Fw%ug!}-g12G$1dPYE7U=Y}C%i41;Ohu0L_hhoY#wDBe$u7ww z(8sC0Czm{U*n=;~Y=5p;IIh_^|f=XnUqOb!DfF~?5u zZi(|eALf4Pvo(r`XFC>iI%PM#RO0;tGT2%az@K5H8GtCD*$EU89?s6A%EJ%eOumH} zsl!zN5PyoMFOEx}%S&8t(k*&e#;+4qZ)9*0qdlOp2Z!z7IQ1i}#nFKR&F3m)pRw>+ zW8Va_${0YQEd`$(FbB$kg%O|=i&OSiw9EBY0gT8~jaNdzdvk2H9Jj<8WPgH0 zje4cV4KFL5P;)Y=3t-Y!+Q z6d25yR_7Fi?-mEqqLh{T{p!{muOs-l zt#wMp8uF;#2lzg9Pt%L|<+5@PmA+vnGV&T64{!QhMZ6?9uGO-6CKg1#AasO7HFwN; zv_A_c0G%je79ff1pzax$0z=blSjk4k7GG`HK7y963x8>JxC}z{4)KHzJ!{q`8-nmd z+jF(LY88p0T&MPvD2xQ6kyna7Kth{$IZm2rn_niUx=chDb(FAuKyEBAD&o6VlaFx! z78Y64|#_xAp*8>S+f!cdiCecE4xw`geM+ zzqn@PX|3pe4|;9RcxDm%NxD*Lz_UvaJ3Xxm%b<90Z_W>7)M7>J=TN0LT|2s-GxtL= z#RW|`x_Ko7Nm3P>UZS)z7uO4x7*X|;xCO4mT}FT=jML=Wmn0iB~(hty*|j_pR7h zUH8Z%)l6Wp8xOIA$umdlQ;Ro4r5h4qE=iNiQu+AtzmK(J9%q*zh9N|6pWY&0Q+7J88`C3FZy zL{W;e=p}&E1QKc}0U{vMJ0U{oAfYBe=q0?!V#=P`CLZOcs%%u*r^r%H>^otR^$%;KKddXn*-EPIS(2 zc_|6Cn!ah`=O((Mvgvl3F#$9vn{#Nke0XOrRb@9-z%*3wJMtb@z(;X^CRC&yHdT6D`*Z%a1`PQ3RR zpj>2owL@bT`n4-x#3Y}!Icq3k7m`)#Z?m9vyWu5bEjQ{zA|g&8?F{;+(&zDJ^;&1G zH_Ih&&{Oq+gcI|e=RuKPk&aFuQf6_z#W#Loi$B_Ma|=PYKno6aof{MM8i2~X8Y(FbifR;*<_??mYMXre{@eSuW$aOu)0v@LC5 z7_{+$RdK<`fpR){ccEZY8$YhA%C5OEkUtZe6N&klhkyM;CiZ)U0}*1uO4n=PsAbq=)r-7)I;F=;0fo zAEq-^-4EGuYuS1j`q==@tJQ+`8Hn;;%+n}%rCY(ckV0JIPL1spj$s?eLLdBW|J<~I zokU)av3iEjq++x!S#0vsBN|1~+myNjpp+ zIuOMdM*0)3<{BY8MJWEOm3{~6kyWg>LH-P)q8QJ&ZjP7-Ra`k7zd^ z)Q;`0$A`@CL)C zBjw{mk-<5F3=O$ECG}mlR}7)EeEAplP+&$YS&Z#GPQTg~vXx^$hD6lr2g^v@5l*Vb zwK{M@jG?SA)@c?=Gn-eyS^A(tXh*N~^^04bwmU?+iT_<@Q zWsrn%*d!G-(~-k5ey>Krx$>e!#Cnp$_kh%FR*{MQCku-8Q2iH{re*kBStDv1ujI2bb5nmT5ItNN=v8?wG12 zlF{tN;4BL8L8+Ja^5=5Tl*(A=%^7KNXP$AGuRdou222v+8Tm*V28Nii94tS}>~LII z?4sY}YRm7_^}`3AG}VK#s}hFz9o`Wy^REh{cYXhw2*t)0`1Mmbqos`=D+5!&m(b{J z6?*9jCUg;puulAeQr< z3tBjLRYl1D+1Jfij33l!hSY|o&!@{^{QdIgyJ|3$Y(wSPR`#h}0#{jlEA$WxKjP@eRk@r%@3SD~#9X_9R&-^@Qn2e6 zcxT&|@6X=9&snOaRVa6C?1*BQd(6$?!tsZw9lPoQtg8<%O2jB%H+!F7E&^j*ovq=} zjmZiP2=4N>@b1?BD529=4O-U*Ah|?BkUK5(Dot-P=)({k|1+yHeDh}*8KHxig@I#c zk{^81b_S~kmIH~j?aiKp8)<_hODAo)Fy!V_-cQ|qRJxuK1ur%;AD{%vmEVsVd6~u# zEsw|E8n7$gEx%WG@?ct4As-bszLHp-*N@^D(N&{B zet!_A4f_77PwP;>TWx_sjs8~72}-bCwv7Mu)m+2NBi2jb3O-U*J?oiV56C{o9{5i` z25;_Zp+*JME*c(okvRk*1}|5kvR1m-ZAk7c*kMorOSuV5x6oI$-8D-f=3s$yjB5IX zvF)r4Q`ym`uVGNG+u<3&@iE3@C~m{7{npwG1p<9yWfyhqGtI;Be()F9mx9t$9+n6rKsWe?Jk zos+qetM4YD55!K3Vokefhk-L3(Azl%+RlVj-Z7}TVTtY(mHRI_RG@V z(uXK1O>lq+{pK}z1US!vaI)qG`4iH`C3**HMyvfE60O~+p&I$R3o)lTt~HYx;!ut) zbn5FCXRmm{*fq9C(&IcPW2#=WQp=3xp!ShRDpNv&qw3_mD=8|7#8TvADL4j#)Qy>9C`w%5G;p-FezLbUpO5z%L?t zWdotv;*PrAT5ODvwigepe|hXKJBu<{g^cte$0=PnzyJYSieH?aqqMO-!s6FJFp@~pi!rDhHG)% zA;;Hq%=duQ|AZh@Q=;1Cu|^=Fbm1i8RrzytE4Pz3NFdfVMRDVM(G>sf6Bz;YH~V zVdmkAut7vKLHI%=F7^n?lEt?@C9Xj=Mdx~Fvb7x~C)fC3SC8vfAslOLvltAYm~h#t zEx?jA*BwEp+>-=c6h=x8(j1(*E9MEP3BhOO4ntqAS1jctx~ony4Xu{h)Y*hc1dI7B z8z789J+eqUkSDKJyiv;8Gd6j(#$l<}!1lIo3yvh#J#W*>>YcN*D^-;zd^82(I2dc# z4AbTWbPy)CRBf1UxTqF1VH&&%MDJEe!hW3s@y0DsF>MV4Ql&YnPbEY6*qsGmT?w~> za2{jgc=;H%trRuEG}zN{ZAY4Y^HLA>g>`!<9Ej6Vh?K}m-l}ESl0Ctu z9oT=Zn`!<+vEi|4jqz=dZ(FCF#S-c1u^Wqz&ac zK_#+kdA_LP^AS9}EL`9hVJ?rm`x-c%a3L5NWWgvfC85`3huz2qK}JeoH~_94L`dnr zabSOaFvXhOz#G(xey6K_oLl{NyW_5nrhDb9sGv047=f=Ry%sk4G?1Gs`i>Y6PkoSp zjyMP(K`0(F%ELUh(wh{<)vEuX70l(`2F^!g!f%^W0uPILdUS`5dn~FEVG_>~`W5sv zRL!odoL0~b8c9!J!` z?;VcuF&7*o@C2Dh{iI*$l;_&R z!1+bTlKP67zPl%-yuKlG-mk+RHFmA*nb2}Fel>H_|EBlOb`g5uX+0p@xBCTE<1?}W z;VdZ`dAfNuGR3D?fLac1a?cR1_-3;OR=h}|gil2Z`hjdZJw@Ir?#iZ`7jSNQFIKKk)q93s!C7*?(u!$FTN*kmn=jQbp8)|mfYx6uAp$uq5O*&E zNecvP0bMC#Ram!ZNT%G83>%%R&sRQ|p%OYUp?Ss|Hs2p7>Az#Y>p9Q)F|6`<_&M{m z-YgeRA*OogL<=>0bD?{~=%80tm#J@MPj3d_OEACQRoG?N{LHj4xzyx5n|`~4hJ3uS z`>uv-+g9az-&0>E0$XPHX65Ik*FK#2^LG=u$!l(IbAtI%SL< z45@UF_Q$x3JV+uGJm5%yeM<2V0N_>JHN_45izl!5*WDs!SQd6%Tg}n6*2Y+uLLZs? z?;nT0u6(9bL2Xy@=glL@ykeOhz3I(96 z8)cH95|J=YKa+EibPq)1?@D#@!@3_kGVwpKgnpx*-(aI>NMmlaGP^|88V9(Yx8+t1 z@p9|A3ji}yk7d&%l^Jxcmu>kSAuKe=T*WY?Gk++~I2)APCw6U0&d6_mIOHSXA9E@C zMXWFNUUF1Y#itm*n)o!uuQs&i_5KQwTU6_3TYNcK5eS3ND(biLt3(vrIC|R(a}mn@ zM`ZLrSC#q2jP%Z#COFA&6*9(@?gw~nsk>j2DS$cZYq01}@c_KbVR6P5+TL_qc2gem zg-K*YL4i7HLkFqP4z{eQPVq2u{>h=;-|4Y7Q&Z4=W8UN%E%XfSBI<`Z)Nh)@+2 zkBcr`?$n@@ITkwOw#~*-vp=8i&)uY+G=)^|GA!(Wb8B7P}ntfG;}jdU3r zrTK7NA_=2gas=usSKvu_m_iBq$|Gbg5=2YR3>Hitjg=J^JOuRhz>u0 zcMRhS9&WKY4{$>lcF@1m9G`(5RlUv6_FI9Wq(ynNGuXEDX6y8cX#X;pP2FW`z6hU&o;zb-5Bd zM|zB}?dvHkfH;hS;^>pgUAl$ey`i>o%Wj-ih&|PlhU-f0!`A{kkz=VQ%>L%iungF+S4ZQG1Sr`{$y|cq(O>-BYpRT&6_bW z(oIGvU(DIP?JSSfj$dVQmTKKtn8;iI+3wQ->$)6NpxrW5(b^EcK){ST8eH{WR8g1R z%Ku@9&rCnS4u+uOQ2KUP6cbI5QuZsRvvH5Y%P4+JLnh0%1h;*{wR&6*4^8sQJU z;5IBBqsT^WOut+F_5@GKt2lXF^gVfnQoC`Ru#E~o30K_dCDMFX+6{PzHl1(^ayKY{ zS+*8PFRVmYrR2oJLAGZ@&PIpc{M6r76$S#ms8gk+E z-7%@xUie^x z^Zo;cLlG;9h{PkRZKv$Uj`r<6=y#y8gH}(O25dM=CL@mP@igSbzY~{=GySG zZ?QL;X-SzliRiOpZ$H7ajZ(4(sC&UZ#lCo%BQdBF;wY1eU6Pc0Oc#hzSD2kB+s4>l z7wP2?6a28nr5lLWGF}f3!+99_*|aa0aPT3`g@7AoR8l1%3HSul^;D={{Ua7=N#&KLRXbSy>Q2-N)}AM&A1X*L075Iwdq$e=Wn)G zDtfu8Hw>?k~MH!G+VO{1-l{P zAtNaSJ&-RPy55yak*Rij%Myo&{~1Znh%v!<&q68%~MUS z`NEd_j&Qvrm6MVqghNAW63Yja5><4TwmlS!;R<^d`y05fhew$28SZ50T|@(g?FskX zR`l-5!%Y$W8PDp z>nF@Ve6MgUXf8i%oe9E*`=0jx+?w^%F&is&iFpXRCizjPTDRzN0Azv>#2GZ)z9k5Vo;Eg$S&qCnT}#fWP-q_<`K*@0N$XAC4}B3$Py59DQ5`$OA3qe zo|pMKF)=FPK1}Gnw@%0Fc)rX z~#q`5!Ht)_kc2}TRG`= z-jNYDDWRo8O@}j5e&A&_lDk-1kql0u~ji}i=Ijr&1{MHm7LXA!74dkwrsITGoRkSB^(KPUrw9qtdV+ZI1-#kouI;N@nv; zs|03W(ay^z7hN;gL_wBS>T&M0z8ztrJ^9o3OYze0<5XsPYWC+4LlYVslWVPU6We(L zNP!x%>?^S|GYafK@ExEJ>|ko8J=ZzuQSUl-Qz%>@o^;z1b~U&`osHViQ;^JOBua2~C zaz*fU94seKa2jL3wDX**d2D6E+Q@_SxiqTS`)Tgs$B0Bk!BLW_Diw#W=Gv4)kChqA zuYcQ>1j^3*)?(H^3%-gKhO~ly*i&GHqP1=<^v?Vw?ftofm)v9L?(`gFq?z^|fnK>^ zW;gnMJ`)^ggmr$uzlrzoW!!A0({zf(&hNuvAKgXp(wHi2XJ!@40--_u1&2)BS6k#r zvHxu-W(i9A1_YtD$KAw|??sYQz{9ZqvX#Mdh0+%CP*pdCIAA|Ce|W0N_54#EB}2R> zRFzxm+S0j`GhF^G0$-86-g#$o1g-4OL0s|fP14|9Uad8Cf~4>jLg-CLY$NlX+HslL zTx#o6&VhWxB3}zKakxxNc};X!;`yN;x~i8bHDrYc1ApnhHVvQe)v_kfzhyNmYH#f zUEC+seRv`nN?XN&7bOVNb~}5GwPz|2;|p7zOWPGMfGPy6tAV252s|WspVqbp`=*v) z3XrRmCw9iGPt)W_cQ0`!*OIosFy@#;d3rq1{_*Y<$N;p|c0ndNGXo$}ej3?>8jiRO zDk;Wy7Ialm`C0z^(wE3H`#>CW>nezPOe z!e5cCVN5Z3jOi~AF4e)`53jyN(1qQr5DmXz&AB;m>yRY1s+Drv z`lGQ3<43I#6tB1Q)w_GRkGxv|eJMXHTO&NE1?IB>UBKr->OldY<5m#Qb{^8tMb@ri zR1+n-*w#Q=g-_YVd0`H}9OS31hNORS2-aBde{zSk8xTQ%M_&@;qz*Ncts4T_f7KIhU-oaDI-G#;G$KSF&c|7s$@b z%IAE6aN$N5=jf|TWqqdhj1+BYiDToCAFavv%$Ko*}F?zXffzF&7_)_mHS)hNMcSO>HBrgWBqP! zMtbF5$eKw35kY(5D~x%RT5@rwObY`w(jUKlceel55cGDpcSw07f+fkX=@f+bSw$K( zCN4AOAZYF-ymEE2mL>&tiyu!#Eh}219QGGf;6=Q&ZAJG@(F0q>y*Aj=m?+MnNCwW( z7v}Fk5@01DV>rJ00YY9IGZpW$?F_n0xmBttpi4$ed+rHcq9DOoDh{Y#90Y}o&7wat z0g_ml1{k~*roFuv_I_vU$$aup4rQr?%n`Ty6NwmftOxm146S5wAqNew?Jm;~v|yn% zmt5KRKkZiBBVM|9;QU58^iy)GxW=v{Q-Tz7w+RS}ZzkRXgFly5oP7eb?60i#q9dxEwuKTbH8dn?uh{ znZLSf&H0A*Lou~@7ZL(wP`9IGL*;*TB`{5sG9l#7!^-TlD#qSzRzkXFb@FN1cks{; zK0d?N{-0z>CuRqvCt3(@DT+JLh1pQTK1v{KVM|@MczCD6(riuyigw(jjAWBC7ohHKF7V#|kM zLzC*2Js@}5{a2a~e7}(Lq!bE)%8d2L--XX%Z1!aoUS;#8=;NQV-_}0P^5)s}`WsVD ztWv+Me>Z7tyV=Nv9oAM6mW8;77|76+$GR_vY|vicRItx!C7i^X=o2u)&m$|VcHssG)?+;8fHS{xNIwL}b`keuRT*R7afElRZEnwUy<#rvzQ9YjR|h|EK%7BZYMztPWetJvrocHaK6TS86)lIF`Y%xcSKj$j zN7Loc3TsnNl>wgm{PZDnj_!D7<2^`VI7s5^@8p30GTz z)rn^qv)9+IPJS>oWzp&a1q_tB@eFu*=O9gJ!?NZXDv`bewFP3vrwqgQqB5kImi$RG z$i*Jcu~m{yK^%$`F961vqbAEbV{Bb^M+uL%enh6OKa|H-q`5%*R(QV)SmaGf&7MkM z?}y7IoR}weI9_mnvSxAHZveAb$4waI<$<-hEnScpO~5M3vy97?A27tgCCp0RkavDY zuWXtf(vgUKlWhuwKRj(j!Ym%?Vko~AUraDc85%mmiQ<_;^xOKumLd*8tOY7v2RcW5 zuHbiMOYO}(jO4`|e34ZP1N-F=JD3OII%96|ente=(bo7lYT?4%3vea&ep~kWZ|c+c z4LB`ya`g!2K>nF)n=lL0$I`9oa(-gPSo?53>TH%ogFdDCblK6>|CS={zM4G8x=@+U|uZ89^BF38pNjEv1X6)#+MiCpmP5nj6* z-u(F1s5aWL#lz8SrlW_}a<)neR8b35B%(TX>-=KLC*5EiZpC4@^5Tv2u7r_`+>A4P zn&JCP$6=iVZuQ)sQLmI2lSipvlTCNxT82X{Bu18<${|2T+jvUmWyKUNW>ay4w3`-e z?s<3guj`x{9|D;o<-s#TP0}~hmPdfVW?QO9dP$=oVY_hkTY(LpkG&N;zQ+nkN;>ft zGX=1XdV2LY(WV$7vR_$F3a0r)Gq(xsWrvgcvKY9RQR#>O1!*E=lgS#g!L=Gh3bLQ(P0Li)h`>4 zt`+O!1&9W`>X;4@hHR$%;sUY&hoF*#*)kn(Dk!FH7(*qN6~6(rCtaN)-9cBSwohf% zFW4e95QwgZoz1nt=~=H~ar-pp<8dWGy~J*S+NoyE7|rm{OBwFL%q01p$)s8{`@A#P z^6w26e|&OtR=l3EhJE-2bV?ZIf<#;-yRd)4TcB04jb{aV9)(Wt)7{)rF{SYi``4T_ zRg1qxI2v4kDed~Y-7cM#<2@JsuUsj05%RnH?k70(>dd*XOh^`PZYz8_nDpTt-02|t zHQ&6OD!%t+6yl%(Crh)+GEy~6*1(&i69SX|i}&}2aKWtuOnUA%ef8ih7Vry}Z>j*b zI6EecP>p%oc>6j~9SQ?CoeqfvIT)qOIEXSf50$-KMC5FiU!RNl1)nz_viWT%AS-A$ zD`Nv`G4OEV)kqX`L8xpwqLn5Nu9Q3Gdn8b8NtP*?b$+B{2+NoEtp#y2dB2S^Oh#;? z3VTF`5v*sF`GZa5LiT}5YLZOQ+9tYgvj>e}I#^b(b%1vyI+;UEP+GXaivBZLG`BQl2KGQBXKVXWuu0}QSsaystphzV(NR?O*mJU8u{aXbhB*szw;pL2vZGdz_%JeYjbuT- ze5CJQHaUBab16@kT~rGeWDI4 z(~;{$?K-c%h!o7&l0gi>$Np$lW_7`cBh-++0bn&$Eg9W>h8-4y*LN9UD8)b-tzHKL zbQx4#lBgq4?x90%X>kH@d-RWYQudBOh&2L`iCChKG~P-3TyNK-dSrJ*`U$%qwbmfd-MzWFmv6rohfN ze#0_X2ruHL*V$@?+_l z@RVdYa`d_jEEew)0@JcSChw4zE6X|i?&P*tXM2a=W6wda{{`RF{SbY3h#zzD-m$AU z)8-=(L-}-s`-(d{pR~-~eszLZ!AdbPKUpCD*<%2Eb0Jw3WCj)3?nEEV2qqhKm(>7! zyeCaW%=P~GMRrf8J<`wmNfBSC4T`bCcW}hVUO8KC3c8n9`OjgQqccG>Mc+S*lGFd1nEg> zUv|&te8&J<2w%M#m+E;^x|9#;{6p6+t&mwfSL;qO6a4vZeFXgO`R$AQGlFr|zCVH^ z{pd*lr57wp7p z|GK#I)ZI|VFnGg4C*sO0wd0H5O9(WnRX;o3@>n3lRmXugv}2A#uN?U)GvH$R6t2aS zFZ7cK`DO5u20-t%dx66gj21TPpokW@T?$pQuxlG|3H*?T>B)X`_qu#GxC;UK4I;mm zH8C;VAph~{5?Sv)13}=`{Fwm;CE^K=9WZ z`z02TeYJ-9T<)`Ve>wP-r(#Kl^N6dB*o9x|ogo@ZbuEC8*T;d_aW-{xY#k7wD=E$ahti zcj!&IYAZ#afsvxS>;a&UaqUvjqRaOQ9jIO9=^?qg<(QQHL!|4u$rOfr1CU0rpBh-g zY<{^UJ1fu;D*_op=m?Q$0=i8=fKqE=#%)Ks4I_)xs$l3paBo3CB>{>kksQ=5qZ7#^ zZ_C~qR{|(c7yt)h<%4rD0~JO~^<`#4!hgwX4N$5D)B!rdj#hyE{xW*}FSoQDV^g)V z`1bIx^-undn%t@uFlYR2?}+}jRsYple*6@8_=WF>zvdGDn|*WpCZK4gSeC%~H=2Cx z>NViun+lH}{f$Nk?y>RFrND>Ung6v#|HeZ9C06k14Dc`;@0Gs>{{PyOO8!6lS>0hK z+06`&Rt`SCBazyGFLe2Rb&7AZ%P`Zu%y=>jtWsV4r$roSVr%NGR) z0Y|C9*EMRyfr zwYq$*FUq@aB)I;%4mM}f9q&%)w=(`ew(B1)1R8f7SS5@8)+%Z7B7kA`xoyecg&qvR zDyjRoR>|8pmFV5Bmks`1=s^#Fp8UTBdJ@?94#`9hE&g5TaR>lCI)4lFJZFlcOL^k3 z@i(Cd@Gu*%;NJp0*BKuNbY@EK{!Qrd_$TOz`CFhTn*OSi^@}9GzX?6A{scX(e`{Vm zIdmrNPF_dt{|amTm;DKV9%p`n9?QQ4dj2z=|8E@zcoP4a&i@CKDg9?U|Fx6&&(r=t z)A|1h$^U=5JKuO}yL1s!xwCBQT3Fnw%`IcW3gVSiiMZI(llVgTkJUWT@YKtJ{Dhk# zwvPI2oJl&u2Jsm)9j@v6#|eR3QlMXY6blW-s`sYrZtW^6IhpK&7 z&H0>uEigF7s;hSYqq&F;zPHr2r=E?IGhqg!qR8}59&`}{EAjMwR&IpkQ6%DdNVp)x zhLGJ}igC6S;g}pVloRYf{`+8QJ{joy0hS`FIb4Sk}NUjN$$o=ud z0cV?=wg`Cnp3R`g0i!TLfLc&-oV(-k%BJ@W-0_-8+Br&?nEgl*#tE)q28y4|c#$s1JEvo~ljWahKm9raqHF^V zKLo#nY5Bzt^89`=0I+W((8z*Y6t5Jz8eDa~?93+};koU~Th?&spO&3uy0Hb$&zm&s zsu0Zd%0?buaY{@d{G*$?A27NI)1Wzl|K*jefrjsaSN1u_4qpG~SC#>GcfyFl;8?li~qmaRErNh z3E0#Puqkkc+i$-F*z_7;Q=3H}O>=PjhWAlHWVJx0n*6Ni!Yfp$g zRUUR zk=*t&ww3&*bL#OurFWZ0BefHPK~I~Io1R3o#CSiXO<+4 zHGM*_I2F%(5uvN;^NABp@844;LuChDn|6LR_;mP}Ppb}B6-ga~w%+WZGo`2=&&I}N zkt5;d_Ej^Le%Pu^J4JiW-$wE$PClCIXq0fKI-l{RF~8EEt0CVed=Q| zov6f1CO}p2ynZ;yuzk*~TemICwTf7dd?vHmi1}?yrLE9^#f6ufceEd$zQ4C1{x&#; zf%02}Fm%qZ9O1mS;44ul0i%e5fdd?WPO0rnN_$DXq`W-BZQjW-i>}jy4J}N?zpo!( z*}lUn!cyVp^I}&B3~LOTD7`E<8Gl=W-d-v!K*)W&c>PLL61`zbrI%4I z`){9jSxM-lsCAgP%psH>f1T`a6XNO>rRN_%@GMx}53rNunqNHokDdsuKg}0=BiVIO zJ0dd*t#>9ZsTI`j{A+?JiZKwF5_;bSu@3+<8I}NMQvL1iVsCVVkU)P_SONW^Y5eO| z7p;K!%Tis;Wnsc!B)Eugq<`xY4IEw3gZ)QB9}Vb3d^I90o|eWS5P4A` zcWT0f$vD6cv)pw{HUhX@~m;KV4BsUfrZznm{ z#kc_UZ}8eLgARlU=9eG?;(= zy>G;A95AGhasAVKiR4 zqeRwWuO%D$1o=S6{QPfSpv0HMFyN@`q=PoL9{9dFKX2Pt<_f-3NGY=V{-sVD)K%DO zPb?Y{(yOe$n0t4;LqtG8(mK^e|9ggJ-`l{?cQ342E^Ihhjn*?}TfUE-`S31B{3V3r zk2r*j^7!(^6%31Kh{ItcrvZnd*+vP7EL8GyD2vnx*1au6;9J3cbMtXwA|~l1N5>`x zGE~)`>^-?vv1>Y`8Tha*E(yv-@FFzLnqGn7v-iIE-!WU(=)-y4L^lgc4{W^Z==qs-*&l8;zaf<5|(!N`-Ql3JW zdhxzH^9!z$d`87CS=(b+%58Rbc11}`$2q3c@c}$D-plaFcpFOliGso9^oDk8ROP7KeD^Ik ze++-^*3808PYzrh0F3Vtt-olgNi=;wXcYYVWyNi>%b?n!uq7i-00x3%5$j_d-`VQ29==)UT4y#G;aMKlycE9SqZb8K^-OE@!4D|(89vxsF{^} zLGRo3a#D?~jYOVr0f(MC?D?Y;cI$RE@#p1UY1}*B?bMlQHJTvXWU!fe_8ZB*R;9o0 zM{`_Ls!!|UXbsU2x?*`%>1gNim$_tG;gbaY-!# zf%DWqYu@=9=mFtsYut90Ub%lwIqA^;PEz1TmXROfdyfW(&|b5Ue)0FcnNh_g-eH=m zmSMkKgTx1%Y`FJoWKOD>EgfaF06S-DEYSGy;reyOrm@?uzvBwv7&eeeiNnxdQ|e-H+=P~< zysx1t+;gwxV6Wci@+zfE&eRdRT_O!N1W-Vh^df_o^z0EN9( ztQNX)RaHf7>yJn_Tke-NX^Lk{m-j33&@)jfEp_-AXeO0YR1&w-N9h<^UufsLlat_j zJ>|57BGFg}JvM$#5y>-Fv+mwEAlWUIdFrs#gZGxd+cB{Il;_S5&YEe`r%z{Gcdct* z%GRAb2Q`V5KltE9j)|+rOx{tK7AAR1Ka)JdBVq5E$z1_`V$)wl{R7}Cr7Z*g#78QR z55|h2CRN@$(aC?JEjyU|_}3UaMd!-x7;a1NmELPJbt=5Krc@%s-AZR-TQ+tPWp)6% zJNtn$vQu^hOiF$d-O+rhp?ckWz&)d9JiL&e{tys>JIv?%`y5+jlG`16X0-bH&HnCW zIDFN6YnhO1zRNmOUy?I4aftWMvslsfSg5?vZd}^{32{I4atp6zfnBPn{bNYj`>>A8 z<7c^wncDuOQcM>Gc&qx8%i?OT-0e}2<9zNv@IkZTO+ryqxFn_P;ES&X*B4jeLsbaG zZI>gh`ciUU!RPMQH~n!4UfPpm_G6U|)l{R7ZUPwM_9SK6`jVmlXb9%$?3@*B+h6nu z*&+IYOWswk!**Zq4+Xl;eR#q7$7WDNUt+(9ZTMCvQ0~8TN3*3XaUi3j*$~$9V@3tH zr7n8JsN6YN8UuFfXia#b2l|1}$}gR8_@eJ@GUh)jXwCXIjO{fL_-Ay!AbsrDA7xT8 zA%{|{gA>G8re#{X$T#>SWa}>G<`$~UUC{EY7-B7eELwR{jta0QTH9Ym@js9kQmmw8n6>kksdBGqgC;T_6n#!<055Lu5~ zhwa5sbCy{J3;DZ?s%jKk0)VHoX~lJ@wCE1$EMzLydAwkL28 zRQuvK9Ee^|#-UaW*DoRz>{I>LuQ|PJW=WEamvo1JR{0)-%5{2Rq|6%awG+eH{&e^C+y*yM)f$V_Qorc*=&0ey>YpBYrBI<` z-=h*JQ4$@dr6w(51rjYjc?eO5^&`%1^%fMiMBH1g#~IzRJvU~rD9E}5Y+4Dg_A25V zuGQ`haLv>(@+S6ugIl~|J@+!TaAmnTM$rDbNB7#|Xv2r%75uhVr+7yaJ{(T*n|887 zhBs=9i+>hWJQzXOY!UqkyPS>{d1}G_#kZCLDtL9gUsm{bj8b3Yx7RWecN|V2?rsKz zKU4G=QO(v0{alk<5sw44#m?Blw}WtDqok0wSTAR*1)Xa%7y|{cHI4URCt$G5I#P-O zYt~CLhBfAwk5=89>nTG@w{5ihP0rq$Ik$@|%-H>fv?zmIdPQE4L`h{y>Qy^YMy(c` zZ&^*Qtb~>t)_TYE_%$KQkV`e)%6(XCb=T49I}Pp)f1J(1M`C0PM#vXtg}13GnBIHo zmo#{8EgEcOF6lUEZ{9~vZ}Y8q`7uG#CtJ_Sd_D#1p5O?n@|J(7E^l5uM?|X6%6KU5 zMGe;4wp_|16$HQuta?RE<9m(U3$RK zb3i&9=NAcbqZxVas+PDncsosh6~PohHYKc|%QgN4B>DL2xjrl0R2denj~$3OGdO%= zkp&+Y*QVoidV6#?lYy-N`k2)zdgh=PECG-=X% z@1X`nn$mjWQVs< zaqe1sWM<$cD%Fy0qs`p4ksN(PO$+mH1Yu5bB!bJf+HtA5XXCL<4~Is7sD3{)RxdYs zeK(6)XxR5)7|9|i21>#`iq46rkz?*nA8@+x`7S@I%KmFPzNg(P)dn7FBFK8z@TD6T z0h+3@w+e)Ri4L`$!Nc6iYozSwo@}o-)>-x*x>{lpFocg>v!su$!I55$(G3WIYi&u6 z=yjRFucS>S$L{f4Pn-jLFCWn@I7B(R5Mn%i8eCGB+RPj;PvK{%(?bvuWc(8cR2kzAKZOiQ0X(T5RZ287HO9& zdR*SJw7jLt7(2!Ao7tn(r?uwQ+$0b-v_wh|Je zh&;x-Qm2g)GXo17P=@P1;ZV-W`o^a)b(RFOj^eXS9hJ0~z#AQz3rEp`CPg`!R2>dpzuIFIT*l zUlulbw1 zk@!@rhz`p5l)OHqws9I;jqVMLGg{@8M~vI*TKR&pGm*x|f-?NY^EmgVKK={W)C5!O zQKIk66-A(!4xz-?dxW?U5@Fz)}>C=-0{*yf^9CV!TR223~zxrYXOc3&I zVk4;S604*cjW5yKa*9k3qAq{It2a>$?)?qQ8pLs)J6x+DtZ3=REKm!|^Koj)i0JVY zPM>3d3%Hg6rp3OTN;0sTokuULX=`eyrU%Ia=}}^G@2-z8YsNI1XM;pQqXn@^w4Uz# zkZnuX1!dl>tc#-M2x5L%zyMC zDU^H$x>Mq|^3u>?s@_iCN#8A7<@2R`g{w4cuRm;tM8QTc6)tSiwWn=^Se_o?Fra%K zoM5TJAu0ILTDbeqPa9-t+3wFC6un-T`E?B$%gwYoB<-uH4C-H$*L~|I4&Xb~)@v(O zFTJ0i2uk(+*0|Mywxh)wu_vL0hL;4q4>VFKm`SVv%zA0u9l6-vWw-bY5d@QW^c1vX z!O83(^r0jQS%qQ%1t&+QDR~&Gm|HK0$nh#28aS3C>I2 z_g6@JYBz#P;-&9SwY`@DXNwQFuFlqWJ`JZAEF$J})dLj8`X+GHNmK!=&-(SFpYy%y zh52!HH&37S8pf^ji9|@^YxneiP@$M7O#&&4l17FyZQQpL&{Eg+)?jD0dylFm6y-TP z_BSG|fFB7PWe;K4-6eb3-l7Pn=~Pa77D;$F%L{dHsTg|Tj9=98Y#rsUJHSUs3fe0} z;1~K*A$YCrVCNjUQ9`6u>V{oRjE7UYkG0eOY>RMuPMw~0bbqSX>LYvD5i5AYd!f?g zqrRHRBM1Q=fH)YHEUn+C?$?okiXWl6UF~og+DjKs-uFyW>ssyGl?qfLs|@;|i;dq9 z2tTD@7Sq1M3WuagMT5h*8x>%zWNBP*jiu_ISvQxc>w|IM`HF#Fp2)iI;RQ~s2XqOM zGJ%P$@{+;=YXJfJ?sXt>h|SnVfyJ0%KyNs=#nam~^=_4eCobttrKQ)ll;>!*s~6Ym zRKC(k{o&9A{eBr84WV7h_g*EHoH5A!TNBJH2_)t|8Nbo~Y|A;BImh9xuf@t6FnQxd zcsrVu!-KWAZ3~BvRr|IKK7to+kxcy;|MR#tV%P-H859 z+f8A3S}`7yESpEhY#AjRVCU7m=ka^}z;QpfLSX23=64qty}-i?Pz)9?ZH&y z7pI{`#RqGYBC?`yJzAl3h1(%fdyEK-*k-vmy%gLo{kVGZTuN#hd&};7j8ao zQOh*50{tvsPTAVJwZr&prEJ3Plw2aq?M)g}!@(lc}eQr9FOrx*3USJ4{R27c{Kl@rvS$BzrC7-Cy7{ zzggd1B4`D_X=pg;YcQ39j;V@TcS853hI%PF?rhA-$wU^C$8zwjIS4oXbBRYyj@4(z z(%LCuV^-!R9|s}{!Xc~~wyb7JkiXD#2Of|L*?%hJUFc{4WA{ZX)p*Hppe6(@=Hst) zCa~hSnlnlX|TJo*>{8;Rq)e3UBsg(=Rh$K z4Z4eoh@E-Rve(h^br{6d3_5b-<80jSHrWk)I1Z(y31@yZbi6?)rN$k6OE)#pTgRRg zNkoY#+Z>f;h2V-2PnvM{$Xy0(+(g!O2x*m9le6QRyB$oz`a}01j--Q4%w?evcPvgk z?3QbN0OgjPvN($I`Jkb|j+v_7#!Y5G>FhBYKTybngJ${NNM@F#Fld+qoSYC#rU#X?>QgwriR*T9IczNRvd>hCqK{pQ8ZJF;7*vN zrR#KCADQ&t8-ue+DD#9%nC{STW19)tB5%7Fg!PsgQ$yF!$xw*jQLH5laY zz$q*<^$A4qEaJPMt!3eM=%k=vv!Ea1fL0qCl)k3wwI(;NL@Pfjsw4w-eiqAofgLf zoND5z;aF>_=^()=$GS%k;e5+gp5h|z2-G4^ zX{dV+C^>x&kg|UYlahM1t);0dI`?$@fYB~wM5*qUx!gxV z2ZHvr>z1Ordq#$HpN=t`ibZQ6fYo2DeB3%O%Q?2) zq6Dq(R(`a*llRlACXo~!*=im5Xt0c{TydfdoEb>DeNAV}A1o>`c9@XZtH<|sO z(xX4#LojjzW1^;!)8Mi?{pilYBnAuMNr_j+>Z5%QhfS`P>atwVah$Ksq!6~dj+ahf zP}j2nBXD$-t|brJa2dscPLMZtsqe&*gxSX@hu?0ge5E{?iQm^@hrHgQj#UEne+>zK zyV&@{Dk(~v!}uc9Wpr!S77NbDykEC~SL&C2EMO*efQN%x^z?xJ@r2{$&ibH00gEVM zn=@C6Qyjr*Tl>>W$G>7|Z0Wet+U%vf>P(}o+cU>lNoaaQ5GGkn_Y2IIOt1Nk%!sXf zqtygCxzSdoL7GNT_)?Z5S8eIPn1v_%>=coK=5%S5gb1ss%Xjd~`cOXI$RkS*F%xw- zV{%|8qTJak`IVq)4CZ;dbEm5M_Rc3n8bOF1ziRr`@b*20tP;$7^v0!~*9IP@_2ef$Z^`7>VH84fOsiqHZ^%4e)jBk+by8nRU>)-x0} zw$ymr3TzVB_9NhX9KFZ*`iybJm}r`F|HH(KYvDSWeAIi?6}c3C7Xm+&4ayXaSkJMyxiQ#L441g|=IPO3bjsBe1QAIl zI@a+O3{rEWSjCmQ9K1Fx%3{y2G|Pw2daWL> zo6W8peKT)fH$rjJ=hg$7w6?E0Um&I{C5B85rVD4cWyGu%%9zAG?mu{g4o|l9!{3yV z4MQkSsZ%I@8FMjvdHeYvvH?&{G!)xd?`Zp4jj6Y$;VqZ(4T?p~faN$#k&W4^8I_i9 z)y!h=VzsL=U&(D59qz@n3UiJ)EZv!DaG@xEQA1zuxbiLR%fzIlH(+rs2&h~s#xJ(; z%!qiS26xZl+-8B{yH%N8WTEIYhM*SUpl1=xRE#G89T?LPQA$Phx_ct`R4>`Z{i*)m z@RPoGe&wb_*i!k7q(zMtw&|?SU^N=I?kU(uX_uu2vbqw|dP!S5;UyQPzNCrSEN@eM znZZXKqD1&CqOOp0>7stte1qJhwSkiLyfEuH!WdoC3oAMUciS*!;8ZV&2+=!TaBIeA z!c4wFTRozmFhA93vn3hs#<22vbs{}Ej>*W#=ex@M4AZ|~8GC-2G> z&Q3AXbWt|Ve(%E;^&f$sA2_Y3qGD)`PwM4Jw1cjC=5F7N7{T>+euqBXGd>GkRfZ4nxmsf5xwEPwWD-0#!p5slqZD0 z<W@HOSqebot{6b^UWa>8+RA^_;HBFq z)7190L_(|cdf|*%g4-a9%QCAjQV_WK3P-0cXVp_RvtzR=`tmrm^J4Ib|+_Z(43l=nO zpE>o$IF|4BByWSK!H!0domT~xV65nSkeQmGU2GlY_zlX~n6PTyj}6h{>BZ5vYTLmR znz+PUQJw!{vb3Zq{wI|A*6}F^2wUgAEP*E?M=Q>13FAoL;T<6FI9{=F_vqePbE~5J z*$c0Uf1Hh%8F%G(C|#f9FJpMVo$XS+cLCKas(rDs7~1)>Y{8MgEQ)_5I>oDKJC65F zi2o>iDr&mWif?)I5*45u0+tZ6~Fb8=YicBhX&E z>8in^%1n!$a>p0C2iOK*^QxW$D-|IflN}2C$dnmtx#Q<%AIw(Dvfg3bG%4f!;Duln zat7BLR^|(1$*GJQBa`w5aL4Zm7}%`i9o)UcuG^J=Bb}c4t!*)Lj##XGp(s!I41fzJ zc%yDPFTMx55H<$dx@Q|KXR`C%IeQP|>XKp*h)6wQnB4fJMk-;;)Bpft0$>Dq=}@Vp zjGbdVOn&!>kWAd9;p@Y9(Af$7iZ?Em2Vt(-O?J^*I)kXbnRdcn$%H~u{`LYeP$74E zg==YnzH$YQ?a|9!mu!W`V%`|}0MOY?*&tO7*TAJU(cukNwf4vGD?bRC$psXM9p{{PJH$%hC2oc11z)?Hz9}BbD!OpN9oCPxsGOt z<{bsQHXj*k@TILmQo?-4Xrb+6bm?T<+KO==crWkZrp4S)yCs%TFLN4(U+=Lf{7Xmz zEO^Hm!HL(DTM)zcN zmGh3zR#$i2K|PgurS*)ZO$?jMMU|n^sS4e$N$lg*F48mNB7kNJ+8RyakXZ8aI$^z; zQDplOK*z8|$g|e{h;-k&!FDyB^_kzLSEheil@>~~RTNxFZkQ=g376w#tS>00EM3kp zcI!0lQlwSN11v;$o1OSGIQOa6cE$F+GBrhE5jfOdq`7IC2vk*sS^;d>=eXxK=O zaskD^ur|yoUz}9T7evKcE|UPi`P{n{(8_y_syn^&f;w-%rC_OFy*|;*NwP$cXA$nU zHLnP-p0d*jBdRs++fKJK2zh6T5ZlL1gfGPLZjWircUG3dY!THWI;-5L!!b5;7a7+< zhln872hMACF3UPH`UF%z_iY5tM4I&hOxRpW0l!AcUyb5J&CPPHOF~CF5iN;HtWozw3t%@AohgZFH1tVbUgXz zB!oGqG0ZI_@Y8|e5C9P{V^J?%mtYSTrV>AN&on-*^$W*@9Ha42dDwodn%4!9d8q>D z1ZJp_j6ZSDs5$hDN&9-?c(D+1yAzqTY~u3+ARaaLjqyF)X0o4RXqYx397H@@D`HXg z1*gL9t;zhCz;gsXbH*wKqjfa1w-hfWx#KsUlswPAJKbopsJMM}gx!pi5=0?Cw8*dp zO=Q}LI6Hxqk88MCwx=FbX^p#NrMZ3MGWJ3o7vko=0-)XfDl6FcjtBdXL1`t)<1n6< z$FdlNT_VB=oL`s{N})6PG$d$^zu_Rn3gV1R?Lkc8ENU8w_}cW=MldC1r4KQaN}i=w zbD15o-|Z8bQh`Tj&2Iz6sy*RK1ZM^E)n4WiL$b-tg_ZPnDG85Ky3^!AXUDlCmsKUZ z4RqLN8{deD4T|c!=fm!;A9lkKu8|?46_h98TQsQzh_9~`PEMl5;=Oid`-{rE84bqH z)yG2Z&xqdZZ|n)d<`E(s#rj^UyR3`PT`)uKp)X) zdc*v2C>#3KQNR}Cv17@UU}40F%dc1!k>_dM?|Ca#=8p*Ws|Rh4{X@cfcsMniEd8-~;|b_qTRQt{TU z^@wC17|#-gAK*Pd`+VD2ZzgcK)L5S)E~!DTCghr) zhU_k+$~K`}cjJsreI3W`VW#B}LK1N^>hYz?l;~JPbzAU5^?-85b$)Bvqs5R5_a3m` zGn}m>%u^8=6>be~ao{N0TqrZ00*bdGaM41pZ%Fu4OG=IF;?3iRPM*oET>5cU4|Ght z^AAE*vN=hXpRbFruq{@rU?M}aUQ1C$*$;9 z0P!Ty*H*a(*L8IqQ%zdDq`ZF6n@YHGhf|Y}k(`R{o$!`=I-#vvd<8=FUAp8YIN z817Y0(iE`iYcLioQ)*Jx5zp@v>wC1Iyxo;l3ioPWhH0veyA=nZ-=N((+BDcZS0%q# z(WF^HHc~Jo-j(ilv`2*tH175>C87=Z?GtW%meOoTcS#j9!x}%2PU%*ZY3yYKeSK8B z>mke_+dSyfl7@~koz@wkIj~c2*zc0kSK@AiiKizO!{$@W*Am0mVpH@JHK|95yL+hw zRGejl&uhLSaS*HFNOvqyJ%@!+M!5O8x5PO2Fo_)|i&CohlroV(l=E4xL=YZ_os;vX@j)31Ql@&jubGLAKUR> zL;5icYfU#mj2*nnRpf%T5=EpslvYNM=chm&`r5;^hFtpJK93IjNfA2S*PgGOhJkKR z%Cyu6LJ!u9O|~yq;c+0bkx7-kdq%wx*xG+m00UL@9R{heg0mHmt^e@T*Ys(cn{6BSn&^Kv^vv28FQWc|3yrfpzu32cJ* zO8)6qbNH)%UN@hi6xJXzBmtZa1Qa&v7D7#e4XkP?5htWOLmKW1SpAGyG?Sz=o=XLr z0&9#{W`5woEH;rv*6v1hT&4<}3JJ&tR4gDVLQ{hE!c7iI9-J${`rF5fCh0mY$2D7z zTreoB)m2rvWy&!a&zH>a5E-Txu&5;BGqvLXOkxe#ukG&?-#x?@Irn&uJ++X%?F$I-W5pQqfT}; zS(qxJg`g!D;U@LGRhiTh()*dEK5*_wPlI_GZmaLfg#@|6+6tX@C4O}t`oqKzktT=F zP43y@>*-ouSEsXcK*OB(dE_(yl8X1J>PSr?0uweQ4_N|c7t?`R?M-PZ>2SkBLfLW19cii7gFs*!Tx zXI^SVPN2eMqibbc?O-uL+n9^pc6dy=Tl)sBJ=`b!wx%+yg+aArmuV~7-nWwpUg+MF zSy0hhVvB&b1GUGN74mn=pJ$-C_LSJ+Y;!s|jZ5J>cb~NRw84N>9k!Gyycx+ zXW+dk%)S8ph)VV(0)I-8b%!vz;Rc6d1xJIZ5=xRA7&wA%=?gO9I2ljZ*u%&29>WHd zJljbs&6ib&>omBAr*QNSXK=4`uV|0(OtTWU=^UvbkOLA%0qo94MyJ#(?wJ%ln$AUm zJW>{nh=vL9muv08R6{k+dn{t4igl}&L5;S`?B2S&zZ6og|Dj>~)Igg5AwcME_51`i zT&c_pHXPs^e65;yeWJSC1v|u>jd>TmE;ZbpKU4F~&2q5X*$OBlEn^|OUU4kW)33LM zk{p;y*CwimFSUT8rPh1`sbwB$85;N~B^6~_d@B37Q&!LIhG+y8!nmyML??G+W}^$D z3V(@X3i|HDe}nTke1I`Pw8W|x?IxSrp$l%d1NJ*5`2Cl!-meZ88+1)k40C;+{!B|_ zS0V8joi0vC=J2qCFCJ(wbLhXiDe3cMQ`NUCADik0)MP!q zLb<8)eKA4Dq&)0MtS8Tuy_X_WF2Ni_<5$usX`Z;J9`?=pI6_D8qeUaxst1}=Os&ON zhSax4ibKh&u&?COzX<>8<>wXh<9%V^6_embJjnjad;OgOBr?T&8ZBgwT8$2qqq~h6 zof0z?I&L-%!fCG#!W#Biuu=e>6V%Trgzhl7H@ZE7cGfxavou%i#9=-fpX4=Z17tBD z;S*3pj;kwLd9Uy}VTj8J)GD^ZnXhVdc5sl;MWq=(xsBMq1k)kqFQb;LP-lQ^mrm3L zVe%tRkjSeUep60IIMnd0j8YE1wneOa=zOKr7b{7C4vxNsJr?NSnesQ%lGLvsQSu$z zOWAGv+704_;*@PIdI#c^vF`%6vB0Qg`bs>MybQS8ji!lxzgOSph&~fnkh2Ou)s9 zvT^aoGvIhYE!dk>nUl20qvO%(oUd{*{iN1*?gjuTf-oN-_Wg;bBjB0&MWx>N06LXy zOTF_M1MdY&)UWUG@Yn<@*HE2%@i$WkZpTeVB5^KP{9NoPdOR^&?crd|=a@t-^jJKX zvBy}FWEt_4^Ynlz!iq5L0uW&A>X%d4|Acw|q?c=t8$%n(K2@W~60MBATExwbKZq6( ze2x;7`X!{S8BP#^UkpMk|9+%H^Z^!0EWIt|@Kt;xA_&dYr6;^;K60O-3H|l{39uo3 zgYV4L=W2ct6L3J?-ds>m{VuwfDB)l~;&^p3{i}WBJnHTG88MXK!O1G#c)mdjaN$6l zD&p=Wd~Kc=^?cO|>Ow8lcriJw=MkrN0!V^YUq~3Ow5Z@b&w{ zR{amKz8g&jKkGRbk0K)j+R63g5}iY|I2(`C7~qlZDR=ojaxVaV=51TwRfMR zSW($sOb|CR+<(9I?AXVU7u=oQj{mVZ4paNl%FPHL+l$9JdX>J(zv@n_10}FkbMpnY zFU}>a)8#bJ{>C4G>i>#P6!Pot27jrc0lpAI;;uip6l>?UVY*9YmFCY3<aNxF8fXa+~mtcO3e%sKsiVG)lB^l0Px|qwDOhc!0V6h0J64Bu0ZSGjZ6Sp zR2#LYQ%0WU)3kqdcy68T3#rpKt)e_yx{*Q)gt>qX;#1+9ZhO03d@_Hd`OHk>$U$%H~pk505K*YrS#my$VB{E;*?XH_Up+s)|xtLx7z@Hz`F-_|k&3R--j?9)-`aG>h;8W|5pW@o@?xa*wxe5N z8zL$1D?hH*K$zzN2vpi%&nfiu%8AD1Sv4^30@+Dpb3pjZ$kXZdXPpP=fg5+^m8*)9 zeFzv%?-KqK;@{wwK4!c+2ZoX*S|2NsxWi^Ya6KweHftrX(@y*H=X0Og1GHg5A~U)mi^M)&FBJjL(2msqdT=#s6QfE+>2D7tYb@^1m7P_eX$50@TpYZ~kwt{_v~A z%-!ob|F%>3pO0I*@0TTY&V6_Of7Qe2?k`LF6HaA z|GOLh2Y;CX<7QS0{9pNxPtE{iZh884`jbDK{r}=_{_A$RtOSf(_kr>WJoP^q?ccBX zf1v^TbNv^k-rtY@2b18hODbD#`TsfF6=jSSZi)vC*V$-xomSo4zyO)CRJ zz&|PAmGY59g|Nq0tQO3T3K~co|RPk;~5lzSg^^C}?SLpqixMAM zN$xsp17WX^DpYveH>uWfc%YR7vzVJ;Z=#URM#>%*X>Yit zrmh~jI*=~2B7BKO{Pi!%gDBrv+h<+_FA<;i_V)5?!HFdcgN_GEdU^>pl*FnIU!d+= z^T=i8xy7zWC!=0o3e|(iu#oUdphUJ?q%Lr@5Fv$|UIfaT>oAw&V*To^a2@QFcIY); z>M52Bf1XUb^~_rdcy>XHK3vPZu9+LrwM(|*{jvSH!`rUbkC^gg-0IDnHvu9QR{bm* zT3U<6x%*TXVlmjQ0AKO+1Gy- zd#h{mnIMt_Uv2(7TB+j%3}Z?16;!kcY5iuRq>q=TPi(C>DnFND#!oP-Cs}NKZKgq_ zqRVqRnU3KruW@6oDw~=`wwEOL4cp_cPCTNuu@kiGB z=1nVd>zEp3NhRuFIn_Sq+|0yQpBVNj_4n$qP`;*z>p3y|Men#hQGuMsgOpibp)pC+ zEq{IfCtrUH#-i3J8BLpZ`??hRsEBgi!_p7mW@I*iNngI5`(2teSfsiM-o=~Mci+^a+_W{&a~y0z`iESzK_Mu)Fi>+vlFd&#%B7`7j1rFLrt;6~{fEG!@p0jlk#?pFbfdv-e}`kF^FvhE;~3DPrcvGXrp^hZjvNok26-h%p&3C z^7;YjxLDBJ?g76ETX|z2K0`K?jdmEOQb3)?n8==H?z*Szb;=1?WJ+OUsBMB?xtXjc zTcy}TS2M@8^3M8FM8lRc&|aM3`f9(FMl$ra&f`}=1&5YzAftBaQ?cUL#kthJPNdjt6*eKKF$&)M{LBYzTC8e>erjMRsN64jgkl%&LVL zi%NAKk=#f=QgMNMZIv6;*o86Fiw^qSYWNcM+Oj_dq$-8qiI>VD+e=RyBc4`r@by6o zDJwuruIq@*Tx>d8Z%BtpqH`Xrbr+=A?K{+@fK8gb>)ee4MA+>l|5mRCJV+q6YsBeK zyd8>cj__xkpB>@f$G|t+%qA<$oBtYo>3bAyA$mqfc13MgME?B+{kXgHOAV~6&JtIq zMr+EkVQ-MOYfZXTCr;-Ep0uS_7!SVtQG)xrcBYDmWem!e!b0?O+~Ai-&W+-JW#-zX z&-q{OSb^KkGXT{6m;_$DjN3or=WnK)IR6Ut8j$h~)|@aLo1lr<-zWOdULm zOIl?mDXF`fDPVn7HNE-s)E{V%MRH!pQ&Ubx^**piH0J$Wo}V|f_qfI( zcoY;L83}gMR@1lsa9wAqKNY*1R&4s7`_IID5+!MO|IrqwKQ0v2pvzw?AtK>g-8cRD z{LO3KU#@|>bVz1u8ut+3NbqN1zh!}3lD&m8ey1`AJZTex+PU;$D%#rMGGkMP(U7oe zwf3(qZVQGldMu7C?=g$G{$M8IsN#Oy9-A%`lLnh_6O-23!~^&GbN8gMXNNhLx61&0Q`$kZ<5HK z)AbRJofHXhPmW5`N2D(1GY|}jXyhp8iBU4|+wkdkqU zW2^qns;`>sT@!tM>yB_{Mg{FlN6gLXomp*W0O?pXP$Q#u>(pD>gVQ0WccaRqx^zkm zuj?rXcQH_U1J)(-jVWtP+^lH!u=gVEM@Er*1v0|KI_$_)L0@(R0a5KPUyI`X*f99qPh$tyE%5RWT(maEP`O2--^~;337BMcl4`hWqx+cy>t}tI6zk0pA^|b{Wp`A8q|xq~vFBp!_plJV zCnvicI9!mS9RH)=`XQAa&o~&Sr1>D#y!>fIh6F>fsj3N$&*}v6Vrj1Ggss4$q{&d>jIT35M&Kw25N6vcP`jV=*7Hw zXC6i<8oa9+<4~v`Hk#>J^7+ur6Mru?g#78uW_Kqtv{J5K+su)TIXVBHVvM$x3qyGy z2RE9bkgxwnd|a9{EtcWpJ-*W%k2~*(hP$}8(M{L%CI5w>oz&Cx?rDdJ-ux6ndj1I> z#;>EJlSCzTe1G{82mJsR2vp`ot)DSN__~5i;xUL+t^QfZv&{3%p>}M?A{>eg?jnyi z$ISmavs?FOi3Ww$$6=$J(0LP8_&J-WYOgZiG}dQM zGbo~s=7>x!V~3pD6&qtu&$_|7SpSq;>sCP&=LrtEuQcf-^a_nDT`yHZcuQ@bbt?Rh z2EJ0PV4vN;H@G*8q^oHJHsGtG#Vv`0M|5WVLKAjVRX;*CcJ_?;+Nl}ds`0g7Z!z7Q z_8js;c|Mihe3B7XBf57lQ1k9p9)Ec%X1mFXcJOUC^^ZC9GW;Q9>M&I3q*=Q}Naodk zp723_w62jF9p&|?Aw7#DBgcfJa(TxbTg_jIhp;_jjXBqgaS;F3OsWnY`?@D*y9o1L zaaj!>3nPHKREXDFq1pRGVP*4XI#$^aohB<@trzZ<=nhF0W%f1nrH4RE(LL?;1)Ot^1_k%pe8roxHB7%Uc5WqeBDUukg2dul#@9qP(%yt2h9ibFh}>j z>Q9ki?<~fkJY3h-vqAN`hI^;)HAQHV|Hd}5z}s#ic$Ptq?S} zAw+6DxLTy0tz=o8Hxn`P78G1QHtH2pUPXy7)-IYiyN$tVpF&3io_H{RvGGvcl z80Ka)6F1F5p4KGvEe^kbwJ6{PdF9b?FHl|3E&O=|tRCZs)-5+vp7SRMMfTH;YHz2>-5 z<59V8XO?+n+&ZmAj;M7K>c@Q#Ls3hRJYRdds4qTgp!vNaBkyoB`ESoK#Ff@OSVtXN zz;aLS8S;viZ+H2;8D7PWIc61GHXrgd)P_gvD3Ka6Dw*6xUD!7jG?h-<-9Tp6J{lZu z!CaIHT_D09mm8Wp3kyDhiW_~*Lo1ZW6(&hF=}5d~?s{W1F2_=o+eE&go_spF^{LW* zZAt?*{^WVhIGHpIk9JIGgVlMP23Po2XGp#9;UqZTqnisZiNbaNY26ll?vu~w4=+B) zsn16CMXh6kW|UU~xpcpM9*(FYd=;!!E%DK5MV6ViW~3Y%l)dz)J1(G`Gvv0`-HkhB z_(6V=e)i1FJ#L-*rOr_+u9+R`?$H_eOH2>%TZ0MpS=-JV$f5OzzW;a;2Kr zMokfop6TPYc5H^L2w1~)eltLE^?C&v3Z)y1PdjU+GjhM!0`IZxJNNBIY)?zqrYRx4i~mUFbA zD|D%$<2A?GREKXA2r8}?{1VEYIU1a%CS~|ti+_H)&Y9gY6;-mJ`JygleNa_=v#s_= zh4tO>gBR1K9lj99y~~L?uXZwj0AN8TwJWVjJ^f&Fi6l=88@IfN1PRf#!)7q6S`ECef!xw(#jC-`scEhf7o z@||HkS7gVtqw-WmS8rj1$njvGy%~4(aao2lI;wrw-f?5Lg)p=APr>U(H))7{z@{ym z){DDqQOPuVO_x7YK^4;yPqNgs2akgg@ZX#!(BW}g!1Nef#Kppjrh;?2=vrh(N z)k-`mqY^PnSDm&!|ADi(4gJfShbP7L@!_bc$V$Bk&2=$)x(1}LtNq+m_sFG(uBegP z9|a|<)*3GwS3?MPg~hzF9NNj%RPE~4(XO)mPUhz1WMQ)PSKe|UC%?o3@ogvnxnhnKUT;IMN zmuHOWcr$)<6q>1C=7dWYfYg6OQqMHg^fE3~Fp-|S#hErcj^xhw)1geQdtn%mS*XS) z!t3?6pH>K0&m}ig<$)!C(ejpD*Mzljx_8ax-gJ6*ZF>b)SV;Tr%J@$$iChO`|A_Y@zJua$0uO zGg_1V=!}5wcO2i(#tpi2jGSf63+R4h0EGP!o?*3%w3*yjgpHm24YaW#U?9cBaAdUs z65Z}MKj|RsDD-;f_V4 zD}#WV!rpL>iqeYwTTNqmQOWk2V8i8l=v6*6Qin~pQxmycLT>`shzdc?sYz17gK${l zZi#x&l_XxwSRsl=^B-ag&l86vXdE@iB4pzi}|t#0ar zu*oiqj!C>=LtB9pG~3e@6V;i}&0HT{Z4dXdZn3mKTfMVhJL0R4^vR!>o=M813H8`x zEGP_j?)Z3}-`tURVZD{Qd;oW~foq6!JzRmJcN3Klx~)Ch5H1yeTqIhbfmGO$PMwPQ zjVit8`?R`0f-GTD5{Yb%Dr}V!?7W13VQw-0V9Jem{ZpsQPLN4rR zlRI&$L%OfS+y&qnp@E~mFjzn0wKP#WGLaV@@6b8 zx^Z-t$@`A>?oe0;!&U%g4+`HQaUG4NkVn7Pn`yf>bSjsCX%|W>VC5E6o+)N2FC=ZNE#CN~0 zpXX{%YBA0eQsb9rqvE);zB#TAE2-1vd}vtZ`*l15f1vLInV(m0_wf3lu`G1=lGZdm zQ@wg;af;O2Fg(NIbBVWTQFZ&6mh{U35|ZTRZHM9k%QtHq2}J2-&Z7Nsm0i~?W2OKK zg+tIa|U0uLGHNAMFuCX*f&X~e``-Sg`|$! zYzK?7i`4FB_hJd!~PF@?-|xqx3!H*c_>OpDbhhf zMVhqGQ3Py&mEIAlk=`MIC@39iB2^F&3B7la5@|{3kkDH~2`$uwz!%YH@BO{+b)9qe z`ThLLbtNlnjWy;yN4e*iW6sabR4*53jd$+8&e#~L6fr=bh_Fen9*|5O4C_rwbPskW z_|ltt)l)uKXebPu55&l>dsp`DEcLD-rLkvR`gv8}i9;C^@;bwkF3u7}^)bc+m%7PK zLvzwZ*A-`hADUS)?_-?Q9`~h9VPWZ|M1JBZZ_@9*p?grnRjAa@!_#FbHoZG5GYs0W z^p^X}s@NOZ)1f$`g?Zbi&2+J_&eME?a;<2;v#Z)Czal`2`PKSaWdLvBU*S77tHYeZ zlb7J|@XH#VGZ%_4%kJgWw6sZ12s|e94L}ajBkU9OEZ@8~JZ@`V&7qjXg_Bw+ji4{v zjOc@f)I)USDQa?fh6$ZBeqRE8^OPONS@s4|AAPFK0`$m=Oy#wuW!7?A&1kFSlM8M> zIHne)SW)B*Jl>uz4Lu21$$LRNDH?ZY<9mMS`CV2mEbCNI6o)KSf#TGCYW?~LL}o%U zN8FH(iqe-<<*VAZR6bWp>$1N_m1d~AGZ*kF6WX0uyA1GHGu8)r^mHK`)%|BNoazw6 zmXHySImN`v-5KC?)w9+Imx@xxS4o-NZ-4i+oH63B1&ymNH=3!sGVE2;r5$vym_A9% z{nRdPyr$_D==y&CzE*_Z8>N*aKh$GIMwW*wBzI4%zEYSHN;gkkOlS!q6tv;T3=Ac7 zW%JjsZsPp37HtF-QuL=cO@V9E8e_pNhYR*vDjT&6jdQ$&UbOMG z6;0}k#ozd*Xc-Ft`Y0Xs?GoQyH}&nqZlTQeX5Y;dUyXh${{gutX$9Vfe2z|AhKh*3q29?^ z#ow;}MC3aw>)2XNVU32w@9LG8n!J~~Va3ZEo43V5o>;d%rHOs5s=2>TmtU>w?|JD4 zI+?5&5^g{rPcFu&dAz=es?~q6-DJtvdG`h`6-=JwEr43tY(BlM)G2LW*gHn-81uXt zss$;2OWPSyPj{?-@FCpK_(#~Wdl4aUAKGCOol}n-t7Z}VSfwAqN?dufpuWOTeU2v< z4<_$SKJw$pdI#dd+%a#!7K zUN2w!g{IL_Sm0q8Fw8^{RBoNv8`=a;jb#DdIz(E*HDhgJvO%`xu$TE z{_&c}=U`7W77|Dlj7HBVgh@=42E5a`^T;2f6SO^NDD;xfSf%UhL=4@h{l*NvUf613 zELN@;RT`i^sXi?CIa*?;?>$Zxi9OIc-PJ+*QeqPIre66I0yh23UfPT$m7OSpqP3W# z#xIo$jmqrEi$WwR-6fB{LA0)s5t6sa__zi&$FvGh{rgKLyPBIyV>A%2ukw;m6J?er z;mUI02PL<@q2hhOSPh_OVE6IMjGd8Eq*V({OK!By~FmcbTzggE8uqvv|Tn7Lf>HOfNJx{u(8f-(=X_a53rf1 z{#f}VXJg3Yew28cm8xJ1Bf51Co))$264}NUy`*P3q!QsSZ&E^%6(oatX@e|g|o34sr8zF%I9`#LirX@Zo6Fm zNjC%tUAztAd^zy2N}~7Gobt6Sgbe56?y;a z{J5L(!a67F%z+zjnMhn4J*bpWeTg%vlnmAUddg-20hG~|l7@=T9Cpc8i?ugpii>gZEcGYy_(Js^ZVvHoT@*Q6Up>Ds2c1|J2aA}8X1KxXer1TJFlZ+})A5)U?RK{nX7%0_NsqT( z>@Om}@@s}<32xaowQmyjYe~g>g*}o^?M8v+*T_T`7Pmx~0&})5?+Mw6O6?RkXYmiM zj|QAKq62&)LfmE0pe(@Sk~>-Lnv`3cCmWlWDW?!YMyNPCCd*Ug%*lT7i>=k#q2~4w z8HV8M;5dbvH~@>0Jj+BkIcmjmvY0F8x>2gz)31;$8f{j&VY@}EZFbEMqV0j0aqULL zk=)=HFdM%sl?}QP24jj1BEM3aLY~K7;1V4bWKkvpBBXsdTx*_k5(&*SpXUxlcRAa> zUbr{yYR+#=zWZwQ*81iUx6cnQ7l}%nq6FF+PE9v=yM*cm+cLyC?M6;EPV`VW7!;=_ z`FIhAn^-;r9)MB`ky$L}wX33nedA9x8V69A4Z(kRkeIGVy(QcYQ*qF|!lI6k^Pl6AZ5_lWnY1)(_NLp~iRW4efKxua3p!YOYP zq?wk!35{8>_FEm)fo&5N4X8yv3Yjj|Mi6Duv-s)ZU}Th>?s)HWN6}C>^Tn{ds^sm0 zHE`U3N5Fo-&YPrO;5ET9=x10{bqw?~{lfh-U-61*yiT$0)veNDrg35?v-^>A;0=a3 zl*;MR=vec96&D2rP@QZfeA+Xw)RbZ~VzyHnzgWSEN5DkwuiW5pfjC!4OJCxW?CEbyoo zGeR*?Avf!spyvkK?qntI0w1W`RdIbkvcJ>ZboeMU46kOU@2>F1DwECz{ths(j08z~ zH1r&84$XJ8$6a&4DQlME5XT!dzbD5j`40mDg}b6RSjT7clrFG(6j^_5f61NE@Tk0S zuM4!C51UBvkCmN2#*MX1Ls?*J&Wft6&Wgw=J9;2YoPd}-G#bik`(Y`MZd;uaW=;v!T;8@5`v~RwvA#!U zL_ZQlKAIXt2VXM@Tn5oni5t;rMl*b-vPz@!PW;&z{Nid}k?TFwTc{;Lenny|uOg)E z7EMAQcgM9%+JdjW!kBW#OYQrQ;}iu0tzcgs0qS4cu&#b^eca{zi7#OP6s@U(z|FI^ zj5`d!?tNGp3>ZZ%GPsNn^7U!MTxiGwhyTLAAF{EH!H&CPz6sFG_-{A}1o#wj+2pYc ztsWN2E68AXenFFjns{VPBpk?BGT&B_=LuR)3$bi{Ev$l1%I)+Hp(dlYWtUO|Jj#CZ z?LxKO%YYvs8VpSaB;1Qr)89yQ8(Drn=jjm}U?+)OPC=BsD)dn-q* zH1_1s*sMg20+7g=d;iP~g@m)9CJyO8UxMk>9-1c*l2GQR~vl zc1wsgPja%fW1n25%%ccTT2_k8`5K0s?}zeh@X_i@>V}SZ!8gNuv4PLzXjLAb&HriU z*_3w`I}Bk_c6ElDC}IvG7>{=DdLMMso`*O9N7VY&Ev1+u)sV${NbG9&OK{Ht(Q|nE zwUN7DD!E#M@$=wlbE%IW@+7>Nl+`MXL)l%v=(pQKK(+u`=}}vopo0dj234=@y$Me_ zGGJzHEBz4SazYRgPs?wdM;45+{uAojE-@=uaj45VE|a2!-s^9;8tg z^FSJQ;Q6=jC;OgH@7??YyZ?X|p*}%4n^LWkH#jrPPG50sNy#5g$cSvnb84bS<3nAW zeNM8;%yp4MZjHz6P3&~=b;zrc<#Xw*G6K_;-JlM>UAv?Ek=>-17VEUy@206cIhZ_M z+bSC?97?I;?lN^+_p#`W!mfetub0$Bd>7b7XJc|aObMcA5g*e}a`zyp)bY(=CEg&H zm`naG2Thwm4q*d1b{nJ}w0Eey{Q(r4CxN+q1hDQFjyHd6&6^E+N7psVsr$~(d45^TDBLnpuN^}3IW+NQN#u~IVRi5WcZ^TC69M}pP%|Uv#KBbo)%K1w)$NrYt&{# zP=)u91Iv#bCse1~Jf~$%-XsxE%`r1Y97Q!vE23;L_qoH+^*+T7$@>F7J4{Z>a zh-($#i_9*>22fv<6{^3cD>wqjTr+=%jpi*>m9(5W&jg$s`^|me>6tml_}or?bxbF# znWHtA4}1C2$dEx`7OR`mQ^?$`YCRibZRDQ#EiwM#kW)D=_l?HOBKfiyw}2uE0vSy& zKr*6Afx@pnvg8Z{-j#JoMz2Ty@8h!sAxDS%mYZ@xwvRAdA&DF*OVNQ#8 zH5ne;Z}=@xR+K8>b`4jm$4tGvijFW3V*ObrZkW#K3Nv`;JA7#H(~`GmcKX#5sU}9d zmxSJCL(Q^HvXLK*RakoHfI-VVr-_1lEHw5pDv(S18uMB+Zlpwp4r)@*@_M|u<*46j z!-_RyiL)rwGIh-1Y zs)I(A>+gNeyLx65)TnDocOP3)-c(KxU-x!y4X=6HIk)$&?>o)3W8hw)8O9ZCQt+te zB?Xy6q2pr~(vmT&chsiB_r7suI|zW7?Rr$eql{#v?%K=JtMPie&e2;Rbo?#19$c>? zgR)VgaeKEC+%g{LCsV5BnUDmLY5;0u!YQdX0#kcaE6GH#;zQB1GT3vq)0cL$h z`7j)<0H;Ht)jqBCyfR^T=;-M~LS(ympai=}2~@(NYt=29M@4z4pu!#^Z)&6j=Z23T ze~CA!V-WH^$##4h?wd~=3#pdRxW3?~Vc&b&hq-g^2>Q66HohbWx%`| zP$)I&Zc$AA{MbtM#LSN`a`V|mWf2+^t1@L&VF@AGw_O~M)@@XfVAB4#4{#sRI=i+T zy>KTB2`0oK*s!ip8?xavlx2mxD#z86AQU$!mK{*aBv5!a=eCP$Hn8pOhxcmf1W3{t z_RL_Zk}6hMK5C56sK$GC8tk6dbV?r;3hz6;arr39LJJGUd;8Gn&!PCjKL>1`!hqt z%9x%+g z4?$s$C|*(i#kmlZNmIsFbGE{O4!0Zh8(kg?`u-3;uNP5KaS(N<1H*{z@a^@=aP7mL zT7C2 z>47KvL=4$hIcL^EHrGJQ&)^!!u+zDDK=h+s>h~pN?t;rUXQBt4LwJ2--o5PwicZ?L z3Ea2oM_!pf`e2G%5(}IdHx$rz9QbG;87d+cT?4ckQFjsD9*{H67km56t)l=KvMxls zp3ri#SCVR5c4LMz+*2dIV%~$iQue~LoBW(tXu|_8h8^m+zLAG`63kBb%%ZSjjkDo` zggzVP3M&7Qp>M#F@xhkeTrpa0A?+-J`e{l)C0@*b?m|?KPR9ok8Q-*)l)JH20i0fc zjE+7D~6hfA&B?YB35Le6dS{7#+#3H2i(RTMw{uGP1f z*7FE9Wu@GuuGUX!wEFr0iVeE&-WT@u8ArXu(;;~t$=_bW{`|!}c zPk;Q27WBrw9WliJeo8#WnJaAdqI za}>?s8#@+nlWq)&IJBy+dKKva{XAMOWt*HXg-YGOlSxYZx&5X`(t_BI+vvd8-YZ=O z>px6woFKPGYRi%DZm!a!WrJ+CP4;@ZkYwI_4bro zC;TU-D2Gc!GY>^{=_7TFw!K)$?8WE{MFI%3R^|GI`T|qF?!-tcr=< z{>1`^MG4O@f6!AbTmW*oC_1r^3qj%H{S;wJk}XSb?>{x!@9?#@VR2H;w^rcAWs9D| z6;X#(+=i^Q;UWMBIO0`m@B0PHNr9Ws0tW>vOxQ%y^%x@+mqiF*G^Dh@B)cb8P!}ws_B6jB0DL7uMWV+Xa_$AV}^Wdql@bI#+LJ3zvFXH}E5<`vYQ0 zo$Pu^`g>=N4bNjU*bJ^h3hd=I#aP%H8)WnargGqF594a%#;q_!8Gm%yswN$vrL??T zsthJab%K-MbBZ4MV$hG*RKX4Gn}Le7jqy1=1Y3W{>aR#ys`kRm6=Z zOROCWQ)$U*THwWp@En_ece_O=twJQhyx)rHR{Mrpj| zQ6dmEGXl{pO%O?_Cjo|)8RYNNC0aT+h?PeQQku=vpI~d>Z#y8x=q>|2F2wsLF3J$@ zH-eWAGxSOp@Y#2OA?guc6YmBhRPYn9YPVqBgqiF5sN?_l!PvS9-l zGQu0Zrr2E1I;OuQRc5wy@>hJp$)4G%M_9Ds;>(5?7QyLq$s7s-R-0nYhx5^Y(IR#t zqBi|z@TL`1#>yx8fw=r8r-ywm$$KefA-*nvN*fT;1Ii&YgY9{-6dbPIthE?r?m7$94X2*O&LKNLc{jPN>JF& z>TZ`yYBc@It)L(4dV~235NYvjR2#*h#@4eyIffR~{*?WPCaBg~(h8yO3&B`tXNxLF z-C+S9KvTz!k*YQ>89DRAJV%LfwL0hBwxi3GIcyh$n5|)w&+mur)<>Qm$%B%92iNP; zBpIpXG!bl*Ke|&069u>Cm)d5UpvW6}Ey;#AchwR&qCyy%2_dF;3LgsrAj>Z>{Gb_` zX{M(wGUCvbJida!`InlPrjy!MZ2>(C>pxa)018=k_F<%z<2NV-?}6~hnQ56jIa4P~ zW+%A=1#GJ>&Z_x8xS}4^*_&u`a{7glR|<})t5w{h8dJq*b5vj@?S3dJaCRE$-ia9! zWxJ@F`q5_4(rj4W)Fq~|TJBt&a^PG-KTA=hHl2;bj$FsNnJ%jV%=?)~%{qjwFcn8Y ztRC(fX9zP!re`!s?BKV*Y!hn5itnyh4l>cFUaBsj^3UA!&rmr!x@ZT+vJie{BH0H1 zygk7I3{lC_>y#>oZ5kIst!@THYzCgK;q~4v%E^Ee5ZOZtvM19!L=0*@XameAUQAsQ- zGwppbQs7O6xQ-J(BS&OqRH<|hu~PV})-->ht-G#ZA1*~EVW#U&;HMe2N8p^P*^avk z5&ji1p3sgiQJZAGBiZ6VuJ;;ACGBOQ^+q+A*>nFL@j|B`*~N9?E8;BadMZ%g3eQ;6 z&f}PV=6JYmh=GxX9-&LNc>pbpqdXokEo;ag(N7@J3N`H|nbMCLK`j*Suq)gk2(Eu; z+*-+cv?~lBMnBx;uV+{A6&1c|&l7ep-=Q#|G9nUx7TlYwP@&H?@gy{bk{eR-%DW8z z?Al7Q6>ho^JhOZ*N)0nnVWWxSdeR@Ht)1HTw)#>cR^9oqbs$^#c*KnGV&UE!Hy83l z6x4Km6Y)`YFh%IN)9hG%fs=`gn!*rtil31U3|O(elJ90nnfA!}@t0>TB>9QX`_Tb= zNxqj?uRP12^ZH{0vZ>7@qi+XREBaN$rEOjY3k@GU_>~s&zwj)L(wh;EK_RetME~ zRC+njPIrF4LGfEaRjqR-L|>=PrWn#r?fV`pi4c+UNDuQkJ(+Za0k>J1x8aXy7IQ2F z#6QL4wNA4H1CB-HV`F|kG(rI4v#_5OM_Dbi%~M5l6eHj&dwXL~LM-v>W2j53&QC2m z*PB~?OiFHqkzJOQ5(0kDpt(o5nJpGf*R>+Yne6f?V{|N=me_?qb2@{8ZRsxT7P}NF zRJaVSvHoY>k4ayKB%{oN__jI&P%GAURUHmNa`U!Br4wooRWqwprS~Kv1Y*ijmvS>H zy}9gzm&gqaAC$(zL zVBuK~#L5N^_4O^L@dY0Ocmh`*n%SEay}oDYj7N+$S5M7lE*Ym~s_Yf$RB7Z2?3|v= zoFXs(NWaYsZ8PZlz2eTKf0cA@_fdxUAfq=FV#d~&O2%;lGqsm+x1Z@KSB2epiT=!o zIG-a)H|n99+4qs|Gac8Ej09L)vNI7Jm9wGpNU(!Gfrc^t{Vcw6J zeM$g`JO+V`3a44}6Wf0WmEw`Awg`U~ZFnQ20H-Ln3?~_V-geF)P4-@ly94T@0ko*3 zp=ZWG|Ba20S?da0fSkx(6)VF=e@;zO&Zqfu(m8&_pg;^N)g80z;_5Wio?xZhl=!Qj z!DBe9v58zL-GEF!iFo+$OjZ;`Ubp`<{rs2A79ydvq2FJ(>5pKOnX3kgGg~6}$5x(* zA}maA*GDh>J*z+rs`1M$1|=V=t@oyzRR(+PASi>9vg_ORT_0@*`q%odrDYAo0eu@v z9CsB;13@R)OtS_T4;GJh7P+DsrX@{TsJ&#gn`L2u)Vc2lEC! zzRL?)+edJc=3Tm|Cc+ifc$u26z=Q(hPdooea#yDTgxvP0jXq!xm4m9D5_h`(ga|q- zcj202O9oz;_CQqsvP`)|iaj3~C$oeCY`-!I4xyt9xw4p=m}yWDMdt<{WwEQs1u^2- zKDs>3s+hdAy06-348iUtvPEUDmwbqYNBj8}C|O3|Qg?&ObG4b2dE2c@va&)_&Cj5Z8|4RTZ6lbeZPy zdGK$U5xs+!wt{K)E?Kt=yWEslgZ)8SX#KPo10(=&mp!`&`+Qns=lG-Jd#vfVI=--D z+TY6QPV)vf;y%AnaOE{a189aDyGn&=29&IGvo+0h{#qO7<=?1rx-^X&oGcwc}ce?LcSjr%N@X@yOz42 z8Y)J19{lxQvw3UJAfx^CP&32_h*Yl@=+W@A`fI&@^G*sJTWPQhC>i)F#stnw{Gx1{ ze3d6m8dD+coF>DAxsi$Vi2h^tl}QzO4%_AAS|;8;KjLOS_d!x7mSSZr8um4eY+unX zrvKTP&(TD?%SLa!yTQY7~+#F2}61BGf`^2>5uAuY1@4q z`cYmfqv$KEFSSVsZ8Qp}6NnpHmY$HqlnQ05<*yw56f>It_}Vn!(;D4Cw_KBfN=Xid z^_~()4`?}b^ z)pXVyty^OOUmvFOa(kLey)^piv-%xxjnG8ytpDb;#yLr2F1AlLtm#h@kNc9H0Bx*$ zw{OWO`HdT-lqEBE{lS(%(hHbiKtUVJP6cFcC^Zo6=*mTS%aBdT0JUXu@QvlB2 zUO>u>b`1c&SUxEAE3y!`lBE%ZfgldIGT;Z&P-cK8l{%0>1yp5;ZJ$34oX5Zy%s*p0@B;fhC* z4IqN=LQr^4hoT+!fj!Hk_pSE+CQk1n0DfgALbT^k;aUE9n4Grq_%2g%!{?tZSi49l z({-i?2GrJnSj=dI%u_|3TuJA%yZK%57wvR!mX|@l`owsD@1T%wpj@nJckqsA{(d^w zf>$#(U8A9k9n93np)Df;msQow4j71w99Rfb^)qA@k*l1BhwnyQlk|;ik*Hp_8yiuU zkBWu-ik!eK!5(9oQ@x}`EH-YEvFEZQRYJ(=&IdEh`aR*MY3n`dkEKjAI5c|R`WTvd z`^?H*DSb^Y4#Lv3AAZX-0b%B9yB8%-bmeAkZ^cw}e@~*#Q3&*7*PkHEw>ep+u1sti z#$XqLqi(DN(fc{jS0XXnzxlL1st)@;ThkN%($6A+74mny@eB&RN3vzmb!L4_N8U;g=R$Qg_1V`4Tb(2|6=D= z(M#&`kHzF;3O{o@rCH6Jk~?lSlDvM_&c7bC)bvc_-L>SAf zI%%62J^ekye&-_KzeqSU+wI8Is-YYXPk^tU{(k*m4&7XX)Yjw#k@hKH?oLg5yS0aZ z2II+jb*sIqLcJ0hr)cv_)fZSr9m}42ytT;;@ca^S^=|#&#dky^_yz-;6_&RD;mJ{- zS;q6)^Gk-gid&vk)3@60DsW~Fq{{gd^W*&}M)voae=7Ev^dAyMEU~UivHMREIUkX- zfdfL?+Q3E+e=m&u4sqgJr8Lp+wG`cNL192T?y~cy9bOIG=g;?6|XBl-Y4#00j&`>0|VD2ydL~wvd=uI z2Y(jXuKY-n&zVF0bCXsQA%;Q~O^GArSJJV7nLqVZzyG6~u9_?$Rd}1(d7TOsZJeY} zqSKUC06s-Qxcwa0h?aSMl(af0 z>?eE81bE@yPMp`r%Zh$UTYQrC;D-hi^E&V{W8V|yE20vZX`Bfq0cZx)O3V@2Z zn5|4zWy}6&&Erg)&Z<Vjow%_{wtYr(VpYRXuBLar$= zptIb;^N;KtI$54?Jv|yi#;)jZAMLITQI?n&+_i_3x5xZ_t6ip6nLaas>P&NhpPv7^ z0V3ARVr7y<3>cK|t@tN4j%_93BaRkH!MzB+e}VCD^`QA%3x|&+|0S#``42|lCRgC= ztKxiF6jfLM{y{uJ6##&EqK~@%W5maAlE%E&brJc$aQOF~&tUw&p7%e#ErtG44hkXp zJ9+q9;(x>De_a2+FBlj9WnA>%85#d;jQ;mU|BrV8OA_mK$LjX`{w(YMdwTr+^8ar) zl!+uResSo|vHWsm|Ap-TzIN>qk?-^Jd%6Rx@r;cBZ~pq{TJ!c_G=asX*DimX)&KT2{(-}9sQm+nGuZzFhkxMkAGY@& zIQ#>Lf8g*R8u$ke|DlY3tiwNW_y-REp@Dzk@E^+f$2$BChgrD1O-7?xt+&rqg!##T zW@_S+Bzv2E-y*O5J8O3iqWTs>|Jd5_;=i-&-~#gDmS>FYfB4GZ_cba$2Nd{k)4hL> z&uC~XqU2n_@@{ukFi_(^gc?n5%@rQg<;SkhBz~ii{5OF?rx^TVfY=9wi}T9lzgRQk z9+s=buiI8CO zKZ^Lj`Obe3@ed;YCn7j6`@Y#`)tsG19@M;^YHr&5DG=kB4%i=_XOhXiO};S`XtTDQ zT2qsuy#MkUtC}`wZKJ8E;a~&E6}Z~XmtW*QiS(LA_!cI7aNgaTD-z;XsUJL&cEhX9 zj$#yy4yHj3b>qyMF|WClT)hKD8^7oUALJ}e%x*fVaRhZH5tqN5@kQCv;i2-bX!vNn zjv}b_VMBdqswNpe4Pj8?wb|6Px16rfuZ{EA-K1gCmk;)unW}eL^BjoRtfouG7g>-8 z|JZspu;kS%xi(F}(`w>w>m(`fD7IjIHd+K8%v~ogABHnLCM(fUkE~uQhPz2S*6imK zn>uqH8iOArRkpw)S-Rk&GJ{= zZ%pKB-7iJ;HU6f@*EvWu+xBVqHZE8kHv8}4SlSn?xU$$CTg)it=@Lo$+rzk##N&9C zyr%0L_FgmIpqW)NB%c}z1UQh@8)mIQJUF5h~4W3N}Q=Pj!H3f%uB?$(pT_!#F?e~ZheP1$V zWhP{t`_+xwxU-pSE<)v)H@0T@yx%dU(R&FoDqLcQsP`pAO=#aMGZlq4q;XVC4t|L` z@-Cw?rjRkP+Z)idF)N6=9i}H{`kIrAj@DgqhOJieqI<@^g4&KoTq}ane0jUGS1;9n zXj|rNZm22*m&xzbLBFe??u2acFdU5Zik|${fwTYxluja^_|0(^a|T;8f6|1=Q#6e?|Dnd|QVzAExByJ32JVKm8#; zCh-!xP)Ux8Yll&X;d6xY%a0_1x;=b~pxrHHV;8Kb1bbw|;3KfPdft#wv=cY^!<%O@ zsh_qvm||b9s=~e;D@m6J2;;a?dY)W=4!uXoyqckWlHhca{mJ#QY44mzAAR!Wuu8BD z5n&}2Vl(#ZQ23)CbFwhP?#fQUsQCVgf&;GWY+rEjYf>vU*?WFF z$Ef1;!A=S&Be8XDDWjw5gWjOB-*SqGZtCBQrY!f(xru|mYN1u?dnjCDVlOD7^a95y z^e~V#>|O|Yl2%Y#(U_=~uAs6Z&fP{QL*FxLbO+aXH9Tm+%@g!$WowbkgkeUo%%krnL%^Rs+)Ap+$D|He9dQOwq_Heq_v4kHh1Gn^X-gE9? z*_pB4web6>jS!sDQ{9lON@>ElH2#8_HK)m&nEB~Zh1_PkWUO`~<3xKHoor!{MEv$d zMS~u=`6;3mN6(bnB`EIL&`~_(Ps{F%j;=YfX9F^vNV1@&+b! zhb4(_cCt1)nYJJ?7txkBfu#e_Y_LqIl`GvOv#3eaz;Utu?Zd&uHEZ*eqN1E!LYk6? z>)HnL-~qnT0914E;BpuTiwD<~FIKx?C{=EPEA#pV;fpozzF@wHL`mSM8w2v|gq{?4 zJ7FF_QwB+z_%wMgysGn>wnJQZDNgVcXyG&U2{_!c$~Db!jP@WbJA>wHu)1<#ut|Kh z%HDG~=sVYvul@bLF`p-qf(LV0Yjxj^g0s@FRMjAx#l$t)o~GR*%7dA9Bb_804*9|i z%3Cqfw6xt#a-_bvI8E+V$6edhZRV&B!ilX987aa)dty@x#xb3=eK?TQ|D9k0yCAh2 zm2KhEoSpcy-AcV>XWdTMMg*mEfekz`Nsgni-Tq?1O{>`JW{_P>cXGu2v_3U0 zg5SzhYV<5{zR?22u{o9~!SP#nHiv{(?b|!pkzosy^6&%m7fBe9S$&*nc4q4y+F{2p zfAg-7k1!K(=`Dsh`^xreJo5M;EN7%*`SDTu zBSEn%cVFgGA2%NYw~TEsZ2Nhmrovze)!t=J8F;6!zj{^y^vOeQXMNmnMyPBVdpC@~ zp&EBI6^*ZT1-PxQEFXP7*!IDvC_W{FIq;mPeVZO9KB_AlA>!rwZt8SjNl##3pNm1> z(=rt#{}DOewGFpNQhuj*hF)gF1UKPc_R^$(8?stTnaYhTLrQAHt(h}4Ys^CyMkdA^ z2J#j!HNmR9_m@klrtTn9yl(QN>_%bCQ*Sn!$HvVDWYPMoJI~9WZLFe`-p&o!ezC*` zG}~^j-E4ij`Ua=&pw(qk>f$M8_(Q+H=tnY$WX!Qk&^yPhjuM`cSCwnrY=8hoZ~opd z8{2x59L_HR?XC!ycz~M%%EXt+drnKB;pSGrs02nrG%z0Jcm0)>G^P@;Rd0wd{HX}JZY?p}tB{;wXT|pnkE*Y~s@MXMwRlGXpN&e75 zz_+3&CgYkzR=;a7i2g`k)vIEnMqu2<476t{8N|jKu(qMl-^#BY0LxUVX#cP~bt~w7 zZ68VdW$kD=UZxe*#nyAyT=Z&}0~zlXiikV2qbzU2$OyzZb!d@C(~)A?#kio|A-P0K zqqgxh{UguLT_0zrSF?>`aEtef3?Dz)Xt-K z9xApZi=0SLsiw@Qs<{eZSN61s{^Ot0voccyV01;W}b7pIiTgMN50Ee)-(9> zZd4E*Y8`L@x{tbZ)DCz6LdY|BEa@*_M$I(Lv@8=X9(UnP+m*0uLc-QVAc%u2$?980v5TSq<@18T2V z0VWdAJ{amG+akoN=3E)03W>WV1uSK2ba})J2Z=TY)XjyF1gTDoHiCTCh}v^%hNuAU z*Hnc8qOrOzsP`pEqy)wSzgWiez`#`4(TPPMkS-xrWk2&q7l_kul>w8n1OL)TM-%V2 zwfD+=`Q2dXn%{K|Do)g4zs9FDw<7ke_w|BP)iVxh?Mb!C5jpa~^^R_a_H?+Iv+!Lb zD0n>CEFb{Vw0ja_GoISXw|C^Gu-T%>yoMSA%U6%aW_7UhQ$}t8gB_$`Bd#sYCcE~E zMjv{yK`K%+ZZ@!sA^Xr^zYJ#dF}O-@GyS6=-uYasU3tGy9O4W% z{FL3kt`g0(8L%-a+Dt4&1FoJE`XnQCdC+?2>X(h=C#(P$qWzlm+fsnIgt%(@)KTp9 z^R(2UV4E8c8EqUtXkZ`FrIc|Hb#hE#emv+@YhbIcde=6_O$iyL8L1~ z8?LIf?J+a_9-&ISlu|O7Akg@STjOKPwOEam#Ycfl15($o4(j(2=6v_SKHi(4lgSAa znP5>(%ui<6#XDn*o9|hXWd}27#f#3RR5T;4ShW5|uVRVYx4m7YQ_HiBez~qiNmSHG zYeXr%1>^$l-RQ1IpwA;o4Gp`@92PTf(opt7vO5sZiQJhR(2A`RX-DH^k%)8fv7eU# zm6Y1tuuNnf-~sxkW1$HhT%vnr8ri@~_@r4QZYSz)mB6Z!IWX?Hd6&wF({%HW5TmfXY3U4IH4hspIPBh}x#zAxKU5Rs|=W0q{K9HW4SANJ5cPP!Ha zyZZ3%z;V4dLrpb!$cljJv}NjLg=Ihl-KYFa)uyK!2sPxLE4JgJc=#s??Cc#L@CKy| z*kL;Y;FKY<#A)TH%L-MSayw(N&EttQZWDi14CAUdJB^~LE@x)}i3?=a^u2(tBeam$ z<=B`#67p`_@I(7|J{tb=H^$_B20$pIPU(3^xnyf!m!DTSh3WnRpJSMNO#GKin#g=g zVz$f84s*?umD*ThC>4apn|XVN1t-ywk*$#zhs7lx^Uc3*YzwEL86_r=^Bd2MVh+GB z;a9{VD*Zj~^gC^>j!pG<%?8=D8213|i#W7AWxjbDqjR+RUY%x7AOH*ZX}ukEX~gte zw33{$XxFSWlesjIriHEEiIwbHVP;$UrE{5Lp@W=1^#Cfe!Zr!M7Ofl`dc|cokS}w$ z{IyRahpq~bOMj69KfLNxSz;Hg_(Xe^DgPpZJlNIj#!<&P9en33w?)Q2hg~UGPqH=* z-7MgAzT=5PX}l>|lzZvtSn7eKhidv(>X&G=BIJgD<-=EUV=8IU9L9~g8H5Hl4(Xz5Hx=c;0PCtNND6eoynL1O3Qm~kWjE2sp$A0V4>!8hk zS9(xR-(aZHUi+rR9lIM*Ar~;ISnUda&$*tSA@HFx=743Tbjehe@^EU$tb*wwq$Auv z`mAP|^CBr)!<{bPrpN-;#XW}U>e#RO92+y zN*mIJq4OP(y8hJb#50Z*E@Iruz(0C9^j*zwvBB6$ojx6vE38~bhRAx~WrB$@b3tbO&$d3$VifB?| zlX$16*CE6%iZ5_lU;vc-%Ib1ac5-nZsNb*mZW$sjVG}=hoQCbSLCju2!IZrPdZIKm z8%@qXY`8#a+@qbc5^{GI!@Jvnj#0##Cu&wg?g}+Y3}_J>Y<<5aSNfF8@u+|J_`POJ zXi%3%;F5T?8M9q%OJ0nz)Gc}Tu&D0MC}q^$Wayw!#BLrCWk(+;bGdXwV91kwvhE2R zx0vB25gw9i?Cu;tS2f_X31};iAIAY?{^)jGMtEDwXHEt%*xeo&)c8if&e~6C*san@ zXk1iQYH>KR&1sZFA4}4+-_4kBo|Iv?;jrKo!NV@y?U*^ z-nF}qgS*O?$0N;D7r$7lq&hS*+BGJUBBS{H+zn*$`zrv>PX%|_4PCkn!^2k8w^A8+ zN#d|y{v~3a91nC0@l$k@YZAObD-4$u;#~3<`<47Z7z& z1XpWVH9yNIYP1#4+d9r&;r$s)$`H=Fw;s@m^9VJBT08M=N2tjhESF9qHQY1fK?zqJ zYq5f!adP|_i7N{KWzk4{nFL;nTQ?@u_Omp;n>~Z_0;j6sPic7a(tX?I!d{nKJNhbs z3Ey&2x|@V)P>PvGrnhIe#na7s3}vjA)!zy$6a0#MTo(UW_eVi3KCxeFe4+o#GC>a9 zW?HOaY>^G#)v)i?_SEf6i+)C7s-XAI^Dpfi*El8gZ-tDYy%wKun`LS5SF(ki+NY@9 ze_4n3PaFV9yKLZ65k9~x=1{}!SzCt8pT53Dw5{nFTR z3AA2#wcq4N5}dGkI87?O)AB6tfqwHT|G=hQeAnLkz^$_7I5Ucuua1bs91GvZqqiH} zY7XGf(7?$d~Z{wB1L%YzQk$ZtdwD3_a6KHDDINiS{yhDJ}US2H2Cnq7YiSE zr+-%r<^~YjVk?n)V1PpoiIoIS3O_+u6DwWan!}AXZqvr`=T(@4pi*K{QOjamrxrU+ z4$-A^J0IA^eN&!3zl92QeV!0;v{ZRdeh$S&CwFu`;h|`G6TzSn8?#Hd`%PL zU<*i77oR8^mN{CZ3N-72hxOerYxMq^*)GdKssy6!XGA&<&Hae~7{=g-V?4P=EU7?AE->`|R)u3KwuCW`1V@?BeF8{Pc~t7#{sj@8YH4l) ztZFm8>M)aJo~RqNh!je=9$=L@Qo}=Jg4ew`Ywk0D3X|GxRT44bZZar;Zq)ZZ?26oZ zzNyuXGd(9dwJ!k&X6Y6JvIn{6vKKTQ0|!?eXA~=#tOu!PXlpkySV2Oy^@}k$1{e_L zGk@Rv53}X!EM4M#%=s(S1rTZqipdQ)UW4x|(FM@?Dl8#vz56D7tapaVSg5%Hlc20A ziHjuG?^stnrCU>L!JEmKPu57Y0mcs2k<##kEC_l5*$A02VUUb&md)kULn*Z?^X{pY zq$&ciUe39!c$-Ct<)C8c#X!gl+m1t$)sl|4fw$xov_Cykh0b0oO2-Ms(qx?WrQHP( z-axaxg9Sp2Es|_MoBLG0Af-K=>vR6pHL6jX2UP$nQ7t`HXQ*+-evF!ec2J&Y8rK*L z{+8V&M!qO=dLVHOOSv{Ce*TKDLT)U(H^azjs3`q#pdvE-3@n??vY+vPx?s}1nU`r% zl>l1H9-0Har88M)8Qrvw&Ez~kcVLkBa*cdrz{>sDOG_+sgE+Me!{*nx*J`TSMX`~4 z<1Ivxa-M*|$yG9q5KNb?`%pT%UBZ|sCRiKDlXbx(x+}S~b+5(;%ac^h{j@SH!l1b( zzvr@-Tm^X0jDy!+jRLe3&>W|SUcBSuv9xm|CEf`-#y`lk+#&AEYh7k zZb!L|n+XLjyi9WQ^yvsj=F>{WUYSdy`jA_dO{ff78kuE@gr5$ZF*vQ|AltB-t$q>( zcY&LWs}t}Ce<-Q!_UT{M2YJ`!^J3Y6&={<&g?Awc9>N)p$nOL+Y)tL@z+11z8Ic#Q zpb_)a5fzJ?WK$Q|wm$A}Y0H2(dGv4TadD?7OY;wQue%eO3VJVS(UhzQT1r;atyNkR z>BuTCS8;v<)C27-G&e=pd)NhqBBMrVOX}-g0%KHv25VG*oD%fh{*8X8)?j7tKGV$(r3ZDL=OU!X!t2Ea2F<*T z!*8JuKKa|Fh5{VJ($!=YZO+&2{rvou=no(21KGmT77fC(+rI_^?}!arKcYN(%;cVA2Vh&yp4nC-|BE*$ zY`vxJX4jNv*@%kaslV=c%}_(_8BRq)wb>lXz)s9}cC@ut_eylB4tt&kjSB9SIlZ{l ziW13BADeght9bi8wS*m~=pHrbBEW5>1@3^ir>ecgow$*T=Ps|}XsRLo=_{Ae_%vjr zNp;xivCQoS43PMNjD;q>UdxxvXo{1<99}y zOicHN>3g+_GAUx=V_Zg2Op+Qt#ptnm_M1(Un7YGUBN~EjjD}yk zct<*Rl8}79%R#aL*@U!OL!)HH7VfX^dOvb09S}8t$t#8uyxaz^ONvkKk>IPuibiX zE5)M6%1{JUD!g*(!?+d=&!|RZ+MFsBq*~~$dl13*AhpS)Oh{bK@!L7SORq#fEXsQI zAw0m+EBMQ27rs@ zIA-~DzHe#h3ewa>L>D6Gdt|7JSk(Gjxun@E6+CjAiaI4yZbfiT^f-Hb-5X9s7Z`Hx z$qc2U6MIjROJgM@e71Xw`L}a5i$Le=8%rnK7O6(Fz4$lVq^6xdD}CFDl5sWRO8NpcUABwB@`(6w=V~-hu_~WZgwbV7tz*k zi|ebM+xu+P5(GJ_rzV`I!rRva1I)VL$GN{^?Kt?+pW6Siuks6PhV3=LKs)dNZfuzB ze;=I7dEC>TzZV_?qUI)Pwu!&PGT0!p*S%BY&PGbdAmbYAIdwhTT1DcwlccA zvTow*AJ=P8>w9B{VqaHzHkn3*ae1y~3lMTXrC8F=FD4+T3HV@Rj_t(Q&qNMOpmD%w z6xZHaS`aNcWVj#aO-{mC=dHQg1+*&@*_l5KT@Kde2?vHVsT6f}z%AD|sw`#|;Tch& z&+tL#Cj~GGSy8gFVB_2e-X&2VuaK9#dU!fm_my3yK~<^4gzmtgz@Z(amqJwlL5pm3 ze)TFiuGvD^b_!JET>Drp!?<~eL*u}7HXmOviU)j=c}oZws7TA14?9ZkT(P6`sRtFO z@r}%+b6lL-o%HYRuORamDM3F>r*g)IyL~iLz_w(|CDI*K5;Wgbyb?cR?Sc~WV z2kxYJ;dr7OE2jIV?y`($yUWRi4<+nfY^bw{?y`(Vk{+za7vj2$L*ue=)(HWhwM0Qu zQVLbOAcIjYxzzOHooA7QJ=S}Xw4yI7bW4}W^r!FaV^oH;?4T5B2KNdd0~{nE%K})d z?hx;W_}_1{>SNS8;lk0HIROX7700iAG`$ZFgrJmNEtC7C<+yD@L8%;!s8MRJe;RQy_c{5X zpHn8qC~>F*g;hZ{+*X8Tre2t+mRrKp1&rdMX54FLpxfsw>EB%FO`7_}!op|@PTA3ha!-=(wUAtM)6YvUtp9;Vm>?&rBOnG@}Ywx(M=}lX#6B~1% z*6A14oTuL7I9R^ZP&-Un>tmJ3vswOrx=2`iEe90;&8b+MB6_f}IaUKmm6YFbk|QZJ z=mLFs3*u-sPhC;RH0m;Aum#P5+2Ed^Mr*1nn z=8+w>ZyTi?j~e(-nq{#4)HU!Ea9*zh5xIJW%T?vJrTkZiFuVB-8#k`g$q}~XvD4=7 z+19xUdlyNmVA_IX*F3%pXcna9+j&1Mc%gx~M8aqJFqALE#l*vCCB#p5l4GfIYfeU% zF7W}|nP}mZY`VA>P(P@vRYZp5*mRAJZ!%g)K0{JUzX8mUFATrrvAk+*K;FF3_Ldrm zeNLLjZCkRQv`VxRUVqhoihL8>&tLV`XAK=pO8t9xD_%Aj#=}ZE^o@ohpCCj@ zABbibCi>`)i;&uHEO-rs%~#M2ARNRd)lwE7*RAwI;RluHKTo5HR~dP1VIYp_dI;UX zrq~5YS~@s1IQ9UMF5T#y9WH8o@Ft5G&M!c?Feu!kb>`TXCj*iXx`uAuH}e9cyYJIo z{K3WKjdC%!mV$4L0aDft73byn#>+!O4xV4aK19_+jgWb`@zL{NuWPQdW}rI>Cs&FP z2Ne-M7ab|lZ-9unrE&7#gtiJazdvYB)S8$ z@NVb(sbe2h1ZSQ`-BEx2rW$wvYq+xGdjNjC2s}80^M+MV-1qRdo%R=NV)N5eqy~&zo?i`u%cECe8gzWpJPQ#yrjxLRXlyXz2kBih z&USh(j2A6$-4)4eP}hhuScIY|SkAIYc1J6;4H)WJRw_f9O2`5ash%DK~}BmJ$; zqabuUp+dzJP(32U(7)eigJ7w;;G9CAwtwL9YM~)RVybvu_xElPnF{Q~cS;RjkVc9Y zPOPTdwh(*x7I<-EfFae9j~`&5;Awt{paxWT&5n=dc@>72Yuc7}q1fvz*DhWl&r>-1 zo5VNLLP-igPTjE!Vk#-zb=+$2Gj(t(+#V^s)Eh2pVcaHgPLgdnxKU6*u!$2zCkc6M zo@h!&4!ENEz`KA95U7wf0yI=B<7Z^iQ?a%Q%A81di=irzm(opoOEzW&8F##q(43Ps zFCc-h!~srcNQ2(aDlu7Q9zM_t@Hf+4Z4*-Ejk4+DILwsygx#LV!eksUu0jZsqB5OP zneRx6dyQI-_ZauIyC-rl@ELLRS-4b^%yVXMt$fb#oM2cD~Q;BUAaU?x`rYd%;icX_Uf@TDq@i2%`i>a=Q*->ebo8(Xt9X= zq7T#B!UQvn+PfHiN~q zhW8WdIW#?EO~F&U!-g>-FY??VGcuDhKfpt9Qn}uVKu(cTwyL7^%6%l&iqXEV6&^)I?$sZ( z4qc*%y0Pt9ybtwam!#xI&TXkt)>|+Nn9yAJZ7x0(17ezGBf=c<#mzvU6M90C!pvTYw09hT@+?RbS5yKRq1087V99fNLy;gIL5*b!x z9aO}3yR@aL@`H<8;vC0Ig>n1NrxJ4Lv6mqD!(!1^DY^4&0g}{gQD{4;EROAh64SjE z=?4E4B5D;kmxIEvxFtIUi;=JtVT~$kkIkpXh%Bk0qazcEVbd}qTlW?qHBbsZKoZY; zEmBsT6%P!#uln!e9<|A_H)nObSC3MFGx1beIi&R5f;OIZ=-UoyA@5@_{MGlZsSsm% zsPrKG0l}Dd_yQlW%ki{+AQhTfRC+3Pv>2=FS^~QpJ9Q>FL+D9*s{`UdmWv*ANaB#n zzlM*PPi|X=n&*^>31z}1yH;9P-b5r4lrG)>Azh^Nzj{x_HDxF3?D{|7w)@!hlt#_9 zZKl#WH)It%YM~HJJb$O=)^^7$7XQzhB~Pe*c)eWfKioj2MUQ9h+ptT1FyRWDoF8Li z`+7&V`ExL8g8IkTF0}1WZf%K3lblhji9~*ntlk43y_E<+SSH+;CciBOYMBdgIztQU zwo5Uk2lnwmT`!TLF#ZA0oWP6II3r8WNmYZg{U~H%P*LDG7Z5DSUW8260!s28+MV@Q)TH_v6 zz<`IQ(`0J%yYC46?$l>V0M?oqAauIqJI)!Yu}{3EF+_|zqsFw|QV+{o7$LGRfPAwt zr|tD$io8S&zP+cObFeses>sIUvul35PDP+`*DB?+O0vG(Y(tZ6wB`HFjvWF6(xYKsx$)4^v6cg||jPALog5{^>D>^HUeyKv)9 zyEhUjJ3`Q^*%`gKK`u2zO(WFKUxJ0hWcmF@*q^KpElAXbp*siUhk0X9ca%%;FV(0u zvQlHJCESVHkV!dDIHFHKD7~wa+Fp2(bOy?VX+ID~1J)U z2UryMTpT<+r5VCXAsuYAPY=hrnOOww*B`ye|O<=d1+-ZPVMqzBj!?J5|6 zu>%jmJvsDNk1*28LFz{1JaXtO0_pcDQ)FPQGif2F+c%A!aru@O{R8p7SuAW)19%_| z3%C<;Oa%I1x>{+-xp#zobmItH+I@}Pu7`q^Ld~aC`FFc}1I9fzP0UY$3)v%d;VpWN z_64O83dox))C_fXG@!8lI=WxUL4LvzGqGpE>l5E}GhKtvp4!zjh;fj%&1y@#x2sX7 zp7x8Fg{v(|B^T$8!0kvY+~-qmIw`&~c9l$$J@ zVfi_R;M_?mn`=?lIQ88to=*ce>qVL__r}0f3setn9Za={3XI3p`xOJ`JHOKv$k9J$ zN)dDS0)Oqr))u1_x&LZ)kzi$=@KZ|IVCoxFL%n?4umg0O_gxvgYY+UJ$-UVLQor)& zyA&r4y7tLai#x8H@CF%hzDA^4qrd4prr3XZveI;~rtpzG;PqphlpGR65vNdig37e3 zD8{S+aU_%8j+Hx&S25H6yAf=3yb_R0DewM=Ds!Kd5%QXX^RjfFCy3M>o^3;F13R~6 zSCam@x!aQW+v+95&K9Z;h6BM#La7_XSnoh*@R{Wt=_7Zjtk3$EqP>D!!M9Aj{hREU zsjJf-N<76Vq3KTM+(9VsiJs*v)+WiJ z1t-ZI(&eG19uKv-PhNS2uMlUsT?O=p_X|w<{UWbqUp(g)x$T5`Vw}_PbX_pz!Ghiy z`B6=)D5AHkNHdJ2S*}B^-`Hn6eRkE4-xhy$`O0%?3}o41wjYfin`X*8v*Jj4nutnH zy~#Vgpw(<><6lE_tWU9fl&stRmQbUoej#*zq>Nu6c48*c{`N z=GE(Q|DvzpO_m^lD8=I>H9o!9McQ#3*m`epPDYgya6BbHMQ6%o80ot5-Q*^G`hJ1P zMdpg|09CQwX4=YSa>>?@N+`g!vv4^0B`dc&>VVpa_|dqed7$wVIB41`!-bhE#-0v%}{Bi7y_Nozpy2>VYn4{XvqLim#e*KvvnEq(vAuT zRj+W(%r47lS!i*oO|bGsTsK`BI~Y6JJWxF6mMq`c2V}8a?!>+B;1ZHMV;K@oT}I*WF#0hi559RP`_0gV!5g0$Cg<-vBQ#??6p{)?>?J_huWfAP)!=CFRWa6vRmh zni$BFv5@IDdFRyaz4{Q5a+_=G_!a#IoWx=Blb7NZbGze^zg;@%te8nJwe{`T-HnPN ztMEOAjK1CR4fhtggNSm;0Y_`+If+AwpWS!HQ++vPxJz#knFrkGO*mc|aE^D!6ha>k zXgAjmf14B0(pEG76ne*Q-t+Q2v0XG;1pD!=G$&T_$6HjN70-E59$~MT-7uVl!S9*u zUrkM#B}o`HS@&~*!|Vz{XMrHQt%j$LpBp=BqTlcw>2(bZJ}~+k=q2H4y7*S-#k%1B z1hDOCH_AOmI&}8TW$2r5Z{Wu}X7uZoq9wb51Y5JM{&%uAG~Wvom4@__)84ig7iu?I z7c?Cj_HNF=bu~DWD&iNezUcq%D!#BJ>*5wPS^7L)ySZ3M7}KydUlJI&wIDck`_zOY zr@1Sj+UOhWz^1+zNECwNPF8-rt+A*0>?Qg$1|w35BuauT8l!E_za?*tbi0euesR{Jb%8 zmY(F3I(o;!mk7+`bL6o~u(5_}gr}Q?u-4IbjiXtT-v-d~L;5i?k>mMFYWpIk499f@0uv!+``mUVlN}n0MWC6EhL88t zUa^|~ot$aX^^2q9Eyv+C@rB3un-j;gI!96v1c~y-bG3N^o&EEii!Bi|#5{rY;Pyl5 z7OZJ78B#p60Io}HI|Jz(piQxOk#YM|DWIgCjUESZGgd%;y>%6HNH3_IN!EAjKUc`MW(cm2ml?c(rT<$JC}gv7wt22rq(Lfr`FJf zgOAc3PpBJ=cN#?{ukR;A_Gpwi&duP{=x~sNL(JYgvbty=K3}Ch9Clo(wa%C#34S|^ z%#+x2FS`p&#EW-03a&G!QItkplv@qN;kaL=*CTu#*K3KTyN;_4ab zIk+{Ah@pj2R|#yl0)jU46hrF`J^{q5z5HBqdp$aXH5-u`p0=A-HMIV>!IYw1Bn zqwP2y0$~YL)d|aoX#udnYYig6|NI?ZkX&Z^0 z<5>_|4#UDg!QPjqu?R+jwvzj#`G97s+IUwiCar2o*b&+gYLSyFbl=iq zdiS{5Fn9;ZWE^2**czzzP7%2{5&|8v)hu+LZPu%CBm)W-&PNMU5#|VDPvknqd2Mxc zjiZ&k60U;|e8tc@LQS|ueBK~QQ0yY46)RClnS{9`D7IvsM?1hm7i3GeRyi%Go$q7i zdtU|Xb7gsqh6>`1smWNzmPc*Cs`=Ai@C~gk9mq;k-dbrL6_+T#gpp9vg?xD=;(XFr z7h#ETg+dR2-rm;9K%s(nRgdz=N=?T^H;X$>EM34~^i>cHO%1c+Oo)x)DcDG4ioa^Y z;@20E)M6rwC2w|NS3%qrnPY@4Q5$EFnE~08%Phe3Oe6o$w)C(E+_leZGil-~7y=VS zh?`04M39T|46|~|qM)YVbc_2~v9otpRUt?^59@q5)LI%-HA;md*k9&j$uIaoXg}ih zyn0vpmqe~SN>QiiDvqjD7BmGKN8PC@^6W_&H^&ak;*zzBsfGlBRzfa>&7hBMk&c0Z zP4Q*OV07mOu#$NiC;;u3Qn9Yhvlf*hE~MIb&5dpJXJJ&>z; zUHbH1d;`w_DxJlTU8ewG>kW8e6bhO(iIUU#hKCCECbNrVty@K|hzl5!Ibe0GC4x#w zGj#l(d4qw?Di&>ksh~rW&Uc0Wy=eF-%!~>`{qW0}( zT<;!Jyxo{64^xI7Ohy2G<~Fob#wHu(1-#&v^*dpEBah zaa&;-t#?9r*E~xv<|o(jy|po>=@n^$n$HctjN_rD%9Bo3_^u97@H<`sQw?2Ex zuBAn82X4haY}4>ly?T*0#K zYFn5=+b2a_qXvq2cXgHhHBZc>`}mQwBUjSEGZ13^jQEm#3zoRM1=)w(cqC-awYRNV z)jhHtA6sAGkeVDXQBaD!Mho6oi-a9XAu@AYYD>kk?xvWp=vCukF4ij-*nQxVajUJ1 zNM`H`S18AkGcxh>UM4U_ldsUSO*9FG6i_g1 zZ^B{z8fS2vbFTGfYQ^YliYjJCR@GKpBE0kq;Pl7IVL|h4Ne*+Pkt(QJ=S_2rsGax? z2bJ69q##fYpp^QWuqb{e*E@m6d=h|&a7^@jd-h|WP4k@8zx1NrI>tZ%#$G1`O$9#M z8Is_v$}B2k0#_7uyl*?(I;E~Ws%{OmzGDpdG0jWjS+bLtwMi)|keen>eY;;tD1GtV zAOfL6-z;58Y`7-p)Cu?Uw0AV3feJ43Z|=nDOq%G1_^BG1pzl-!VYnlvwA4T1B?H~! z^0`8*YHKxsRvddFn~Fq;=ZXD&{f%G0>TGtT50~9s8!K0GsOZj7H-s2yu*RLGRT@av z=JJ!QM53VmAPqMC;5!u9oKDjm*H48<7!uZmd;=3LkZ%)3Be2G2C#{G!tU6acE1-Dx zJ+Ia~&#HG`ws~q)=~Fso(;J$RtkuxoXn|j2W$0tjT#V!UGN`6J-tIfvsPzahV3rIV z#AAlw>cZ#re{6pA4n3-va|xGOyaJkw*&9Qe!kHXHN=|l1*}eGa@|~>8w}`_{B6Y#F zXuKDjfzuRLhFP2xQ`;4s!`%Zf8?oy^d;WwNCqHA6LL!rCi?9$jIU=IBFKq!;phykKHaa^z0 zw%e?UFw_og9;dWdv3wZn*~laPq#O6(jiNMxhhUDV(1< z7(X3iCTycU$E9P15rS*H&}r~v_H%X_vJIw3CuFFr&kr?NnS z2^Pdol^WSa2gGUR&e{W6jH)L~Ns}vJKv3+)y8O0k8XR0~47{Wt((cOxO<6znDRHP) zzxk!4icX&I5Z4@dIB0P@`}A2(`B_ru!s057!x54<5~!h}u3R)zX@xVNn4|@h^^usz z^<*r;?@&M@;5A2d?iIf7`JiB*nM_F0TPwJ!eOTK)Av-nMrYJP8;DZJA?15`-&%oaQ&VNWw&={3C!}wPB z_AkEq%})R5BfU2ovrNZ8yd=|qwdT(s%Y%znT zo6Y`)l9v=IsqGn?`2YRFs2KBXGH6ccR+GrfxBm%(f3NxT$E{kv7^~#|W#a#EpZ^2E zkaQHB!M*Y~*R1?sZ~OlU{ok_L{}KAXWHY2hdnKbxR~FdT(JrWT{)P z)^4E2`oq)oH5eZlZm0%HF@x1Jh5s`39;uSat)x!l4rtuPU(Ldt@0)J?6lO|f_QupL zJt$S&m31ZmodLriQOF7R4HMPBl@vna*x>?DmZKA4{Uf4C&0qa#q%9*aY6C`D|?n;-UoWXRdo3Y;K!=x5CM z7pUN$b9a`z0PFydObkVY{sQ$D_a{&yy8m(DdPh0j8qLW@4Y*RDT`?84eMs>Ke@%*L z_m`cJc&*)z+&cRZB4zjZk6Q6NB>V}K`*<-y@srR^+#ik`(A)6WYe|tQYi%r+-U1w2qgABZ89hjIorw=MFw}$@pacKK zFwkfDwtdH8e(+nShab~V&Kn|g5u40za=#xEh6Kx$wIKtR zz3T2wlD}xfVb(q0I2%h-G-Q*3PDf4G-SJqd&ovQO9^5*`_=fkFK60qIXI$+Sro8!W zX`wc)jiC)_)O5e+QPTG_3HM1Avi}x4OZ5Ap4E;D-7daNmRr}e!a_QeFxi;3}dnFsX zp0stFqvL6Ku@=e0`!^?_X>2=x(KTvVG%;g)alDHAXJy|3469l)&C?op%MR+_y#RC{ zG~8Ym?v?n!ng8HCnN#zf_aFKE!VtZ=SMq`t--TG>FYmQJq@P@PH4oF$djt3TV=!hh zK1g0VUs&}RKVp`F;v{HlD0f8;H`VAeI=N`XJFN|~d<$p$D~#9zY_EFf86a8gC^U(5_Goz2|swAM_8f*dnNnZH>jS zA*sB_*F?A0PyHCLt|YInUa>OZ@vkcrb@p_{G{2K5{c3xI?A4HHFn8gw$<^*rC`kNBUC8exPl z>>A(Z#e5t8W49fR+Y&k+kGn8d>!9)IxtcmDtH|JGQM z9!ssheLvYBHvPBh|6e}R;YOouErcn8|L*=DZ$L>H>0FL%y?1Q*O|?H<_(wthNAORO zu97*Op+xQfV$U+QNcS++MlR_10a3O;xbq{&aoU2Ym+|p4i*u+rIF_;SGchT6 zZl_Em{m@8$#Xo-NbNQy7y^=coe{+7#G0tg`UWtNZoc7=FrwIpnF{Sg$(6DhrDnv); z`;#5*CPN(!hCAx&-s?huzm`jh&kyN?vvYQ;oXMHb!vxq-JH%m%L zW~!N-{16w%PN6dt74%mT%Q&Jriy14asusP}&0I`2n+M)J;k^c8L*4X8miVWMVVmthrmrL+9Uql^?~lEu6YuV>cLcVs*kGPA zODZC8UP=B1m=F~~{Hip!fYq$@jghxOr&y>r(gR-QXxjU2>-ynZ8u-Wl@)63>udc;2m-sl3dqT;qt@k6?5jYmlZXBq#VupR;u z*MIHH@DeHkMLwMf-yn>#x;k*j+d}qvl^~WB&C- zkZfG7HS+oiGQ=JW@gZRuu>V8$Lt>@)6Y!VckigKy<-5njdh2Biq-}|{;U7CWV8n@g zx<%L*xk~DxtPjBm#O*anq~V=)^fL)XVh3>fAPe!EHGH33hpt<9HBA*=qd#wP6j0{f zC|`G_&<7-Uq~4W^{ORDxJj8fZIjm~$oM=^26#ex~XDHnp`I=9y44LF>HSlBh?%r6b zNzCV;Vy0iyagJAfD$go=#Ce0OcfivA!mVEUoQhi;{%fXlj1Zp%v!1kUvRzALJQ4jX zo@gNbTy%R@sZrYi0Y>Dx}_KtRD*WiNBT|PKScqdt z?(=~QN~DI#8_th*{GpAM$WZ5DPBp__fHdz2AMvm2P>j{}B+8vB$8udYt+l&^&|glb zj1@+_rd3?TnE2~*e)u~XEDX-QhUX-^97hM{>0REF(7X8h0Ii|Ugzjrzk7q;ewj2wG-|c`y*Pk4X#AuJb1X9S;?s{f+zvBb zfJGVz!s6A6zgU0rmf+~A5}l%{cdms`~go+0VJhV#fYz^}Xk?B?jl_l4eyCR@6F>F+Kc z)mX=LDr$y;9Dtp}EArifygFttvKeOCQ0HGs>lYnv6d2AUJdrB#SI(3A#)_?`@P3Nlou&Gn_bhW0KuYr)T?S@bI;i(nX{ z;M2t+zk+>M%L$C@q_sf}uKFeE8OCV2I=SuJ_mF$WLPZop%;Nu;g$hmIld5_Ls|0N1 zByyh}k*Oyoaa0w(;;CUf$mA(fCW>sT&b5nfTv!*~yr7CvHGKclnq+eFDfQhmno?G@ zR3;hfDbapv79k|@OYKd#e-b>W97%97L%>z4=hu!#WE{4`uN?JL+;<~nkTPd`_DGS4 z2UV)v3;#EiOlYmdG(*NvIqcm;)c~;$ITXJN;?*P;zE@?Pp#ve0&uf&9pD}7r4w1Y} z2;)3S=nP{E_41DG9G7Pt%dM@~h|gn)mP2d3t?b0R`sgK^mudFv*DSxZp}B&uRu%<0 zDO-`uJs(qLUo}V+4b9KQRMQn2)RN=ehdAYd4i0kVf}XyvpYZ^pBkJqWPqAe!BDlMW z5&S%L*D=Q9jIhhwngWj(n+(HJb}KqRsmR~F5o%&0w_;q=zeFX7dPcy=Z6UwvejKu? z#nN1@>*QTH#*PFlwYm4f>$^>6LP4K4Z~o*7f!p-)N-bgA2QSo?1~`$S+m+q$FWdS- zJEJ@AG>2i935g@AS}mtLKZh`14`~j2n4oiemLJMUV0#T}>78$H2LY__so|P2#hB3wZS>ll_4{dch_lL$9xzkz77PVEwXXu}6(oDk(17)Z&L)hm-dWshqkwD!q z-28cdLp%$Oj{En3Ssk3tgi2tCa-MY4u2#e<4q;`N6SC(Ldw*Cu_o!*nCa`8i7 ze`e_?K2LN0B&elGv}#N%ISuO{X{;JsTO-xS$P)!TsA_uzW$d9@nT2C1r(UgGH%E7U zgQ=-$R}2;%7 zs>hHqBkndKyEgsv>D?Xk0?Bca2O1LGW!rc$&ysFQ&hf>hQF5D*S@1bKL?u^x*c3)< zpgB7qiQNFnb@*!be08?0ug){vk>azMqUFmlyvnIEx4i{2dQs{n=mT{1#ykyl=)A;Y zzNleU!CLV-h$z&l>qdAzrWBUau9cVmC5$M3pE0|g&YkwkmJDuzyhm=V8N6ghKRb-O zVB2ECJavDz!}g5hzILhJLaE?${Sh9fXND25?2_E;lHS z*U1_uI|p~%p0P^;13Feso5WX?Ndd20zt*B>$DDDy(sy5+%+Dz^xeJKAD{Np660 z@IuJ$>)*R_?I?Qw>>1JUai;$bm7&#AhMs0aD=zk!;B;@sZ*Dt#Bm!&l`Lel{_r7s; z+8pl2@Htc&71^}h{HcnN=qGV+$jN5`&?RaTmXZyRy8;uX{UJqf!AXT0c~ zYHGbf8`Vz)*J`F#_0oNZrtC4v-DYUE4vO*DnOW!W7G}z(3J$DCuFN;muKFHwN0uLK z57lGg49?N{k{UD~?*;R{Ad!Jj8NXxgjzyV9yJP!{Gm%Whsa2+BQ-5qT*3V}$|0BgLX3Jveysqr*Wr3vO4mK* zc171e3|B$&?W?Qs4B3ZK>PPyS<(a*S!kWw6dh|Yx8?gOkOK(=~ zL<;3MCgo`o@Xe9e=(Ff&1krwH9XcAOrUhLC%Fc{VH-4%OIUKFFWgA&})+-&8Lkh-n z+p&OUGr4=?VH#NG^_oJbTJEKtWWw(`-L*{S1$FM6nWz?zC$ICzHhO4nuys;?x%}kpRV6k7)Uu4PeoJ6G@b^a3B9C z5LimtRVv-QI7r1Cm}4f6W!VzE8Sezhm0e>(=6=ugEc<^I85m+ujQZI6?52Ui=Us}|h&G&p*2i+_9`lh8F&mjH2$i-t(yBz>@w9!Da zu7_pCfN&zujNn5aI=RH((D&tR%M)q%hxD!X8b>uz)ksMzozBF5gKsi6wHN7S4oCOg z&DyaXdPiGiXPz8}Efs*>x(3Fh3=P~PZm*#LbSZi5bSt!eL}2u}n6>KzE&$dLYB*WU zky)76#giCk+t8P99USZ5h*k|-#eHC5q_aRf%tBO_9Y#4D7)5Y6c)mATtSIBPWg4tO z8>olBPdHCWNMHl&odLMs@!rcpe*!uLflkf}X0-N@x;4p3y`W__b{9wcq>s^7U(-m`tzJ&Dr1%RCvk&qJ zXlidFzQN>;Y1e4i3rHEx#@{65iB{8B*2a@%%NdHz65)YBHfbmoNk>F%{c#GjVejRm z<#iOdG8P$4O-;;V86$6KtZ;}Qy4NonW;~#0(lpt9nM$c@TWGlVR#twsFa6qS3uPpL zsKn2Rs4S-9%HN>L4;|DDJ%l}BR`k)UVz#72!y&ypQ>HC-sV6-G=}+-?h+Q<(^@i-R zSzxXb}phWQ1Xe^BD9jBIZbT3}dc>T;4_`*YSsXy}(nd1W&$G69K$)eA76PR746 zd(-XCmd@IUI7kPPyNy8v%b>FiaE;-Luj_A1xC1e*>Cl0Aig;Ap7s^Q_SxoEIb zFL4c=UlKn0YAT+LbTQbPeLqN}@Uo&5rmkN1L7LX8GOL4e z>;0YJ9b9cwZjal}#~+%KK}5g|WU9%)Z9(1kZKvSIxRS8sa?T#f;-axyv?k0`h4lVu zyZ8=(_38*O7NzoORbc4*D#zVO7 z{?WOpL+gX!)sI55l6AK6TyfpqH`k`?qNu9}E*%aTUa*LZA401AwXz11*M*+smsdOr zI`Zh)czS^*?6PQHQj$ni90PT+>~eA6K1z7=WyVMcRHJpax`#h`g_3xCd3}84&uOQU zsh|4Bcz3&MGU&dV_(`;BotVBYS_SG3t$gNQF7#Du|HJ)#sO@{a@DlI}X)r#GfEMdc zxo!CfO9OmHeE&41WN8o`|Kqe`CoO4pY(lR$Jvo*MY~T^7OYN3Y8%yO- zVa&R=9Pav~+CmLm#B089hSH*sI2?DREx6aRuEIt)J-fqd`y5jH0b`J{=NVn|EkU

      e)6~UcfEfANAPAb00Lga_ZLTHR7swM?dgiJYk9qcOsAfVQ6zc$i!cMmN9aIl1+w3rR*Z;$5hc#Mc(Ii$zBrE9i771PtXZD#S(;9y>qeya zenfh;%ukG$=VV=DV<{DzWO^ zUz^TzVY^48cvPE_-(+-m&f$?3o$eIsk8tLPT2*G=T>~4s*HdKMgPXiBnBcwbjsv5Q z23^Yaf$gv6`d+VANqHGI7>F2-7wU7UtK%(HBO9g1t|`)uZ1#F>Mfh2VAJMtOi0-18 zbyNWL7Rs+0mUbAXIqq?Oq%&|+?&R~_+qC5F@#@3Dwk1_mn*v1bwy7HEo?EyG ze&Lcr z);Zj@su#s2dw*w(ss?IzIzH5~=C;SNKL!#lvxW+-4Q1DDW{R?nRPKBqt7|#FS^~N6 zcO|5Ey&o$uLBO|Wj>G3|Oen(Y_%&y;WJhoW8qDZ)U%Euz1D3?i0iT525k5=O0U!uyRA zHsFx2HWD`J{FeymV%g2j7$S($E!&BwWgU~(cbhZF>R0DGO?>eJZkEq;=$OpS%M_W6 z@o=T+mU=kPZrr0(nn3oJ&QIs(pA^RG61u4(M`v?wsHTT=4Y&?iDmDb{^JinHcWF$8 zLAEowI_1o30bHYHwbGg2Dk18xFLl}2xMKH(3eNUxDqnm;BUYw~51gQ|@R%P)gDA}j z{i<38OeYx`wZ7BO5TX=~9Q~DjcZ5*vs(1y>U}@1#w7!p-<+IDRY@aOu!Bp^<=$PnE zFuIzzzz4wX_ju-lF+ER)P#&S2vHB<1K{ZA7DCv`&#mESHU zM*S`8;YD04{_KuT4_-~j?ntZzMS_C#fHtI$`fDpIOoUEN`IW!Ap3P;F!EC2%e<2e| z?BbXZV$7kHE_t(9QBe_Vf=jzdbG=t%*Q|3NT$Q0fw1-JkGMyfTKWEcX^m#6%Mw8o9 zyn=yy%Sbe!-7i=STDkI?wBavcP;l#rJD zoQ-Ajm^YGCE_XRP6VzMIOkXTxxo>@K`<$1@SpW`M+7NDkR!b4_S8(UUDyD}q#Fi_G zXdaf(oYN8Fh$huK^OYZSh)4)n)yV~D?ZNC7s@V!)4&aC)w3X4(_wEEL?~-audEA<$ ze%NvQmXmmj=7Ne%a$W9x8<~6fx%saaB9{EoMhN|?$gEhiN-Ubwx@;JM#S=_0SfO@`v9A@1C$}JTDd#ccS ztm1IlPv))}eIslN=zKvV(A_<>y8WuV1*naIXpJw+Vlvf4ehYa&3R8dE9D4t9`zNBt zc+|maNr=`u3~BZ11Kq0I=>=hHt+_>X6YNK2mB+}XMzkfhP2pZ(Lc2qlx}blRD;J}BtzI}Wy3r*6Nziw&8Wz4UwdYur7(HcqEfFl=P2`fh<$uo) z*H*pn+eO#W9&zR3f=+I_Iv-|AJ|yN=zl{3aG*Y@0 z<;>q4lfVR<5X?!^uq!5aD*Gw1x7;t~$UVGr7?e0$UW?lFWO*N&XejElEy7v*91#ty(@7rR6nKovr_yD!r!+sDPFm%=VXWHVPqNilADHV$DjadMYnCsf zq?lEcLA&XKhj`@&X{=9=eM<==~N3AlRdmP>!8`duoxRJMO^zF1}5hYp6y~7@g z6L^;vgebEfirb17-*Jq>YPIt_Z+|48jpeOqu1k?VbfCT_ei|r50ERYtx~oR@v!F}! zy}{%Zf}dIn%O_#wvGhhWs>)&)(p+I299&Ucj}OX6$B4vl;FB+^P2yR9QQ^0YwuwEn z#*t*9bB)~V&l>L3$dAm__rAX<+djMD_7`C1!y8QX!b&@MJ4XGFtiH^Ut_uw*Nyio; z1c;-GIIpj;oa^#I(c&w}mpWM#otO-x!DUj<`!gwLCt*_#>~YRnquHNk0+u%6Tq|8H zoX5uv=XiZ%b9j5Uo;vvg*XmAsCZQ{@h6uL2jPpl!oY zWO-+ZP^(1;L;lJI{*+Hqt2vfb*#=-s(8;hB&DRo!Nd7c=H;m8*goFyeH7gz?7=Q3} zCkv28<$@e();%@;7OQ_tK?!f1Jwt_~(E|!`DATg4vYHEfrx*jD`eH7yH?`k~#j|p_ zAZ3PCqNTn0qfoax2-;jg=+N~luyghT%cPdsuRbk09mS2@ zHq4B!uJ4g_EAVb>j~Szc)_>u>KOUO=hlSAq#jG}(Ekj9+R*t`?D-kP1r9(a+A?T82*tbZw-tE@{Bk(tYF_xx3auFJ(cKS=`gvRmOj>A!ofr@mhYReNN`!#3^9RK`o~i6g|`Tj;u)o& za0C~ZWweQ+cNk!#p`GspZO5M{ycAQYGIQz&k>W0f9?opr-Y8kKpTf_(z4A>C=|w5; zEhb;DqBIQypZ7dpy!Qikv9D1(mU{`rs&-;$&h9h1lqHF5&ll?_zde_Iq{pT`ku$F@ zz6JQKSTkOdc&#D60GLDkv3tc3Q$Lp(BHf+vOjn%HA=? zBy^KST!&ud)%s|IcLK~P`pCM zgmzhKnZd18v>%{_!67oX_g<26_ODpKxq9R@O@)%RSl8}EOUTVjJ_Tkh`+hIO>I?{D zb*@)Bn#8Mb;U9>(o5*6gIJ>Fgp~^Jg%5OTazi{|*=6tDMYO~?adfXqlr8p68 z1^FnE@x`_) zEH|xo;8xXEm}pr@UFmH)I-hO#C~ONVU+3;fLS4)~LQ2J(ZQpH^w%QI_8|YqB*MF@T z4Z+Djol~18L6t#6a1N6nNqC>4z_QWOMAOK!nzGl-^>wQ(k@*6O+Qr5?r5~&=7hg(T+u6<)|HHbl4x1HxS0yPqAi2}J!wm}T_bti3pSvE~KtoZ7l z8!xp9oPE#E<6q0>LNJO02g=QnOxJcLPyT4v$2fhxtHk2cglN~dnzjqzep-f6|L`T4VrFXCWl z*X5pp;~GG*HJ*L{KF_0gZn1$g#sW`V3eze7!&yMXZNg+tJl}KsjR^DP$l$5~t;VUM zt+u2hRb8cu8U0hYVyY@2GXad7@RY1vM*V%d;$291NJ{7&&i z7v>ty0%gXN!r;E{Qu)D62(>_u&Qv7+ZQdybyM_D)Y|xtmh}Fq) z&D>8mSWAr@Qs}oL5c)Ew@W?)rDi zEXD-pps;-0lG{@f+FBen5bH!tyFoL^m#2|GjU*Kt$a(CZ$>*=1g@ZvC+;d_H1#^)| zy_>gjcb49!Q5qS#LZ)E5&QI;Fq?}V=De5RZXwS4awpOhzq9UK$5m#!LfT|$ z0(7q>L7HZU@q2sHE6XaJitYM?<_5)52S*4b)OB#`VO#R(+n&fI6=;sE`Jgd$`crf- zLrIYKvs9J*>HFwWh)0^-`<Y{&w zwU`1lcv2(#cuWvLcrRbNR*<_HgeK{IE1U3Z*|=%JCt}5a&&_V4thPD(y?JMt@ELrz zyasi1wekS3+7_a2gzfFCj4n69!xX!MWwpemYNnXo3TtoV~(t9@CR%1{=o=(ryya`cSrf=2lDdjZ~Z zoyOZqqe>ye8S8_O@jq3QijR5ik)zL#L&!YBH^DO&MwLve6YQaLyxikLgW*Cwx!;Yk z{km>-YQFsqjAE2dDOWGB%azWgUjM2}AUm-hR^==-m0Y?d4WIS8Lm{a7vkS>$r5#7a zG(a-tuB|p+S`_TC!jS5}uvy#VIr$|TowGlj<*gNe*C6gqI27yXK<0a7*}{;={_;Kh zk*IxTrBmYRH$H+#O*0pAr(~32m{^G4&Am|S)4R(P zj~fMt&sV0D?sx)m92t?1A;u#)dJOeLT8iIvOifJ<`&+wpOwuntyz0JD%VF83o!)Gz zqkPBu_La{<-+jI4wzMoV2g@ihh}~Nf{b1zna-=&*&9uMq$LoRltXLU-3(P&Zqs&2# zZh9;!X8Z8i!>Y%%m8?}sMWmPIynd({e02g+)Aini~1(!v8(4+Ed4XP4yJWv zL=&DDn>$hF(Fs0t3+NiuGW~|g#2UB5n0y{gQ`;O^(9_=vy zvh~Pt&b*_Yqw(}zce?7}8&%F8`|F!bawEgT6*3|>aNe3FV%IjR{tZSDPbt2B6+UKl z9mPLKI6ZSc>YD<&G%C7GS2V(UGx$o>Gu5ngKSAA0A4A`@UYeNmVZR^Z8)^)}>g9MP zI1uaCa9d$7U7IaQ6E{C)uF67zoj<9}(Y`ayJtsGW)2#>R>78)1dOp5tR=*PdT4PK1 zWqfD#v6h4+)%2KLSLuO&;v+Z}RNu3*veHX(baNu@(#`ybb;@k|S2i7-V?qO{u4iYv zwy1OVgqGO2s7rwyqnXL1Utd3t2&b@|lIC)>_f$95rJF|PY*khN*+)_HWV%4cK8M90S7NS<(|KD9N;tt79gL}U6TZDC(UujnDzd$Jk25ar2T z9*EH}mBY^|wxVURh@vGBpISe~%eA{taM8n0`+9@l4>B&>lfj(^3oES^pIUpQz5MHh z0m7|7Ttj5{td|uvkMe|uSKT9hTK*;gdn{|UmAk){d?c6ZEG|_5L;KsCmKQ@q5tn!* zCyY1pvU72p-*&fDX>n*`S4(^78w*HC_d8HR!`>UIK}E(}3Qd=mJnrf!GnZSf6QxYW zmD2>03sTw)|IU)t-_isWv9CqPb!zM0S9A=u6}L80-;1%@KBqXtUUwvPS9ZK7G}hyK z+n(#b{1bfdAipWMtR!>Cg=rcJvfNP64gOwv87a`%L{UP5p3Dk6clGDR^{u1PmWJ+@ z`WSKK=O;vr;&Q{#OD@ca!?qWH1ZN79|G`wbiosY)M>nt7=}Wx064z!gFaA@uW7L$Z zoBwF}*@_Pz4x=IuZ`D(}q)lkrG#_d+F{ETWU_PLF^~OFO`HGDJ$J&hMXA?)`>mRmy z&=1(|DW(Vgm?Wcz+tpRyY|6;xgg}e`<hPA6MFj+jXls`5#tpQ(Cnbzo1hv6@bTBHrs2Pb}ei zoWEcdC%1s?@3%(K>7^uqZ)N2yUxd>9cvAWvyvA6;^#a-h{&Kr4_ z8T9R~t(H~B?q$Q~A;#s=)=><2@vP>Fd%2{pP}Q>P;riaZcruO~oa8lYqUCr)$bZ1F zvn+molx>_qNYc#fxH8doXGKWWVbJY|_e}j}y*Ik05?nd|G+t2I9M#YNEaV%9ewFmF zfI2~#(=-)7AIS%{A5=F(ZX?v`Y)3OzxEVIs`a4gqx4b1?lTA1;5Dd0A)KFqL@?>Q# zB~Vz&1CcbMofnUN>#EJ-D$j&xq7`88p)LT7QcBfDZ#och%;ed$6a4h+7o}t^%BIuU z<&le{mn_;r3%?PGnK;z0M~~5(2HnTn>T9zu=?4+aaynEzZt&Q%^vM9H>hvGwces0Qb+ABUDzD4Dn`%~r>SuM3 z&uv6;QN3@9b=`B`3a98)&nKXo#Jf<{C|A|@K7{~B7y&-+>ePe~;h!J;?t6D0< z#quXnE}yHIRj9fDK>&L)7!EFP)F0OA`^=opiqf=Odtm95s#l)s0vRxVvqgDy|AjH{ z7ZPWyxPacW&>vz5QJtqxpVpMWV7Orm$3X$E!GXWH+o|Dj+gu1{{;AbY37_IetwIkq z!%ERYG=7iZVkmhHxzLxn>b8@+Yo$-+Y~;_Z3bz7)WZTi<6a{Yrqba^^VwFRyd2zyC za~7TV!B8wDruY|X5TlSz6}EBT;R`bl-R_t6tzwxSzMx90j{>3_FPk zLK2Xysw=m!xVbw^cmau*C4)YJprs^Q@0=#O0=AT2FB z<-(UtR3TIu;e{AZxNj~G4|G~?wB{PM_6O1u7TJ8#|1mVQ_VTCD^{0JE8{sn8RN>;S zY-`jsuF6&cmuQ;oW5$Nb-Q}ht&6`mhx>n9e{-et-Hm(vkZQ{eY+1ktRI{6(nEg`i) z{hEb$0tQhkd!1?`<3J9r~X`$Z91oA7bea6c>pgGw@NH9^$g76sm>U z3D2iUF{<3`+@PG!x!0gK1Xd*SSUfgwj{Ir)JL>66cfHQ5%YJ&cy!-7=o6p%$h#rS> ziP^oe3;W)BQvd*@p95RIh>}v?-fMmRnr;p91|NJ_@=@(046UPdRH#l|dD?%oW`wv6 z{m?i-pgHWmuzW*ESaX9Mt>+hk54syIZ(Uz2RdfscJLLMlLV*FMg;}q~mal}LGy+EF zBc1a)rF7%7sl$Z-p@mFs02+V#8~H`siSC!dvXP;oj>}08$JrC@^*Ya?r^jnHmmg!N z-PA}q&oerntBCB7L&t9Gq3c-aaGQJ7=N9Q)*HDtsoxgE&nKYc5Yzy-_k6tCJq-F*V&Ki z1xHWNR*YnunQup^+3Hs~eLdSv7Os`XL+nG(;tKty@YY8R@Ls{`)c+wp8rdq?WBan0e5Hd7xjQ}MgZ5(N z(x~s{8ViNaB{@LWQf71Y4uKq? z%dS{Z9SG5-?k*0k&)ir+sqyZB8I{P&vT<#a7PZwAvY1Q5?%P_E*&}B`DCB{WA@o(B z4||}|`WNo$NEn}4Ia;c*aCeZaJn@jQB)i0uQd>os14q#EZ|_N-83Xb2SdL7ORbcH} zIb_XsSFhaNuSzYbKtg+jS$R}7!xAK6SKNr^%|Nn;Th2GtT;Fx}h`ao7cIKJ?J%LGH zv-sg9r`TG}2d+Dfr_1Xo-hI3#VcHt5`BygA&dhy|^kzj7{974Rws&gESWrn0RcFV; zK5m0Xm)mHc{YZ(|B@RVQ8YY(Sh^ZdA42lL=f8kOF+gEvtLc>reD4h$g5AsH9s1+Lc zc7p7Z=f>`(1u~at4$K!ZmhtsYeVsYdQ#*=|WoOr6DF>PaISE`j&B_{Av)nF;Qnuw0J^F!_ zX`u#xvhz+I?hP>?C;(4YITIt8np^xtVS68ORlvM4dYgT9LPS_(i>Qux%3W|uM+3j< zV(-Nk;zL|tmi0?@b=h^K*NC80rt)Pu^JvbG@AmZ-+c%&(hoTJn+v(?;_Khp%?)LSN zIog#IZJ8+E$71+U*n3(I)dR4&nYU1<;^JSq9Ry}4RXtTpcJJKzEZ>!c`u1KgaynUf zJ~LeOLbWtuR~5AT_aAw}v?I*YeKI!Z7iaWg?_ zs&wUqU4s6$9|K-8tNPNh7sRde@ z7(3^qGZuUv% z(>A#py~z&!6sQ2F##TPAC#RUl6Ex)>+*>{~o>8%fhP=t6f(2GAmZ_o7n*yq1aeU62 zAU+XBwU%5jV9HS45^$c^;ri}l{zfx#xiSaa5^apJqahmPkZLdf?CqLT`pP@$ENqacHW_yFWwr=_~Q#c z)0IKb8YjbczUt$>yH|4r<%lGr7H%uk&bChK|^H^FI_+_vjvOki|ro2S;<{xHY zmOrfJ7N-I>Y+O@}G`e4^}cq|>_W<_e4v+9liuBF3{yp(;%i_?%~Xqjw`*iqk?fwUsP_ z2-@hJ-&5z~4Ogvo1xAd!I*XitB+h^dT#l8+oLRqP;uKobJwC9%8=WxaeiKSJ87_~$ znNPKH?4Fs(tfA*o8M|yfV>LNi+A?z>x` zy!5qK9n-xF?);7OA&@8aOV-|6*U-2a4VgPRSebZK_7$g#G;K^Xucchz;@fSpMZT4t z%`{o}?ZTFhm?LX}7_FV+7A=3i_GWvm0+fi1(*ts=r z`w}W|ha`bhMR}z!+-OrFeW5J-vL;$WBg1U^a{zA*iaMN{35n-OE=eTp$No;>y%^rrDzUw&$XA8N9(%`o0b(9 zH)fZ-meE*db4KQ;c}}%Iy-I$d;KE92@AODUW7CM%`1zC+o)kcv@P#d%x&_sKDS#)# zmO{t(xV@o_8xO~xgMfT_^km}tmqW|J^qiTBX~oIqnWO8V)ljdBPmuiz+XdN`Jpb7# z=SQO%QTEYN-j~H|rsa)N38LArlUz*CGwu$g!Bh(A2!x7l2A|IG*Q(6udzBJ7+5QOR z1fZkf+lmy*hOr)!xE*lu`#xwl~*a4-9|YbWwza(*Q? zCfcg2riItG^YA^XD`g9UpW13LdStl)W^f)Bm2~f%(MzW+dil-+(*c9b8tYzq&-6_u zfLnO-^ml0-Blc$oY(+Lf?THi8F{1Zh6e>UNe01VJDylN&bjS4D5GYNBxC5Qv@#DB3 z+MDo@i6BI9G~;ubAiqjBw$6}nbwAg*nQ;iB+%_7+>$J@&@zMB#>wyRVrcP=L`^o;w z0^quf?W6$mnlH-IQJP>k`C_8RIYhZJw}b9Pw24ScD7&)ogc>qjX!1e6V`m3) z-C3Ujn=QQECSDs&=3v&%j856e5FsPJIBTVZ(`f5S>tiYzA$_`IvljW&tbVPy_3G!(U%f(IC-_KeT;ENkUrYt`hUWNcHTq1MDJn#M#cLSczId;s7D|++|SsnjUN|4ZkLn z|ADptB?n+ni#}to#FT9;!${Z5nPy$vicMCe_s91A{!q2)X)$Bg`}0*!ZBNRjrwO$= zKx&Aoy~93U6?Zk>Fwyl}g<}9)On^~mtl?5vsIzB(`T9=@}mWWz|T9g#103k z9#0GcsRPb~z+WUi@jw7YukyCmh3v_q3XokTIzAzd;L8tsX+!cgG#sY=~sv=CIOy~LV!SM9T~Cup5s4V#^!ywE@?pfc3D)x@k4Xhe z{LO@o{G1xet6-Ars(%{XkK+|1VQ#JQKB+MNkEdRLa18YKt^@CFbT-vStTgOBUHP#g z&bZ<5h{5;CcephmcNS{*bOF5eDjwH<5ZCdTKK^T_8)dpUR8q>)#qp4FM=zVQgxQ*K z>AfkHHb#tb6^)R(KWO(?nCcX#dJrdX6=Km0I#|uRn8W+>R*l`C?NsR64N>q#dzv$4 zVt{2w6F-XS_t6C)z10yFWVMCFazyi4jkISbEZev4MVW5-`T<;TrRk*ORL|m&pWDlVr*(dKWRFA#*ORy(zL@Hb0Ju8$ zQg6~eh)m;s?qn*G%B$I}I=G5%c6ECGGM8G|zLkpTkf zlo?7RRM>xx*MQuozww>AW$sQe9FwpA@a9H&J;~y|_98X5#g$ltt(b61?iUA>UWtc^ zm+AReRZw6XPaJ6Ga`9!@Ky!G|0{M|GW)tSGMzx9B2eb%fmB}c0)YyaoauS+9 z!p2c1OEFFHZC*C9)_GNXz@c=2mCQjTCp1mA}aEhTk zE7#_3nhdQD?c~GIx5q%LnV9vnd&MuRZo9PO?EXUU{}tU|x(;ZPLWc5_(P~1wVKQXU zIgYK25LOqHIWp7np$m?F*Y0DI_6i9EU2pZv%-zCa4vfKl5J7ykcW~w((@j8^~I{h4TSZqwFkO|SI z*IF=e1-Pugs-C4pVe>f1oNRtp=t{Vg^i?gfa~S?(gW&53Hp(I)w|vPe!c^t;y%ipS z-&KVaiFj{4l|Yw~c7Ja{sJU^w{&h6~;W~wk>#UaCE)lqu;4S*Yl&p9wgAhQF&T|p3CdCWo4qm^C}3Uwh3>2LYOcR757K@8(5gw z(lkTV2;@2auC}((ROvQkkeIhL3F&WQ7aU;i-nz-<2?EL+F$OFs!NB2$=ZeXxd#S4=z3Xc(QpNO0{Uj)o$E^h%`c9eGipdMz&6`6gr zN>=0-)s|lCI@~8}|9fA440a^nh0WLA{+bcKglNrws%iWk_x$bp{{C}7KE*0SzPAt* zc=miz6XHwjo-FSNc!tu)yPu*B#|xh>My<){3qedGHq%~4eOb#IxD}!LPw9=nD>C@G z;YdG`B+PFr{$EQC$!q()w~oMwlF682b!gTD`Ku6gtT7D?Jr$AbU*#kA*wp}`^_X`~ z-f2Tl_#%QKpnbmQ)?KWBFE(JFet!}-0qO)XRR4iR7||0fsnBx^5><=S^8+O1KjnA{ zhKi8Rgi3cRPK@ zJO+Ci&s%WxSK(+3>;$s*LQ5XYTSxM~y*c5WqibN3{iv&~y$SJG zTirM&u4EMXS6=#4lbM;|J!-DVq>0IKNbJbV5YOEY?VSKM+aXPUTQ_2L12Cr1pDgQ0 z=rgvKOcmFZcjF;zoxL5ubiD5sFljvEB7bF4`M)^ONoTL-?S2h7Jxct!nZ8gGCn^E+ zYAUlJhrcEL4HTnReHexCt6x%|9XJAPi9T--km<|WuygYuQ-9gD_Xw)QA8I% ziS(Br>8LSng%c*o+ly88h{(?%KGUO;%-5I3zH2IeT)S$85@h=)v(g2z2x6yiz58^-nfxBz~6%B0isVA5ueUAhPSE;YcD9XRWpi*6_uWv8W+3TGG zB%I_*!qwPhdG{vL_c3xwpNdbzop+$?F_qm@5RA zk=JODy?C(SymflNDcqA6I703InH@}qt|H^+AODm_XnqPjs2;h_LJMpj+s{mqf3*j} zE((!u^^sdl2g;A0<3}VDOBXpJa)#I6B)pDb3Jio&niF0IoQJW02?n9oRN)d1TfSM%zHoe+OoIqWNl|||T z3XJ(#Gegba1)8}5K?;4yBE04+UeyW|c5t1QYRdRq1p4^>E_R`^Pg*p^pc? zgjOv+M>AxTWowna=NL0o#Y`s%w#<0)agpwp!Yv$Z$!}QX1$W;P36o5W5-^e#aA?&Y zPMdaQ#XM%^O~|_R2rtPS)+_FPayseJQ;YUU=7k|^HM|b%9P9RTXD;|92k&(fA~tz6 zB^-fUONjou*cSsw-Vhtd;xcSjrnvL>zm!D%u7`kJ#02NxlXM&xFdEh^;e%+a1?Pt{ z8Op3TW@w+2=wHY-JJ*xg&#*9royWtmxZtC<0R96@I(l;^@<|5V*JX>uuY?ju{&z=y z5%ekN!bGth%0169aZ$?^)G@#nP(b&;fAFs#AF*STW;EP_C6aF+gs1l+<<<|U;Y$k5 zH6H}kI0lB(-+FI`!8?7}=R+<*^K-qK76S^>wa%&`-^?O>|Eqb!JiSCk3mGUR*6JelX;8U&5<1;xcO+dEB^ zSQ-;OyM#2OR2f&YRgcXHp65eAtNg61WubAuu9^J5R@CnmQ_3|D&HVT0|1zZiG4F;% z<^p=7Q&CXZ;bYY__4e%Dl@oa3coD9V3t4{c!TCo z48kgwCqSDQCMOq~%|A5)J!f71ZJt3y7At&l7W*+#|D%(C9Yx=phEF8N?%@jzJ?FJ> z*E5;s3v`HPolf&Nl8050@q~|ky)*ahj{`w=NPd@$3p~H||!9G8h9R(MX zc`L?`^GSn-tkBvNyFUZ+TQ&bfUEYgeFo=hrF*#lPmoNY0cUK?d{IO#;$?cmDrFFMf z;KY}T&3RU!m|rrbO7twV$lz!go_(p>%v;V#xIfPLNg2~J>c1379FqYejqb!+%eyft}c5g)nYOf4t^jM)hCI?)UED&TiHM zsOLBd?#fKKi-8Uw^*)5Zd-%c$QNm~HaghvX1H?LHhIo5chHx!8Y_zBlV!8W2-qn>| ze#D4Pimw1(5BPuT)&-jsN(NkjO9)FQ+I~jFJ+s{pN7)9C7Vy8Z=sh2Z0nFr1Fx)&p zbQE1nXyv`*{A%AtSdPGE{NHr=88Kk0o*B>z|L;1Cf#bwf;3U&Lcga34iVPN9(O_^< z>`#rg1+E_AXW@qiyB!r18n_uWtJPC)cXdPIUvTdIt9jJKA;<;@tic5x%K=%q7io;^LC0kMiu1ge-Hm3jZC;j@9BLoW{yyXtZI@<70X=9CGdD5 z$N^lfen;5vogzp*H%Jgw&X9bx38<@lvuZ5!eJ76!6E;?qSP(ncB$fS=ip=C`5S$O# z87>pyrq$By+T)o8nM_xG7=FUuk@B_nvVeXf;rK^#e&SJr*H48#I-DIiR|?0I0Gv5WjaTd&~*96?^X z@0~`OJbtKT7-yOFSY*9zv0j0p1iMxdV+^O>_!y`DI!Eo@^i}bWkC|q!qpt#4KsRUejICaX{UB)dlFWzvwj8 zIuZ38P3~vMEA40FR{74YfufbKngV)mQYF_d^}0-aZdrMfyt>xK_fs1`0e%NZbs$W5 zlYG~2D&>9G-`1A=IwtQ!PuqDvNTWF?PO5>&%4grT?EJd%!Y330-p{O+%REUrbw}T( zZELQm+H^gmNw>AO6FVx%1VwwLc!S*V6J{|GiOj2Xtv5K*J}%I;s))o(*Dupqe%htS zR?V;3d72p(#Ip*33@Q~2fg%%h2T2Ndy!3;Y&ol^K&lQ?O4yCPiM{H}l^64(B;ZV!Jqzw!gNH1k8{J>EiNw=s$095t^{I}aMsmB2qdJUQLE~F{pl%gH35|^=-`zl zuJVrnDkmk?r6%f)&RRYZBx`iJqda`VcQ zZ2#qc!G)^%U^b7%(E}2^b+v5u7FyVP|FJc~*qiQayhA;3zaa&dRONb6XX{&1IC~HH z^2~3o0Fa{JO3+Y-UAG+yZSEGB5!r0MA4p9kN9(>=VSHX^JznyVv;J(S(E1ip&l8r~ zEY}z!mu0}arcx0*Ht8$Z$0=+|4Wy;KN$WN%{^_H>Gu}kyi4dL3=qvl9xj_6M5K_^+ zDpr~MFoun4be;V-9G1oWzwXq%vhCy;n4|IrmnS2E8JX-q2U$D=2Jb7!Z~Evu>A#DHD;c&_|yc)GU^Dr}!r-1AHYi4rrTApIR-HiO`W*fDm(uGj! z2H%J-@!Ci}9oy;jVV$d?eIG~pB#&~O*R(qd^59y#Cd*{JKlT6?PUm0~mX){2e9EEB zjL&75@gq6i zI7QI1ggfx&IvY{I3tE-_F7@Es+qNG{^l~9qViTLoFMsssF**J*?0%IhDIH~!&4q{4 zFcm?fJ?j_7B3E`*4qoKEHmt5ELGOi1a&2V@7a@|PasJWpDNH@I%OT@LXk^B`62|}A z?P<6}&~6m^)iw)ZR~hR2w(dhXz8K2Z8RCr0{3O;)G5P^6HO@F~D|c~|&hrt0!=vdH z`BC?+W`j^KSOdmQr?=nyWzS)I{fs?1MEiGHee*Vy>lj`?0S00WT)H>B|5A@CAwO-P zHx+{)DJ0qalLj9yxD*S*Q+S>VJ#AvNQ0`9}0aL7$rk^Wpfs&njWhajeK%1BKgl!i} z!MD$I6?AJ^jkb3#mb$NulVLJZJO1Q;QEh=lA@XGG)1aw}%Kqp0+b|Q>)wuQwv+Sv$ zy;6gC5BB{-?>yUxy?(hi ziJLS(a&L$KIgI*6Fg&_v6iU74xBP8PVDbjGm>H25{SrEfs|75bLHkqQLq0OBUbk z#(37q!bpffgw$w8W~cXKk43RH8E4hjpKOnB*SLKQul#+~Fm%BpeGn+v;spf!~f znviI@?_a_@<$kp0m({v}U`N+wTrx#l2T3HlF>7Q*^zL(t~jNi)Lb#b@<1OIwq@+zpQDO zn4fkIw|scf4C|@i&4-BHm;>&%r!$T{QRQP7$x5)wyp?gH#!6B!v0l74RokX+ zp^;2m=KG`gZ6b~Yc-K+1Bj`3ynWb4`xPT4f?1!`1x{meJaVe!9ewLFvgJu1Qhbmsq zMk0yA>jh1#s#rcO343Cv>w~Y)urzG_{BQ*6D9FbaaoNW?jp~aT4n*$H&v8jlCW9n> zb^-5zOS+^_!nJuo#emqp<4|UOcN4x4N$(NFj#Z4L~zE2^uas_@9%C z6nD2(g+}ap7C;JzUQd*So)72RhASG@5%tjt8|2q4#9TQe0yu(ewDW7h_mQFAcMkap z9~3o$Z}+T7^e<@kELgFIe89})%D>gNq9^q3xUP*B=0rUWF%4WHC)|O@$Vo06C5T~O zIS_!yVVi^DCagf)G#B3tziV!+W)BpMPxTC?0lf0vi&YLb-*= zb9lGvFTTpk5My}X`g1W=(z*xOa)gq7E{>H2wwVlk&iCyvj!`!W(_o*yy;rN){hruX zF2#gtK0!8>LD_u00p)fqv?)tW^KRuIlcp=IJPq|J+R&^6W1tw$DIhvwOl%-L;Iha7 z<>!g$a|FElQc%XNPS|JxfzQ2X4cq+*m%F?#6LI0t+<3_|zl<-t9!dK`GvVhpF6jaL zs=}2o>6mnlpT&jafXT)FV1&oE$MlqAB7?g3qB6(J5OMef{Jl>91RB|3O*jix^jWv= zFW39a1C4tP_{u=~lVnIk2*JIxrXY?mE80e~;M#nD??Fpl8%XUSzg~$-rs;1E;i?;@ zAo_&!$t}@&SSw9T`t-MH1hiiS!`c8850U#Oo8fJ}I1n#JV*_zcg7XkCCA$BNR|VO{ ztzImh6x57N{*sVg_vryL2R|u}8N6jZ#<>9>j!3dIcR54sb{Nts3 zA&P^CDn5J9T+J6E!Q2D_$HlC*$^ImFj(tONGQ}*|W^%$4Q3OW{Fz|aaY&T4GuplQ_ zQ!86S$l5G3lSnmm?PW~pcnDM7Z$W3g4!hNqJ4lgyWsjUuUj}Wk4CtS_9WTYUoiy&J z)_Holh1}-nZ3HtTzU*#Rqr=j|#XO4CwDd6JdC-SsyWN~2?5J?>7zLc86eX7#3&J|U1%1UfDp#iwawE*Ki!Qxp zybV)xvm~sE7hnnZ?>~1d#mfKVG_@P_Mpi3EeD-7m$ey@&IwovlX$(Ghll5Y;bK-|n*7bJ6F5T{+$z7;<<5d}xG4V; zrUh#z$JxNKn0Q5~TO}z*sPkfIk{qqVn@&)!er=WNh)wwvzY7T-@jY=my9SH}L9x9) zslr~dQ*0xLDD0o27$AOhg-`Rt`Xi5*%m0V5?~H14>(&)T0SncQD7^@xG(l;BAksvd ziVAEx2#63u2%P}ZBuMWi6hUb!gqqMplirjT2t~ROYN!bWZqWUm^WAg4amW3`VDN)? zmAU4c^O?_l77lo0%bEEe(qHn2gTmpQm#B@=zGJJ-$^F>?OoZ%SzW(!H`$CZ2^<|}y zwZmkYP>K@?kW)W{kUaF&!j-Q{l&Wd*?nsOmfZDBq|DAXR6!KHxxfMfQBOO_wrmPZ^ z&3ss+DtkxYrlrdhJy(&SgqG~OH^ZMx3m^&K0(^&_YPc0$XqRJ>GV@wU>^eoYP z+W~!dAw-~_Tke#mbwbqb}%tgW=eKMhi}sI<4&1YyX5|u^3S(x4{n1{PTxx8T%Ow! zERwDG=YvI!G4GB_TIku!!=Me)#%)oPTSNMKZe@ddj!|XxHC&F2jv}k7t7?vHs}M(T zM;1eOA0A2E^P$v_XBJ7NV9GgdptzLWhOmn|Z7=Tinx|yV%L#7tJA#?5VWj2!_SHw8 zP%+%17uO)tXLAu8hS6DlTFipt_BY11Onh-Ooe-MvF%f6pr--xMR3LYT5xz__9?n}& zIvTDFiH(Z&?}r(m8cmBT&*5v_PGQzTwGL;{;tV=n&j~TTRaj9^v!;hRI?yf`RW^eK zu#`q`wcNEmvJhy~uCFBjkdy25e{;fy()a!9c-9=Uj4`QlwzNxk+^E~`yQ?I*C+WVy zGrK|QKC*913mJ(ZFH#UtXrEmEFwWRT@ngl>V#`t_;9$A*Cb3Zt*M9IYRlh>hM8P@HVtXK+lG+_zXIs$}%grS^aK%j6ywY4bHt84+>U ziv8YCDxzQ@r%_=X>$QeBRzO^p7ak8ygAnoJuZ#{Kv?g*#Rqe9~m${Cw`Bh7xbHpSwjCB>`MKNGI!9^Gtq3k3R@gB2 z^^Ylz3tw5d_mTRsoopL7%Nex+mRf4nwmau zKKrUIB%48oS=)2cOFW;yPselS=U3zlqWmKQhv(0L)8se0_NA&uQ|e?w8B2wN2D{02 zdRp7JX^~yYPO(A1!!>l|lN6uT5o7S$IE^Y+`^?OM_>YULp7k)Izq(TvRBn>;n0-b; zxN3~!V;$?+G@gpjMi6ePcR}>>uUFktXzi+sjT91bZ-wac_rioSv0gm9S{I1|@};7h>PoTU*?*FkWi)A}M`$oq)7giao9!rGz=s?lOP9T9V|m zO<%1GtV1n@eKqal?0UBi%T{RfmAZKLb?aSX+9n!GIdvYb?HuADMK;UuI5ze@V{s-O zapQZJ;8g}GgUm*ybqu$_y;`yaN9p;75*YGF#k!s*t z$8N2_jmHmvWxdC4e}dZp@)11?<5Qc8l#TB>e>R>;adfWzWrhx-dcD8Iw_U7hqkF?D zV-shI+djj=aIRD^1JolAMr`ObXhd1!62hjf$G_#bBaBNzA7RyX{tk28m@@}1B59O+HNQ%w-`U++D!U;S_rJ5`8N{ZMUK`_qjMFGSs7;N{|$3A z9tp&J`zxXWvB?iWb=Spbt0`9Zbq+~Q+8DjEEsj}x%o+i)*lrw^$aUdG`0;udg|rQR zH*cjD8Ic(~bn|g;QE!)C7LqUQjv{%;T3)lg>x>2pl!W z^^|HNzPT)#9a^Vkg@MMs!4EQd_$d^A*0)H%f^>DTJ=&^pXNopUf4)GeiYim; z&c7&t`0ge=7m$0xfvQKhUE4$a$?87HP#w7+v5xwU=RKQWUO4A?dl1j&F3-Td#i)-C zRt#`D0|@-UtrNi5RfZjSE!RiMZ?n3W$5_c?Cq^eAU!yzdTXASZ>5aBEp(e+$Q(nx;Y2ST z{P9!Wnt=gO>GiRR6AGq2yDImDc#!-B(v=6q!CkI?8Xg z>`M;EN?lkO75A4bE;HThE|ZPHt6d^&4&8njj<#%Jz4T=%ydVzsbuE8UL=!dz5b+PO4KU_p7p`p z^?f?QhLd}$D=F)ev~KwGMtr~Mji({Mk_xj5KK1~<`?76r8d6eHR^!SyFWT3?uCbBA z-pb(aR!m-nd^N~=Y>YH$u#^uKHN42gCbi8eJ3JRE)Hf!`OS|Xon=Z%VkHF?&mvT2b z`$Qb)C9#nUMCl09R-d$^zNwATn#&p?&!^S;^w7TxIfEM1#_9z{Tr;-BK3hv(_-m>q zb2Hn<7~UXF9Phd-p{`mjHv?$3?WW`A06TYvJwnHC9nM`6Vg~DC!L)u_K5|(I2V>X) zaopnLB6^~v2=p?z8Sad4-TmyF)uZfUYEny@(K?#2F|AZILqGKw2ThPTrg2|&Vi>+N z<=DddY-TfC`n%ayg0t9bYlN91>(ZeyLj3?k@Qm4)6Wdgu%@1!d&!fUl?ra&C_dPjm z3S$d9xQ*;}7A?!FU9S1z-iJdnfHTb*OHI8EcTyPCO%AHB_7YFRv2yjAE}cJQ%6D+M zl(TyiWFe+&=8Okaqf6<{JKH)(w|}ukh#&lWyuJczir$B7L?WmscZtY zudjA?3c{j|j(Rqvr0-xxcR51+m_KD-Rhl#YGYtpyUl=FRT zDQq2MuNQrUCB7X9F>^%KOU@jrtQx61TVQmqzFujncBcd#9_c@1=^^R1OTypf33vRR z%gBRDKKvd0RXPi@=8Ji9r{Z@(-klHPM;W$FFtPAk`Ny>( z=dxVlI;rCumJCP(V*93?aaPdQ769+&Q2~{)9d&f`Z)YwexB2Mh|9oRp16L zIlZTN{pyA=x1AQZmzwXg<0ANr$t~sAt@<@Oy4z)9`~N`Pj0G7vgPP}!A%Zx>FGKi& z`tu0KI~Lt#PZaf$t4@R9)kw+VJxwpC&wHia-QT<&`5j3=qGlBKcu|^t;h>=UI1t1! z3r*qrWH?zW%>?(;+4=TXSJ*)to{sT75OgsWcFEqDFrUyT-XA6w-LBIV5MsSWQ0%z7 zs)Q|pKNEDcpdK1?$`xB}63MBeWZUhlE>maqFQ)1O)+!*|FAUKOMW)53W>cZ-zw42# zXF=S5Bi{If;v;b=@q-xr@e>qKnmt0s5i3zVmRcg$ePL_HvUaCTuS9NH=$Jxn9~11_ zkd<_#;FD@?c+@Yz_UCj$-3JQK zbE6GodO{wa6*yXhtsGu6SArJzT#-H))v~Q7yM!xc_*ABM4=Am4Ihfn{<)mbJ&W6pA zI@tqKzRde5B3XtVuGlD=?uTLP_!JeKU6>zm6V^0mw!gzQfQW~S`MY7g24AIk3ci1!p&Gec%3i8g4vHJqq?l$Og%Ex_ z%1+4?Xg(6VUAn-_=U47RUZ^$!7k^QZxqP@&Z_@5GnE%!7SMoJwh`k4)wrfNFxQrmf zYMfL_G!aML0lp;Ysy*C^*eHdaiJf%ge5-urB)v=R1oqWFJfQ!M5ti?^8qWjYTu7e>aHkR& zWeCVZcHgg*>1j`?+Z1kp=wbI6i*{`Z{Ihy%i$@PhxwnH?_2Bf zp{z5=ytb*%u<5J+uRwc?rk%%wnJW_i7{yRm~ytbYfsq3_l9v(dnnK<+bX*% z?e4jV+>DpwVY$#uZwEv==?#MNxJewNNOEAn1emW3Qp~|VdLdR%S3(?l4h0kS6BLIE zrH|R%R_nXDarE|0pD}L1#@{6~ujn+`AM~BMdwTJ0CqCHY=RdlobRdgUcU$zpTvevO z)IGi^;){~{u2Hpl!^!O0)Eblm(s@v)(k5tS36fjHdYf*fk-{@f)LU9u-!N}FU#`6; z1S<^EDDBNPN9Q`2^UWHoqs0J0 zrjQBUC^vg2X!jxY;H>*&+Y^9_1~&HqSx;`L7K|(CeUWZ{cB%5raaSp zG`4?1)bIOve$T$NLw0r47?wGsI#Rr%N1ukyVZ~z*EQKG%X6E)jG8%cim7N5X8~NC6 zVWR`8kZbdnWZ)j&yX>w>X4mz_UZYr$HC9bw^Lg=t^_`tsp<95jn*OVJ1NDs7lBw)H zEs9+MKnP-EP9PG7RaO5Iz9z?*mk{6fgUWp58_+sbbpN*S zHXgQ2V2Iai8%{`LwOc6|vymetKiuPZ@v&#F;h(@V?93iSpPGSS>+`j6LN)5CIT|JS zY}z$x2Ax3@2Y(yOl5;U9F>y~BC^Km6IGJx^<#O?oNw2O2WEtRE~`GcV^qHf@lk1Lk- zjhqbkv=H&Y#AdkVvNhW8r-lmS_#NKIy$uS4Ex^>PIX=UtsNMz{N6Fwj^{~YH@dXZd zo~$z6DaODDc@>nW>!sc-`Iu5tHI9ga5V;w&82Na2TI}JJpwjIHCTg3fF#4o8d`1@t zQAu~yXVVOxd^NhHkiHc8-l(FNd?8d}gQ8C@Ngx|TJ9p7>@4BoL3IF=L+_K0MV1{WSze9ZM!=ew6>cb6dGJVoZ zTaYA75Vh#9h3$DXi}@QrW61^}tmp`(Cpe?BYO80#o!F$%F$$XGs12l%>83eHtS{zv zOw%^E`~3A7JF2-~Gd16_G_2V(lwtoH2VbP8vg=lH5iN&Ip#ZW`jH*e^T_~F+|0Ar20KtfEEp)z%22YJNN`}^=2Isp2wO!+ zGM__M&MoT+f_GIvj|LYTa9>bt4}8#|l-4ErPK16&A-J+Gigw9 z9`h`v-xrb5M^5h;(&MhpC4t|<>Z$MT8sahSPHUbf|F~h_2o}_`3^*o~W{FRe`U+gX zoIi%9*c1LW%1MFU+HMA*G2bHAw3ni5>CS0ig!-7q79(`&gPb0xlnp?7*Y3odfc%#h zKwfkr!-$&$VA`4pvro46kfP~Ytv)HPBXsr6J`!~n1S5$ri~Vn-#uvsH^da0vzcKPL z!M7G4JC8Hg{1)~?bHPTAsfXuf_(tg+nz`Bpo9XcjT76`3HC_$}?@MNV-PIy57ujrt z_}}Ky=RA<&?ryrd+0K`+AnFReJJYf>c!zgL?QQ%hgz=2jXlL_I&C#UC^kgBuzlSeo zR%>lRZ*4eQxv$a)(IM?yjGl&FoR(;qJF>mD2sZ`UmbLkNWox94MiK8$63Fm#a{?L9o(rstv?V|C>%{j6a0AR5K8N)6MIG8Lvi&7Pf+K$_hi=%ocquWRN%aM{0SFGE@hC%(I8z4i8nK{xcm84O2$dxjc z1fd6Ew_`IlHZjK}Jb;CtRnGZ!*+P7`whYc`U*8Gs_k&I24QBKz@5?r(h*({#huwyV zR+Wi(g~)JtsDk#B#vR%jn=(f0tl6!@`QKU?Us7(nsNE8E zij3Twc=_@a8L{Z19Xd{R`pbF)MJ!r>=@&Bxa^xXB1H!Ny`|dG&LhV&59%aF!)NK*(wQIQK-qS>d)GZe#aD5Ql_62J*}l zWH&mh@4xDfdtx9|dWD(cl#7*uJ|$xuL>XheP82lw;StukFk$*M3qJA&o&Nmg99aGM7!zW$rj6`up8^_XM#e?|6XL^F$ zTX~?hTTWebzhgp5H1dje6Vcv&FY^rjQ!@syQB#k|j4JXT4j}zRl=gbJ#5n-gLGA`y zFJz6eS^B2xnQ4OP^pD{S`8^a?mz3DwP$NCmU)|Oe8kjk;a@Y@qth{}%IdvSn05>by zCcyG-6Vy(5PW^^lF+7eIX5T`C$z6f;$OaM6SYM~`u}1C0EoXh0mQlv(Q5L@WHs<41 zUH2~>IQu8xHPAJ(Q?E3(eI{M&iiJ*4i*>O6_LVv*ay{zK8)KWA!*euK!0)1#(JU3b zLV->{Tfod=iwa)G8vcTh|7Mk0QrJxj?dwt)`kq%*lSu$DeJNe`Oq8c9r33Cr^~rwh zkrvv+VcRcP^tJnjen<^Q{)M@}ohv% z)FYvVZ||TrCiY6djm$@Np1wng4Y?&`i8B^Iy8%z4h;g~d|bNHj>$HlYyzCF2t< zqMt%Fec%|t(ook>t;46uSQPjO{>1>ft}4>Gl;@2Do5+3s_6jE&(i3sr&YShU9?Gfv zAHvn*ZK~Dz@hw1dTNmzbiC5WAHuf15&IvD4r#C8lDEg>8MK8-`#SXcHxRmH_S1biy z*1{am*VUsI&c)XgbQY?|7c=0dX35KT$&1IMpryIpB-q$UG025LDB+#8RXwOv%U@^k zDzW6&1>czw6{~y9$=mCi>o+$lmL*0Q`BTLK(eWg#3I(>gtKCWs;RE5Fx-?AVOGB1b zjM|^?6c%Q&$h}mu80}w7f5aXy93-2jhYByX2iNb8$R4hi`&_u$h${M~j5RVpCM46W z&^N4~G8ovE@DCC{^*D@tU9NKz#66urL@N*;Y19E;n}P_V?zi`Be7~A2R_cuB!4L`+ z#!Fv7uSU4~$Y!J> z;qHSlKhPVV5(!btV>zm=sV9oFB^yyy3;aye2krMD-hzdgX%ndZEh34xtnR?s``N(~ zg-EGN;wL+|8u#hxW#)xOT@%Is-NSO~`E0|_G#CNN&+N-bh*~}gP#tOEcET1RyTos; zuX4K*BpJJ98U0L8DQiu2C38)(67(Dw2_hLJFE2&+xQ+Z-d6KomZRBCf_ER_J)ZpI* zT;^MJx891`_xu3rK`l#?+sGeGv+MYNfeLwJMAcX-&)l#x5%yawR81cg>0x;h?V$4T zsj6(CP5IyO1A<3kg9tss1`=+Flzrr|M-dyo}E=O#g*A;$lY9$fs z&G%eDFUR@0acJZ+|I_=n{P%aWIz)r=%D8fh5-tI>-_gtdd>eHpB%iw)occksGnC;w zPyR!Wd#|&4|KZc5TscdtRn`JPM`!f%ZNFMwGZ~ctm6}Ea)~l*c$-I8}Qc#${OR1F4 ze*4C%1>bIotgw*LMN(Dkb|9amr9zh4{Hqe%invXiDYHY>oXq9txB-@G87-ff<54$v zc9uPNMe)zuvpwQ#D?eC8w+VSk@p`~&=*gDMyMjvy4)zKY#s?+=SF~K4QDhNZ>U(nD z-Pg%_=Z)}`ouPO`6m>~IiS9#TxWds(8M1pN$f1l_QfRLf4jIepJsz5yk>T(+WOcUk z*-WY!XD#Y>JB%uj(OAnh%VD%~pak{k`M+&>FE%Vt=yVusc8@RDnq2#)MfDJK&Q0P# zBmZ0bGfy=*hnc`j?o6olQjPcWfGc!3NpqUdc4BYIvX5>rF&xBnKY~oI6q3J#w(pa5 zoToWl2b41yq=8Ho)iR~A4v4J7AR0qG*_mJ`9bNoZ-Z3-+6QKOeULR>%E4@x(AVI!` zsrS`)RK6;1Q;0fDcOW}^8%kn^Atu??$LC84Q~7GE4T7`yWvWn|pAvb=AM|Yh)2)6{ z*8$GbopKp9*cy$#;>IINJuV81AA;K~Z`jPlRqOU|QR+?5mwj}zsW~D$lGf6K zWCaxjDz0F^$!#IJOO=^z4tl;lKNRTp`LgD@+m5=q>)nut8T;YxXl!g0Egyy&>N)Ke zu<&DI>xsXM!S?)mUGC|{_wMETEv2LCOqgQ>7;-zgkTsAeU6dvEF1^BLBjJf1x1BJ( zAt70J2qYQRNEPAJN+*y$L#uv)DNMVq1RRuq#NIeIjs(-bEPH)ZW1xz{^=)r^grFT2 z!f%2H_wy8XTjN4f(DiE|9V25->xc!b>+u7Fx`3jsO3EWA5Rq+&+X1^%wg9Kg@jnYEgi zOwW1z4Jm zTU$g1mV!kqC=4Xmzj8J=e?Gstl6KMmmK#r=7`aom{N2fOp+#xAH_~nlx8JHiHwL!0 zS31U*)sKsVGmt28JfTO~ARo;_;N?A7$P`6NIeJ-C6p2n3zJ7n4eX;7w;Vzx4(uZTjmn4m76 zvoPPU3VLHC7?R{Nmghp8Fqs}f(J|QQgqQ*hs+OZOhrn~cimiR z_D-LhuDfwmKuwhpeF4b3v z2+2@m)j?S8S&Cn(ChTU_wyx;yaIop`w!E&RK3$Hp%KSM=^z z+;=^y+uc|-w9&5%(i7chP%=T$$O83!*=ni*AP=qgLgrJ&>OX7kGJMQ3o=t)r4B;(nNZlw z*5HFiu2mV20{rXkdX(LkF@uZZW6Qg1m7IX|pKU6>lgvxqUNl5P<;*ef3S@80>YU7Z zBTHDxSCH2t^)9w{*ZOueG@6&W8~-#SsA1qFEH8~|Ut-Nw%S&v0?Wj(!L4>#;eHxahGy%7d2jN&PazvHhiMFHz>zWl`0rEKs~c@v2A9^wQx=|J9yps$IoGCHF;S zfaobdGDZ9}{u@i|n_XCSO?$L2u?kgW5mvg^#b{H^s{K<$)Z8m{P!e$Sy42H5AGx^> z;|6Kl=W=&>gDE_owy=5Sil2UTLa^(xRQb;0TOcFu1(Mw428AD1)=@S3lFv%)+o*_> ztMR}GbJ;2_n%jru9L;D4*!zZ`s*7OB6CJ6jqc+kimYGd8Awcx`#Y^hWRXEq{>`5Uz-QpOSb{&Pa500;ve_Ip> z5?r+o=AUF`guhhJ^b5l`Ig~P~$CUUNH;`6NDX)LytZCK8O@xB$at8uNlli58*^ZVM zQ0T;?(TcY^Io_h7uHDn%ukmsWOD?>DqhVQIw(pOI`4l%B&&{a{$;NkA>mqMgMMfnAPAGj~*e+#zLG<`B^?=O{RcGTQ zJjy&gbS9kqx5g7O(BCWL(0)alC~PP^4c;vGbm?w8M?6N?GrUN1r!meAM{MJXBuHO( z98y?n)EIv`6osrx23H#>r6A|MRMD^_(Ik{epv|fYGnB5+4w2j_g2hcTAMX$Xn#-n~ zZ1V83C)_re`=Ao1Mn#


      >NrzXz}gZc{R!vJN5@Z=c+s97hiS$HA{M9 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�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Ν#E46yHf1+ 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 diff --git a/src/content/tbc/integrating-with-docker-hub.mdx b/src/content/tbc/integrating-with-docker-hub.mdx deleted file mode 100644 index a114bd24..00000000 --- a/src/content/tbc/integrating-with-docker-hub.mdx +++ /dev/null @@ -1,39 +0,0 @@ -import { Note, BlockImage } from '@/components' -import img_demo_examples_repo_upstreams_1 from './images/integrating-with-docker-hub/a43b766735fe0608006ff0b0a31102dfd479c401a5b9db57e19e67f5b6db3a1b-app.cloudsmith.com_demo_examples-repo_upstreams_1.png' -import img_demo_examples_repo_upstreams from './images/integrating-with-docker-hub/a168960f3724e369c2591180e70a321ac94e2366f028912ba1c874f9ddb5c2a4-app.cloudsmith.com_demo_examples-repo_upstreams.png' - - -# Integrating with Docker Hub -Retrieve Container Images from Docker Hub using Cloudsmith - -[Docker Hub](https://hub.docker.com/) is the official registry (provided by [Docker, Inc.](https://www.docker.com/)) that allows you to find and share Docker-format container images. - -> It's the world's largest repository of container images with an array of content sources including container community developers, open source projects, and independent software vendors (ISV) building and distributing their code in containers. - -You can retrieve these images through Cloudsmith by enabling an upstream to Docker Hub to proxy and cache images. - -## Adding Docker Hub as an Upstream - -Here's how you can integrate the Docker Hub Registry into your Cloudsmith account to begin proxying and caching images from Docker Hub: - -1. **Add a new Upstream Proxy** - In your Cloudsmith repository, go to "Upstreams" and select "Add Upstream Proxy". - - - -2. **Configure the Upstream URL and mode** - Provide a descriptive name for the upstream, e.g., Docker Hub, and specify the URL for Docker Hub: https://index.docker.io. - Set the desired priority. - Select Cache and Proxy. -3. **Provide authentication credentials** - Docker Hub requires authentication. Please select a Method of "Username and Password" and add your Docker Hub account credentials. - If you need help creating a Docker Hub account, see [here](https://docs.docker.com/docker-id/). - - - -**Note:** For Docker Hub, Username & Password are required, not optional. - -3. **Configure SSL Certificate Verification** - Ensure SSL certificates are verified for added security, especially for public sources. - -Once configured, your account is now set up to proxy and cache images from Docker Hub through Cloudsmith. diff --git a/src/content/workspaces/overview.mdx b/src/content/workspaces/overview.mdx index 4c4317f4..27676c4a 100644 --- a/src/content/workspaces/overview.mdx +++ b/src/content/workspaces/overview.mdx @@ -25,7 +25,7 @@ A primary navigation bar at the top allows you to switch between different secti Secondary navigation includes: - **Logs**: View [client and audit logs](/logs-and-observability) for your workspace. -- **Usage**: access [analytics](/logs-and-observability/client-statistics) and understand in more detail your package usage and delivery. +- **Usage**: access [analytics](/logs-and-observability/usage) and understand in more detail your package usage and delivery. - **Security**: Get an overview of [security findings](/supply-chain-security) and [license violations](/supply-chain-security/license-compliance). ### Workspace Analytics overview diff --git a/src/snippets/integrationsGroupSnippet.mdx b/src/snippets/integrationsGroupSnippet.mdx index ef5bd85c..3339d594 100644 --- a/src/snippets/integrationsGroupSnippet.mdx +++ b/src/snippets/integrationsGroupSnippet.mdx @@ -418,13 +418,13 @@ Cloudsmith supports the following integrations: -## IDs +## IDEs
      From 73f1f9bc9ee449841d367e79f9d853380db82f2e Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:23:53 +0200 Subject: [PATCH 111/127] - --- src/content/api/error-handling.mdx | 2 ++ src/content/api/index.mdx | 16 +++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/content/api/error-handling.mdx b/src/content/api/error-handling.mdx index 93cd9285..f8484e07 100644 --- a/src/content/api/error-handling.mdx +++ b/src/content/api/error-handling.mdx @@ -1,3 +1,5 @@ +import { Note } from '@/components' + # Error Handling Expected errors that occur when interacting with the API result in a `4xx` error code, which varies depending on the condition. All error responses contain at least a `detail` attribute explaining why the error occurred. The following is a list of some of the most common errors that are encountered and why: diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index 9c10ed31..590a9011 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -1,3 +1,5 @@ +import { Note } from '@/components' + The Cloudsmith REST (REpresentational State Transfer) API (Application Programming Interface) provides everything you love about Cloudsmith but in a programmatic machine-accessible RESTful format. We believe in providing a rich API to enable exciting and powerful integrations, hopefully in ways that we couldn't imagine - just like your favourite brick-like toys. ## Versioning @@ -12,11 +14,11 @@ The API is versioned to help reduce future compatibility issues if we need to ch Most resources provided by the API require some form of authentication, which identifies the client to the API in the context of a particular user. Other resources are accessible anonymously, so they don't need authentication (although they may provide expanded detail for authenticated users). You can use the following methods to authenticate: ### Basic Authentication -The simplest (but least recommended) way to authenticate is to provide your login email and password when making API requests (replacing with your username and with your password): +The simplest (but least recommended) way to authenticate is to provide your login email and password when making API requests (replacing `email` with your username and `password` with your password): ```bash -curl -u ":" https://api.cloudsmith.io/user/self/ +curl -u "email:password" https://api.cloudsmith.io/user/self/ ``` Specifying an invalid email and/or password will result in an 401 Unauthorized status code, and the body will specify that invalid credentials were received. Let's see it in action: @@ -45,16 +47,16 @@ You can [find your API Key](/about-cloudsmith/api-key) within your User Settings Cloudsmith Entitlement Tokens cannot be used to authenticate to the Cloudsmith API. Entitlement Tokens are used to authenticate for package downloads only. -You can specify your API Key via the `X-Api-Key` header when making requests (replacing with your actual API Key): +You can specify your API Key via the `X-Api-Key` header when making requests (replacing `key` with your actual API Key): ```bash -curl -H "X-Api-Key: " https://api.cloudsmith.io/user/self/ +curl -H "X-Api-Key: key" https://api.cloudsmith.io/user/self/ ``` -You can also specify your API Key via the Authorization header when making requests (replacing with your actual API Key): +You can also specify your API Key via the Authorization header when making requests (replacing `key` with your actual API Key): ```bash -curl -H "Authorization: token " https://api.cloudsmith.io/user/self/ +curl -H "Authorization: token key" https://api.cloudsmith.io/user/self/ ``` Specifying an invalid API Key will result in an 401 Unauthorized status code, and the body will specify that an invalid token was received. Let's see it in action: @@ -106,7 +108,7 @@ The `Link` header can contain the following `rel` values: ### Let's see it in action: ```bash -curl -i -H "X-Api-Key: " 'https://api.cloudsmith.io/package/example/repo/packages/?page=2&page_size=1' +curl -i -H "X-Api-Key: key" 'https://api.cloudsmith.io/package/example/repo/packages/?page=2&page_size=1' ``` ```http From 0e37e80f2edb5a140f2da70d67aefd2118a80eae Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:28:16 +0200 Subject: [PATCH 112/127] - --- src/content/api/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index 590a9011..1cd82222 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -6,16 +6,16 @@ The Cloudsmith REST (REpresentational State Transfer) API (Application Programmi The API is versioned to help reduce future compatibility issues if we need to change the API. The following is a list of the current API versions and their URI endpoints: -- [v1 (Version 1.0)](https://api.cloudsmith.io/) -- [v2 (Version 2.0)](https://api.cloudsmith.io/v2) +- [v1](https://api.cloudsmith.io/) +- [v2](https://api.cloudsmith.io/v2) ## Authentication Most resources provided by the API require some form of authentication, which identifies the client to the API in the context of a particular user. Other resources are accessible anonymously, so they don't need authentication (although they may provide expanded detail for authenticated users). You can use the following methods to authenticate: ### Basic Authentication -The simplest (but least recommended) way to authenticate is to provide your login email and password when making API requests (replacing `email` with your username and `password` with your password): +The simplest (but least recommended) way to authenticate is to provide your login email and password when making API requests (replacing `email` with your username and `password` with your password): ```bash curl -u "email:password" https://api.cloudsmith.io/user/self/ @@ -72,7 +72,7 @@ server: Cloudsmith MCP ``` -If your API key is given to someone else they will be able to access the API in its entirety as you (although they won't be able to login to the website itself, which makes this method slightly more secure that using Basic Authentication). This should be viewed as a security risk and every effort should be taken to protect your API Key from disclosure. If you need to add read-only access, we suggest creating a lesser privileged [service account](/accounts-and-teams/service-accounts} and using that instead for scripts/automation. +If your API key is given to someone else they will be able to access the API in its entirety as you (although they won't be able to login to the website itself, which makes this method slightly more secure that using Basic Authentication). This should be viewed as a security risk and every effort should be taken to protect your API Key from disclosure. If you need to add read-only access, we suggest creating a lesser privileged [service account](/accounts-and-teams/service-accounts) and using that instead for scripts/automation. ## Pagination From de1b47263e4c4f68734b3ccd60205b7eab719966 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:33:27 +0200 Subject: [PATCH 113/127] - --- src/content/api/error-handling.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/content/api/error-handling.mdx b/src/content/api/error-handling.mdx index f8484e07..fe41a301 100644 --- a/src/content/api/error-handling.mdx +++ b/src/content/api/error-handling.mdx @@ -8,7 +8,7 @@ Expected errors that occur when interacting with the API result in a `4xx` error A `401 Unauthorized` status code is sent when the resource endpoint expects the user to be authenticated but the user isn't. For example, if sending a request as an anonymous user to an authenticated endpoint the following error is sent as a response: -```curl +```bash HTTP/1.0 401 Unauthorized Allow: POST, OPTIONS Content-Length: 58 @@ -23,7 +23,7 @@ Server: Cloudsmith MCP A `403 Forbidden` status code is sent when the resource endpoint expects the user to have specific permissions, which will be detailed in the resource endpoint documentation. For example, if sending a request as an authenticated user to a resource endpoint in which we don't have permissions (such as one belonging to another user), the following error is sent as a response: -```curl +```bash HTTP/1.0 403 Forbidden Allow: POST, OPTIONS Content-Length: 63 @@ -42,7 +42,7 @@ Server: Cloudsmith MCP A `400 Bad Request` status code is sent when the body of the document is expected to be JSON encoded, but the actual content is otherwise. For example, if the body was sent as `foo` then the following error is sent as a response: -```curl +```bash HTTP/1.0 400 Bad Request Allow: POST, OPTIONS Content-Length: 68 @@ -58,7 +58,7 @@ Server: Cloudsmith MCP A `400 Bad Request` status code is sent when the body of the document is cannot be parsed as syntactically correct JSON. For example, if the body was sent as `{` then the following error is sent as a response: -```curl +```bash HTTP/1.0 400 Bad Request Content-Length: 79 Content-Type: application/json @@ -73,7 +73,7 @@ Server: Cloudsmith MCP A `422 Unprocess Entity` status code is sent when the resource endpoint receives a JSON body that is syntactically but not semantically correct. These error responses contain a `fields` attribute that lists the specific fields affected by the error condition. For example, if the resource endpoint expected a filename attribute in the body to be populated but isn't then the following error is sent as a response: -```curl +```bash HTTP/1.0 422 Unprocessable Entity Content-Length: 132 Content-Type: application/json From 5f764ad54ed5b2f54cc116cf66474e4284ade977 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:35:11 +0200 Subject: [PATCH 114/127] - --- src/content/api/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index 1cd82222..804f1371 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -111,7 +111,7 @@ The `Link` header can contain the following `rel` values: curl -i -H "X-Api-Key: key" 'https://api.cloudsmith.io/package/example/repo/packages/?page=2&page_size=1' ``` -```http +``` HTTP/1.0 200 OK Allow: GET, OPTIONS Content-Type: application/json From c34a75ca4102e651ebb0eda5588e8bc17b4a5f86 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:41:57 +0200 Subject: [PATCH 115/127] - --- src/content/api/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/api/index.mdx b/src/content/api/index.mdx index 804f1371..f5e4b36a 100644 --- a/src/content/api/index.mdx +++ b/src/content/api/index.mdx @@ -105,7 +105,7 @@ The `Link` header can contain the following `rel` values: | `next` | The link relation to the next page of results. This will only be present if the client has requested a page less than the last/final page. | | `last` | The link relation to the last/final page of results. This will only be present if there is more than one page. | -### Let's see it in action: +Let's see it in action ```bash curl -i -H "X-Api-Key: key" 'https://api.cloudsmith.io/package/example/repo/packages/?page=2&page_size=1' From cd9cf5cd4f04b375062ce841c7af77dfa4ff5465 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Thu, 7 Aug 2025 13:46:56 +0200 Subject: [PATCH 116/127] add: dspm glenn review --- src/content/about-cloudsmith/sign-up.mdx | 2 +- src/content/customer-data-security.mdx | 42 ++++++++----------- src/content/formats/hex-repository.mdx | 2 +- src/content/formats/maven-repository.mdx | 2 +- .../integrations/integrating-with-ansible.mdx | 2 +- .../integrations/integrating-with-chef.mdx | 2 + .../integrating-with-circleci.mdx | 2 + 7 files changed, 25 insertions(+), 29 deletions(-) diff --git a/src/content/about-cloudsmith/sign-up.mdx b/src/content/about-cloudsmith/sign-up.mdx index 94816af6..02d0ff72 100644 --- a/src/content/about-cloudsmith/sign-up.mdx +++ b/src/content/about-cloudsmith/sign-up.mdx @@ -20,6 +20,6 @@ Once you are there: 6. Check your mail inbox, we’ve sent a verification email. 7. Once received, click in the provided link to confirm your registration. -Now you can [sign-in](/getting-started/sign-in) into your new Cloudsmith account. +Now you can [sign-in](/about-cloudsmith/sign-in) into your new Cloudsmith account. diff --git a/src/content/customer-data-security.mdx b/src/content/customer-data-security.mdx index 1d4ef139..775e0318 100644 --- a/src/content/customer-data-security.mdx +++ b/src/content/customer-data-security.mdx @@ -1,45 +1,37 @@ -# Data Security Posture Management +# Data Security Posture Management at Cloudsmith -Security is paramount and we are actively engaged in continuous security and always improving the security of our processes and services. If you need more information than provided here, please [contact us](https://cloudsmith.com/company/contact-us). +Cloudsmith operates on a shared tenancy model. The platform is architected from the ground up with data segregation as a core principle, so that crossover between customer data is not possible. This meets stringent regulatory and [compliance requirements like SOC 2](https://trust.cloudsmith.com). -While Cloudsmith operates on a shared tenancy model, it's crucial to understand that the platform was architected from the ground up with data segregation as a core principle. The system is designed in such a way that crossover between customer data is not just difficult, it's architecturally impossible. This helps us meet stringent regulatory and [compliance requirements like SOC2, and others](https://trust.cloudsmith.com). - -Here's a deeper view at the control measures that ensure this. +Here's a deeper look at the control measures that ensure data security. ## Encryption at Rest of sensitive data and communication -All data is encrypted in transit, through all layers of our application and processing. Encryption at rest guarantees that all data is cryptographically sealed when it is stored on a disk. This encryption is applied consistently across all data types—including primary packages, backups, and system logs. Even if someone were to physically access the hardware where the data is stored (i.e., break into AWS Data Centers), the data itself would be unreadable without the specific key to the safe. This provides a fundamental layer of security against physical breaches and unauthorized hardware access. +All customer data stored on the Cloudsmith platform is encrypted in transit, through all layers of the application and processing. Encryption at rest guarantees that all data is cryptographically protected when it is stored on a disk. This encryption is applied consistently across all data types, including primary packages, backups, and system logs. If a malicious actor were to physically access the hardware where the data is stored, the data itself would be unreadable without a specific key. This provides a fundamental layer of security against physical breaches and unauthorized hardware access. -Encryption is performed using a combination of AES-256 and AWS-based KMS for packages, and Fernet based (plus others) for "sensitive data" in relational data. +Encryption is based on a combination of AES-256 and AWS-based KMS for packages, along with, among other types, Fernet based encryption for sensitive data stored in relational databases. -Universal encryption is a powerful safeguard in a multi-tenant system. It ensures there are no gaps where plaintext data could be inadvertently exposed. Even in the highly unlikely event of a misconfiguration at a different layer of the stack, your data remains cryptographically sealed and unreadable to anyone outside your tenancy. +Universal encryption is a powerful safeguard that eliminates potential gaps where plaintext data could be exposed. It protects against misconfiguration at other layers of the stack, so that data remains cryptographically sealed and unreadable to users without access to a particular tenant. ### Securing encryption keys with AWS KMS -The strength of encryption depends on the security of the keys. Cloudsmith uses AWS Key Management Service (KMS) as a dedicated, highly secure vault. It acts as a centralized and hardened system for all cryptographic operations. Internal Cloudsmith teams do not have direct access to your keys. +Encryption depends on the security of keys. Cloudsmith uses AWS Key Management Service (KMS) as a dedicated, highly secure vault. This creates a centralized and hardened system for all cryptographic operations, ensuring that internal Cloudsmith teams do not have direct access to customers keys. -By using KMS, Cloudsmith ensures that the keys used to encrypt one customer's data are cryptographically isolated from another's. Access is governed by the **principle of least privilege**, and every use of a key is logged via AWS CloudTrail, providing a full audit trail. This prevents one tenant's processes from ever having access to the decryption keys of another tenant. +KMS ensures that the keys used to encrypt each customer's data are cryptographically isolated from other tenants. Access is governed by the principle of least privilege, and each use of a key is logged via AWS CloudTrail. ## Direct Data Access Prevention and Ephemeral URLs -The Cloudsmith architecture makes it impossible to access data directly, enforcing a strict, application-managed process for every request. - -- **Architectural Enforcement**: Artifacts stored in the underlying S3 storage are **never directly accessible**. All access must go through our application layer, which enforces two critical steps on every request: - 1. **Authentication (AuthN)**: The system verifies who the user is. - 2. **Authorization (AuthZ)**: The system checks that the authenticated user has the correct permissions to access that specific data. - This entire process is tracked via **audit logs**, so any access can be traced back to a specific user. This ensures that only the appropriate combination of AuthN and AuthZ for a particular customer can access that customer's data. +Cloudsmith’s architecture enforces a strict, application-managed process for each request. -- **Logical Separation**: To further enforce this, we use a segregated storage structure by assigning each customer a unique path prefix. This logical partitioning at the storage level, combined with the application-layer controls, provides strong isolation and prevents any risk of cross-tenant access. +- **Architectural Enforcement**: Artifacts stored in underlying AWS S3 storage are never directly accessible; access requests go through the application layer, which enforces two steps on every request: + + 1. **Authentication (AuthN)**: The system verifies the user’s identity. + 2. **Authorization (AuthZ)**: The system checks that the authenticated user has the correct permissions to access that specific data. This process is tracked via audit logs, so each access can be traced back to a specific user. -- **Ephemeral Pre-signed URLs**: When access is granted, it's done via an ephemeral, pre-signed URL. This is a unique, temporary URL that grants access to a specific file for a limited time. A good analogy is from the movie *The Matrix*: when a character needs to exit the Matrix, they are directed to a specific, ringing phone that only works for a short time before disappearing. Each URL contains a cryptographic signature that makes it impossible to tamper with or forge. If anyone tries to modify the URL or use it after it expires, the signature becomes invalid and access is denied. This prevents a link from being shared or reused indefinitely, ensuring every access attempt is re-validated. -This multi-layered approach—combining universal encryption, isolated key management, and an architecture that brokers every single request—is how Cloudsmith guarantees the security and privacy of your data within our shared tenancy model. +- **Logical Separation**: Cloudsmith enforces a segregated storage structure by assigning each tenant a unique path prefix. This logical partitioning at the storage level, combined with the application-layer controls, provides strong isolation and prevents cross-tenant access. + +- **Ephemeral Pre-signed URLs**: Access is granted via an ephemeral, pre-signed URL. This is a unique, temporary URL that grants access to a specific file for a limited time. Each URL contains a cryptographic signature; modifications of the URL, or use after it expires, invalidate the signature. ## Vulnerability disclosure and Bug Bounty program -In addition to the controls describe above, we maintain an active bug bounty program to detect any security issue. -Security issues are considered a higher priority than all other issues, and the team will investigate and respond to any reported vulnerability in scope. We request that you do not publicly disclose the issue until it has been identified and resolved by Cloudsmith. - -We understand the hard work and knowledge required to identify viable security issues. We offer a reward program for responsibly disclosed vulnerabilities in scope to show our appreciation. - -If you have any question or need extra details, [reach out to us](https://cloudsmith.com/company/contact-us). \ No newline at end of file +Cloudsmith operates a [bug bounty program](https://help.cloudsmith.io/docs/bug-bounty-programme) to encourage responsible reporting of security issues. Reported bugs are investigated promptly. We appreciate your help in disclosing bugs to us privately, so that we can fix them before publishing technical details. \ No newline at end of file diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index 1ede3877..ad633c57 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -149,7 +149,7 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o ### Example Project -For examples of what your project should look like for packaging and publishing/uploading, please have a look at our [examples repository](http://github.com/cloudsmith-io/cloudsmith-examples) (on GitHub). We'll supplement these with more detailed guidance later but otherwise, just ask - we're here to help! +For examples of what your project should look like for packaging and publishing/uploading, please have a look at our [examples repository](http://github.com/cloudsmith-io/cloudsmith-examples) (on GitHub). We'll supplement these with more detailed guidance later but otherwise, just ask - we're here to help. ## Download or Installing a Package diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index c5ee9f7b..34e63faa 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -168,7 +168,7 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o ### Example Project -For examples of what your project should look like for packaging and publishing/uploading, please have a look at our [examples repository](http://github.com/cloudsmith-io/cloudsmith-examples) (on GitHub). We'll supplement these with more detailed guidance later, but otherwise just ask, we're here to help! +For examples of what your project should look like for packaging and publishing/uploading, please have a look at our [examples repository](http://github.com/cloudsmith-io/cloudsmith-examples) (on GitHub). We'll supplement these with more detailed guidance later, but otherwise just ask, we're here to help. *** diff --git a/src/content/integrations/integrating-with-ansible.mdx b/src/content/integrations/integrating-with-ansible.mdx index 8a1d28cd..f9c0e337 100644 --- a/src/content/integrations/integrating-with-ansible.mdx +++ b/src/content/integrations/integrating-with-ansible.mdx @@ -1,4 +1,4 @@ -import { Video } from '@/components' +import { Video } from '@/components'; export const parentTitle = 'Integrations'; # Integrating Ansible diff --git a/src/content/integrations/integrating-with-chef.mdx b/src/content/integrations/integrating-with-chef.mdx index 4c38d326..4e5fea1f 100644 --- a/src/content/integrations/integrating-with-chef.mdx +++ b/src/content/integrations/integrating-with-chef.mdx @@ -1,3 +1,5 @@ +export const parentTitle = 'Integrations'; + # Integrating Chef How to integrate Chef with Cloudsmith diff --git a/src/content/integrations/integrating-with-circleci.mdx b/src/content/integrations/integrating-with-circleci.mdx index 85ee43ed..3dc565cb 100644 --- a/src/content/integrations/integrating-with-circleci.mdx +++ b/src/content/integrations/integrating-with-circleci.mdx @@ -1,4 +1,6 @@ import { Note, BlockImage, Card, Video } from '@/components'; +export const parentTitle = 'Integrations'; + import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; import envVarimage from './images/circleci/ciEnvVar.png' From 8e960e0b56d512417e1d07bd04d0e939c14e1374 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Fri, 8 Aug 2025 08:17:21 +0200 Subject: [PATCH 117/127] fix: env NEXT_PUBLIC_CLOUDSMITH_DOCS_URL --- .env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env b/.env index ee1cfd12..28f19231 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ NEXT_PUBLIC_CLOUDSMITH_API_URL="https://api.cloudsmith.io" -NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs-public" +NEXT_PUBLIC_CLOUDSMITH_DOCS_URL="https://github.com/cloudsmith-io/cloudsmith-docs" NEXT_PUBLIC_CLOUDSMITH_DOCS_BRANCH="main" CLOUDSMITH_API_V1_URL="https://api.cloudsmith.io/swagger/?format=openapi" CLOUDSMITH_API_V2_URL="https://api.cloudsmith.io/v2/openapi/?format=json" \ No newline at end of file From 6f9523c9930fe0c5741366458105558b9de5c22a Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Fri, 8 Aug 2025 15:13:53 +0200 Subject: [PATCH 118/127] add: @ciaracarey suggested edits --- src/content/artifact-management/package-quarantine.mdx | 10 ++++++++++ src/content/policy-management/block-until-scan.mdx | 6 +++++- src/content/supply-chain-security/epm/index.mdx | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/content/artifact-management/package-quarantine.mdx b/src/content/artifact-management/package-quarantine.mdx index 810f4464..073d3311 100644 --- a/src/content/artifact-management/package-quarantine.mdx +++ b/src/content/artifact-management/package-quarantine.mdx @@ -87,3 +87,13 @@ For example: Please see the Cloudsmith [Interactive API Reference](/api/packages/quarantine) for details on the Quarantine Package API endpoint *** + +## Client behaviour + +When a quarantined package is requested by native tooling e.g. `pip install`, `mvn install`, `npm install`, etc., the repository returns **HTTP 403 Forbidden**. Builds will fail with a 403 error such as: + +``` +ERROR: HTTP error 403 while getting +``` + +This message confirms that a package is quarantined. \ No newline at end of file diff --git a/src/content/policy-management/block-until-scan.mdx b/src/content/policy-management/block-until-scan.mdx index c939640a..3a2cab90 100644 --- a/src/content/policy-management/block-until-scan.mdx +++ b/src/content/policy-management/block-until-scan.mdx @@ -69,7 +69,11 @@ When a package is not yet cached within Cloudsmith, every package and its depend When Block Until Scan is enabled, the initial download request for an uncached package will be temporarily blocked until the policy evaluation has completed: - **Successful Scan**: If the package passes all policy checks, the download will proceed, and the package will be served normally. -- **Failed Scan/Policy Violation**: If the package fails a policy check (e.g., due to a vulnerability or license issue), or if the scanning process encounters an unrecoverable error, the download will be blocked with a `403 Forbidden` error code. +- **Policy Matched**: If the package is matched against a policy, the package is processed exactly as the matched policy specifies: + - If the policy's action is **quarantine**, the package is quarantined and any download attempt returns **403** Forbidden. + - If the policy's action is **tag, allow**, or any other non-blocking action, the package is served normally (with the tag or other metadata applied). + +If the package fails a policy check (e.g., due to a vulnerability or license issue), or if the scanning process encounters an unrecoverable error, the download will be blocked with a `403 Forbidden` error code. 📘 Without Block Until Scan, the same package would be delivered to the user immediately, before the full evaluation phase of the synchronization process had taken place. Cloudsmith would then asynchronously cache and synchronize the package after the first download. At this point, the system would apply the policy to the package and could then quarantine it. While future downloads of the package would then be blocked, this asynchronous processing means the initial downloads of the package could not be prevented if required. diff --git a/src/content/supply-chain-security/epm/index.mdx b/src/content/supply-chain-security/epm/index.mdx index cf17b915..f20a011d 100644 --- a/src/content/supply-chain-security/epm/index.mdx +++ b/src/content/supply-chain-security/epm/index.mdx @@ -47,6 +47,7 @@ Actions can be assigned to policies to act on packages following policy evaluati - `set_state`. This allows you to control the state of the package. For example, whether to delete or quarantine the package. See the [PackageStateEnum](https://api.cloudsmith.io/v2/swagger/#/:~:text=MovePackageActionTyped-,PackageStateEnum,string,-AVAILABLE%20%2D%20The%20package) for more information. - `add_package_tags`. Add a set of tags to the package. +- Note on quarantining action: If you set the action to quarantine, any request for the package returns a **403 Forbidden** error code. For more detail on creating Enterprise policy management policies and actions, see the [Getting Started with Enterprise Policy Management guide](/supply-chain-security/epm/getting-started). From 99269c9144ecdd7b1fa23744f48b74a5bc894306 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Fri, 8 Aug 2025 15:16:12 +0200 Subject: [PATCH 119/127] add: one from glenn --- src/content/support/billing.mdx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/content/support/billing.mdx b/src/content/support/billing.mdx index f9bbde84..8c20397f 100644 --- a/src/content/support/billing.mdx +++ b/src/content/support/billing.mdx @@ -42,7 +42,11 @@ You can upgrade at any time, and you'll immediately benefit from the increased l ## How is the package delivery usage calculated? -Uploads (putting artifacts into Cloudsmith repositories) are free of charge, and do not count toward package delivery costs. Successful downloads, including partial downloads, contribute to your package delivery usage costs; we'll add the sent server/client bytes to your total usage. We don't charge by the number of requests; only outgoing bytes (downloads) are counted within a billing period. **Please Note** 1GB = 1,000,000,000 (1000^3) bytes, not 1,073,741,824 (1024^3) bytes. +Uploads (putting artifacts into Cloudsmith repositories) are free of charge, and do not count toward package delivery costs. Successful deliveries, including partial deliveries, contribute to your package delivery usage costs; we'll add the sent server/client bytes to your total usage. We don't charge by the number of requests; only outgoing bytes (downloads) are counted within a billing period. **Please Note** 1GB = 1,000,000,000 (1000^3) bytes, not 1,073,741,824 (1024^3) bytes. + +## What's a "partial delivery?" + +A partial delivery occurs when a client initiates a download but then cuts it off for any reason, e.g. a 1GB artifact that is cut off after 500MB are delivered. In this case, Cloudsmith will bill for 500MB of package delivery, not 1GB. A partial delivery is not always a client side error; some clients take advantage of ranges to download multiple parts/sections of files in parallel (for performance reasons or otherwise). ## How is the artifact data usage calculated? From b22ad2df6b150543a36a32902a7e1d9899707e0b Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Fri, 8 Aug 2025 17:12:25 +0200 Subject: [PATCH 120/127] fix: links --- src/content/about-cloudsmith/common-use-cases.mdx | 6 +++--- .../artifact-management/search-filter-sort-packages.mdx | 2 +- .../authentication/single-sign-on-with-google-g-suite.mdx | 3 +-- .../authentication/single-sign-on-with-jumpcloud.mdx | 2 +- src/content/authentication/single-sign-on-with-okta.mdx | 2 +- .../authentication/single-sign-on-with-onelogin.mdx | 6 +++--- src/content/authentication/single-sign-on.mdx | 4 ++-- src/content/developer-tools/developer-community.mdx | 7 ------- src/content/formats/nuget-feed.mdx | 2 +- src/content/guides/managing-permissions.mdx | 6 +++--- src/content/homepage.json | 4 ++-- src/content/menu.json | 6 +----- src/content/software-distribution/broadcasts/index.mdx | 4 ++-- src/content/supply-chain-security/continuous-security.mdx | 2 +- src/content/workspaces/custom-domains.mdx | 2 +- src/content/workspaces/index.mdx | 6 +++--- src/content/workspaces/overview.mdx | 2 +- src/content/workspaces/privileges.mdx | 2 +- src/snippets/integrationsGroupSnippet.mdx | 4 ++-- 19 files changed, 30 insertions(+), 42 deletions(-) diff --git a/src/content/about-cloudsmith/common-use-cases.mdx b/src/content/about-cloudsmith/common-use-cases.mdx index 2a6de2ab..81a4c427 100644 --- a/src/content/about-cloudsmith/common-use-cases.mdx +++ b/src/content/about-cloudsmith/common-use-cases.mdx @@ -82,7 +82,7 @@ At its core, Cloudsmith provides a centralized, single source of truth for all y ### Step 8 -Next, we'll configure SAML settings. To determine your **Single sign on URL** we use the following format: "https://app.cloudsmith.com/WORKSPACE/saml/acs/", where "WORKSPACE" is replaced with your organization's slug. +Next, we'll configure SAML settings. To determine your **Single sign on URL** we use the following format: `https://app.cloudsmith.com/WORKSPACE/saml/acs/`, where "WORKSPACE" is replaced with your organization's slug. We use this URL for the **Audience**, **Recipient**, and **ACS (Consumer) URL** values in the form below. For **ACS (Consumer) URL Validator** use ".\*". @@ -129,7 +129,7 @@ Your application should now appear on the OneLogin portal. You can then enable SAML authentication in your Cloudsmith [SAML settings](/authentication/single-sign-on#enable-saml) and you can use OneLogin to begin logging in straight away. -You'll be able to access the landing page of your organization at the following URL: -https://app.cloudsmith.com/WORKSPACE/saml/login/ +You'll be able to access the landing page of your organization at the following URL: +`https://app.cloudsmith.com/WORKSPACE/saml/login/`. Where _WORKSPACE_ is your organization's slug/identifier (what you would normally see in the URL when accessing your organization within Cloudsmith). diff --git a/src/content/authentication/single-sign-on.mdx b/src/content/authentication/single-sign-on.mdx index 6de6afae..91993827 100644 --- a/src/content/authentication/single-sign-on.mdx +++ b/src/content/authentication/single-sign-on.mdx @@ -44,9 +44,9 @@ Other providers may be supported if they can set up a generic SAML application. ## SAML Landing Page (Login) -Once configured, you'll be able to access the SAML login page of your workspace at the following URL: https://app.cloudsmith.com/WORKSPACE/saml/login/ +Once configured, you'll be able to access the SAML login page of your workspace at the following URL: `https://app.cloudsmith.com/WORKSPACE/saml/login/`. -Where _WORKSPACE_ is your workspace's slug/identifier (what you would normally see in the URL when accessing your workspace within Cloudsmith). If you're not sure what this is, just ask us. +Where _WORKSPACE_ is your workspace's slug/identifier (what you would normally see in the URL when accessing your workspace within Cloudsmith). ## Enable SAML diff --git a/src/content/developer-tools/developer-community.mdx b/src/content/developer-tools/developer-community.mdx index 6de2efc9..30609350 100644 --- a/src/content/developer-tools/developer-community.mdx +++ b/src/content/developer-tools/developer-community.mdx @@ -66,13 +66,6 @@ Everything external to our API is open-source. linkText="docker-extension-cloudsmith" icon="utility/guide" /> - -Visit the [Broadcast Customization](./broadcasts-customization) documentation page to learn how to configure the feel and look and metadata available in these user facing pages. +Visit the [Broadcast Customization](/software-distribution/broadcasts/broadcasts-customization) documentation page to learn how to configure the feel and look and metadata available in these user facing pages. ## Managing Broadcasts @@ -62,7 +62,7 @@ This section contains three main areas: - Popular Packages - Workspace total public and OSS broadcasts count. - **Broadcasts**: Shows a complete list of all your repositories that are being broadcasted. Clicking on a specific repository will show you analytics scoped just to that broadcast. -- **Theme**: Allows you to [customize the look and feel of your broadcast](./broadcasts-customization) pages. +- **Theme**: Allows you to [customize the look and feel of your broadcast](/software-distribution/broadcasts/broadcasts-customization) pages. ### Creating a New Broadcast diff --git a/src/content/supply-chain-security/continuous-security.mdx b/src/content/supply-chain-security/continuous-security.mdx index 6093d69e..7a2c5f46 100644 --- a/src/content/supply-chain-security/continuous-security.mdx +++ b/src/content/supply-chain-security/continuous-security.mdx @@ -18,7 +18,7 @@ Cloudsmith [scans](./vulnerability-scanning) artifacts as they are introduced in When artifacts are first scanned, Cloudsmith stores the list of identified components. Continuous Security uses that stored list to check for vulnerabilities using an advisory database that is refreshed hourly. When a new threat is discovered that affects an artifact in your workspace, Continuous Security will flag it via EPM without the need for a full manual or scheduled re-scan. -For more information about using EPM to address vulnerabilities identified by Continuous Security, see [Getting Started with Enterprise Policy Management](./emp/getting-started) and [Rego Recipes](./epm/rego). +For more information about using EPM to address vulnerabilities identified by Continuous Security, see [Getting Started with Enterprise Policy Management](./epm/getting-started) and [Rego Recipes](./epm/rego). Details of the specific vulnerability data available via Continuous Security are available in our API documentation under the vulnerabilities object in the [PolicyInputV0 schema](https://api.cloudsmith.io/v2/swagger/). diff --git a/src/content/workspaces/custom-domains.mdx b/src/content/workspaces/custom-domains.mdx index 4be0de19..b3986ea7 100644 --- a/src/content/workspaces/custom-domains.mdx +++ b/src/content/workspaces/custom-domains.mdx @@ -9,7 +9,7 @@ This is a great idea if you are: - A security-conscious DevOps team that is looking to control the source endpoint for artifacts -If you are looking for Broadcast URL customization, please refer to the [Broadcasts](/software-delivery/broadcasts) documentation or [contact us](https://cloudsmith.com/company/contact-us). +If you are looking for Broadcast URL customization, please refer to the [Broadcasts](/software-distribution/broadcasts) documentation or [contact us](https://cloudsmith.com/company/contact-us). Custom domains are available with our Ultra and Enterprise plans. We strongly recommend - and may require - custom domains for any customer with significant Cloudsmith package delivery traffic. diff --git a/src/content/workspaces/index.mdx b/src/content/workspaces/index.mdx index d78393d5..57c2dc95 100644 --- a/src/content/workspaces/index.mdx +++ b/src/content/workspaces/index.mdx @@ -23,7 +23,7 @@ Here you can see the workspaces you've joined and also accept new invitations: -E-mail notifications will be sent after a new invitation. From this page you can also Accept or Reject new invitations. To learn how to invite users to a workspace, review the [Users](/teams-and-accounts/users) documentation. +E-mail notifications will be sent after a new invitation. From this page you can also Accept or Reject new invitations. To learn how to invite users to a workspace, review the [Users](/accounts-and-teams/users) documentation. ## Primary Workspace @@ -41,11 +41,11 @@ Here, you'll be presented with a list of all the Workspaces available for you. T ## Workspace Overview Page -Browse to the [Workspace Overview Page](./overview) documentation page to learn more about it. +Browse to the [Workspace Overview Page](/workspaces/overview) documentation page to learn more about it. ## Workspace Settings -Browse to the [Workspace Settings](./workspace-settings) documentation page to learn about the different controls available. +Browse to the [Workspace Settings](/workspaces/workspace-settings) documentation page to learn about the different controls available. ## Multiple Email Management diff --git a/src/content/workspaces/overview.mdx b/src/content/workspaces/overview.mdx index 27676c4a..90f376d6 100644 --- a/src/content/workspaces/overview.mdx +++ b/src/content/workspaces/overview.mdx @@ -26,7 +26,7 @@ A primary navigation bar at the top allows you to switch between different secti Secondary navigation includes: - **Logs**: View [client and audit logs](/logs-and-observability) for your workspace. - **Usage**: access [analytics](/logs-and-observability/usage) and understand in more detail your package usage and delivery. -- **Security**: Get an overview of [security findings](/supply-chain-security) and [license violations](/supply-chain-security/license-compliance). +- **Security**: Get an overview of [security findings](/supply-chain-security) and [license violations](/policy-management/license-compliance). ### Workspace Analytics overview diff --git a/src/content/workspaces/privileges.mdx b/src/content/workspaces/privileges.mdx index d5d5c297..eddac882 100644 --- a/src/content/workspaces/privileges.mdx +++ b/src/content/workspaces/privileges.mdx @@ -69,4 +69,4 @@ By default, users are granted no specific repository privileges. You can choose | **Read** | Allows users to view and download packages. This permission is for authenticated users working directly in the system. In contrast, an entitlement token is typically used by automated systems (like a CI/CD pipeline) for programmatic, read-only access without a user account. | | **None** | (Default) No specific repository permissions are granted. | -To configure more specific access rules for individual users, teams, or services, see the [Repository Access Control](/repository/privileges) documentation. +To configure more specific access rules for individual users, teams, or services, see the [Repository Access Control](/repositories/repository-privileges) documentation. diff --git a/src/snippets/integrationsGroupSnippet.mdx b/src/snippets/integrationsGroupSnippet.mdx index 1997ed17..d4d4ab00 100644 --- a/src/snippets/integrationsGroupSnippet.mdx +++ b/src/snippets/integrationsGroupSnippet.mdx @@ -83,7 +83,7 @@ Cloudsmith supports the following integrations:
      @@ -237,7 +237,7 @@ Cloudsmith supports the following integrations: - +
      Harness
      From 0a04aecc08c3abb8232f7bec4f73f01d21745d44 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 12 Aug 2025 14:41:00 +0200 Subject: [PATCH 121/127] add: missing entries in /formats --- src/icons/icon-registry.tsx | 2 ++ src/icons/svgs/format/OCI.tsx | 29 ++++++++++++++++++++++ src/snippets/packageFormatGroupSnippet.mdx | 18 ++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/icons/svgs/format/OCI.tsx diff --git a/src/icons/icon-registry.tsx b/src/icons/icon-registry.tsx index 54d76daa..a3318ecf 100644 --- a/src/icons/icon-registry.tsx +++ b/src/icons/icon-registry.tsx @@ -44,6 +44,7 @@ import { FormatLuarocksIcon } from './svgs/format/Luarocks'; import { FormatMavenIcon } from './svgs/format/Maven'; import { FormatNpmIcon } from './svgs/format/Npm'; import { FormatNugetIcon } from './svgs/format/Nuget'; +import { FormatOCIIcon } from './svgs/format/OCI'; import { FormatPowershellIcon } from './svgs/format/Powershell'; import { FormatPythonIcon } from './svgs/format/Python'; import { FormatRawIcon } from './svgs/format/Raw'; @@ -149,6 +150,7 @@ export const iconRegistry = createIconRegistry({ 'format/maven': FormatMavenIcon, 'format/npm': FormatNpmIcon, 'format/nuget': FormatNugetIcon, + 'format/oci': FormatOCIIcon, 'format/powershell': FormatPowershellIcon, 'format/python': FormatPythonIcon, 'format/raw': FormatRawIcon, diff --git a/src/icons/svgs/format/OCI.tsx b/src/icons/svgs/format/OCI.tsx new file mode 100644 index 00000000..98969eb6 --- /dev/null +++ b/src/icons/svgs/format/OCI.tsx @@ -0,0 +1,29 @@ +import { createIcon, SpecificIconProps } from '../../util/create-icon'; + +export const FormatOCIIcon = createIcon( + 'format/docker', + ({ width = 576, height = 576, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 576 576', + fill: 'black', + children: ( + <> + + + + + + + + ), + }), +); diff --git a/src/snippets/packageFormatGroupSnippet.mdx b/src/snippets/packageFormatGroupSnippet.mdx index d8c97a1e..69238108 100644 --- a/src/snippets/packageFormatGroupSnippet.mdx +++ b/src/snippets/packageFormatGroupSnippet.mdx @@ -179,6 +179,15 @@ Cloudsmith supports the following package formats:
      + +
      + OCI +
      +
      + + +
      +
      Powershell Modules @@ -215,6 +224,15 @@ Cloudsmith supports the following package formats: + +
      + Ruby +
      +
      + + +
      +
      sbt From 8a951c2c15c6f566a5b49f4ebd88ff4a61a2b223 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 12 Aug 2025 14:57:07 +0200 Subject: [PATCH 122/127] fix: unity logo --- src/icons/svgs/format/Unity.tsx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/icons/svgs/format/Unity.tsx b/src/icons/svgs/format/Unity.tsx index dba58cf6..5c39326a 100644 --- a/src/icons/svgs/format/Unity.tsx +++ b/src/icons/svgs/format/Unity.tsx @@ -2,18 +2,17 @@ import { createIcon, SpecificIconProps } from '../../util/create-icon'; export const FormatUnityIcon = createIcon( 'format/unity', - ({ width = 264, height = 97, ...props }) => ({ + ({ width = 128, height = 128, ...props }) => ({ ...props, width, height, - viewBox: '0 0 264 97', + viewBox: '0 0 128 128', fill: 'none', children: ( <> - + + + ), }), From 24c9b4fe86fd4624cf833e3d63d11b078fe374b6 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 12 Aug 2025 15:23:47 +0200 Subject: [PATCH 123/127] fix: broken link + mess in integrations snippet --- .../deployment-for-operations.mdx | 2 +- ...ess.mdx => integrating-with-harnesscd.mdx} | 0 src/snippets/integrationsGroupSnippet.mdx | 66 +------------------ 3 files changed, 2 insertions(+), 66 deletions(-) rename src/content/integrations/{integrating-with-harness.mdx => integrating-with-harnesscd.mdx} (100%) diff --git a/src/content/about-cloudsmith/deployment-for-operations.mdx b/src/content/about-cloudsmith/deployment-for-operations.mdx index b25f45fd..63eab370 100644 --- a/src/content/about-cloudsmith/deployment-for-operations.mdx +++ b/src/content/about-cloudsmith/deployment-for-operations.mdx @@ -35,7 +35,7 @@ Cloudsmith can integrate with any CI/CD or CCA tool through a number of methods - [Drone CI](/integrations/integrating-with-drone-ci) - [GitLab CI/CD](/integrations/integrating-with-gitlab-cicd) - [GitHub Actions](/integrations/integrating-with-github-actions) -- [Harness CD](/integrations/integrating-with-harness) +- [Harness CD](/integrations/integrating-with-harnesscd) - [Jenkins](/integrations/integrating-with-jenkins) - [Puppet](/integrations/integrating-with-puppet) - [Terraform](/integrations/integrating-with-terraform) diff --git a/src/content/integrations/integrating-with-harness.mdx b/src/content/integrations/integrating-with-harnesscd.mdx similarity index 100% rename from src/content/integrations/integrating-with-harness.mdx rename to src/content/integrations/integrating-with-harnesscd.mdx diff --git a/src/snippets/integrationsGroupSnippet.mdx b/src/snippets/integrationsGroupSnippet.mdx index d4d4ab00..fd5820cf 100644 --- a/src/snippets/integrationsGroupSnippet.mdx +++ b/src/snippets/integrationsGroupSnippet.mdx @@ -45,70 +45,6 @@ Cloudsmith supports the following integrations: ## CI / CD
      - -
      - - Azure DevOps -
      -
      - - Bitbucket -
      -
      - - Buildkite -
      -
      - - Circle CI -
      -
      - - Drone CI -
      - - -
      - - GitLab CI/CD -
      -
      - - Harness -
      -
      - - Jenkins -
      -
      - - Renovate CLI -
      -
      - - Semaphore CI -
      -
      - - Travis CI -
      -
      - - TeamCity -
      -
      AWS CodeBuild @@ -239,7 +175,7 @@ Cloudsmith supports the following integrations:
      - Harness + Harness CD
      Date: Tue, 12 Aug 2025 15:40:55 +0200 Subject: [PATCH 124/127] fix: table font size too big --- src/components/Table/Table.module.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/Table/Table.module.css b/src/components/Table/Table.module.css index e4104d7a..f6331f1d 100644 --- a/src/components/Table/Table.module.css +++ b/src/components/Table/Table.module.css @@ -42,6 +42,7 @@ .root td { padding: var(--space-xs); border-bottom: 1px solid var(--color-border); + font-size: var(--text-body-xs); } .root tbody tr:first-child td { From 429e92b411c0eba2ee4975a625291f05caddc120 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Tue, 12 Aug 2025 15:42:16 +0200 Subject: [PATCH 125/127] fix: capitalization --- src/content/formats/chocolatey-repository.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/formats/chocolatey-repository.mdx b/src/content/formats/chocolatey-repository.mdx index 20e81fba..6cebc5af 100644 --- a/src/content/formats/chocolatey-repository.mdx +++ b/src/content/formats/chocolatey-repository.mdx @@ -126,7 +126,7 @@ choco source add -n example-repo -s https://nuget.cloudsmith.io/OWNER/REPOSITORY choco sources add -n example-repo -s https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 -u "USERNAME" -p "API-KEY" ``` - + Entitlement Tokens, User Credentials and API-Keys should be treated as secrets and you should ensure that you do not commit them in configurations files along with source code, or expose them in any logs. From 9277a23865c586bad29fc01f3c4038dbcdc6d3fd Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 13 Aug 2025 09:22:20 +0200 Subject: [PATCH 126/127] add: submenus for formats and integrations --- src/content/formats/alpine-repository.mdx | 2 +- src/content/formats/cargo-registry.mdx | 2 +- src/content/formats/chocolatey-repository.mdx | 4 +- src/content/formats/cocoapods-repository.mdx | 2 +- src/content/formats/composer-repository.mdx | 2 +- src/content/formats/conan-repository.mdx | 2 +- src/content/formats/conda-repository.mdx | 2 +- src/content/formats/cran-repository.mdx | 2 +- src/content/formats/dart-repository.mdx | 2 +- src/content/formats/debian-repository.mdx | 2 +- src/content/formats/docker-registry.mdx | 2 +- src/content/formats/go-registry.mdx | 2 +- src/content/formats/gradle-repository.mdx | 2 +- src/content/formats/helm-chart-repository.mdx | 2 +- src/content/formats/hex-repository.mdx | 2 +- src/content/formats/luarocks-repository.mdx | 2 +- src/content/formats/maven-repository.mdx | 2 +- src/content/formats/npm-registry.mdx | 2 +- src/content/formats/nuget-feed.mdx | 2 +- src/content/formats/nuget-symbol-server.mdx | 2 +- src/content/formats/oci-repository.mdx | 2 +- src/content/formats/p2-repository.mdx | 2 +- .../formats/powershell-modules-repository.mdx | 2 +- src/content/formats/python-repository.mdx | 2 +- src/content/formats/raw-repository.mdx | 2 +- src/content/formats/redhat-repository.mdx | 2 +- src/content/formats/ruby-repository.mdx | 2 +- src/content/formats/sbt-repository.mdx | 2 +- src/content/formats/swift-registry.mdx | 2 +- .../formats/terraform-modules-repository.mdx | 2 +- src/content/formats/unity-registry.mdx | 2 +- src/content/formats/vagrant-repository.mdx | 2 +- .../integrations/integrating-with-aikido.mdx | 2 +- .../integrations/integrating-with-ansible.mdx | 2 +- .../integrating-with-aws-codebuild.mdx | 2 +- .../integrating-with-azure-devops.mdx | 2 +- .../integrating-with-bitbucket-pipelines.mdx | 2 +- .../integrating-with-buildkite.mdx | 2 +- .../integrating-with-chainguard-images.mdx | 2 +- .../integrations/integrating-with-chef.mdx | 2 +- .../integrating-with-circleci.mdx | 2 +- .../integrating-with-codefresh.mdx | 2 +- .../integrations/integrating-with-datadog.mdx | 2 +- .../integrating-with-dependabot.mdx | 2 +- .../integrating-with-docker-hub.mdx | 2 +- .../integrating-with-drone-ci.mdx | 2 +- .../integrating-with-gcp-cloudbuild.mdx | 4 +- .../integrating-with-github-actions.mdx | 2 +- .../integrating-with-gitlab-cicd.mdx | 2 +- .../integrating-with-harnesscd.mdx | 2 +- .../integrations/integrating-with-jenkins.mdx | 2 +- .../integrating-with-microsoft-teams.mdx | 2 +- .../integrating-with-octopus-deploy.mdx | 2 +- .../integrations/integrating-with-puppet.mdx | 2 +- .../integrating-with-renovate.mdx | 2 +- .../integrations/integrating-with-roadie.mdx | 2 +- .../integrating-with-semaphore-ci.mdx | 2 +- .../integrations/integrating-with-slack.mdx | 2 +- .../integrating-with-teamcity.mdx | 2 +- .../integrating-with-terraform.mdx | 2 +- .../integrating-with-travis-ci.mdx | 2 +- .../integrations/integrating-with-zapier.mdx | 2 +- .../integrations/upload-via-postman.mdx | 2 +- src/content/menu.json | 250 +++++++++++++++++- 64 files changed, 313 insertions(+), 67 deletions(-) diff --git a/src/content/formats/alpine-repository.mdx b/src/content/formats/alpine-repository.mdx index 40c1878d..e620d30f 100644 --- a/src/content/formats/alpine-repository.mdx +++ b/src/content/formats/alpine-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Alpine Repository diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index 7b21ff3d..b783d879 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Cargo Registry diff --git a/src/content/formats/chocolatey-repository.mdx b/src/content/formats/chocolatey-repository.mdx index 6cebc5af..888e9825 100644 --- a/src/content/formats/chocolatey-repository.mdx +++ b/src/content/formats/chocolatey-repository.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Chocolatey Repository @@ -140,4 +140,4 @@ choco install PACKAGE_NAME -Source example-repo ## Nuget and Cloudsmith CLI -See, [NuGet Feed](/formats/nuget-feed), for how to create chocolatey packages using Nuget or the cloudsmith CLI. +See, [NuGet Feed](/formats/nuget-feed), for how to create chocolatey packages using Nuget or the Cloudsmith CLI. diff --git a/src/content/formats/cocoapods-repository.mdx b/src/content/formats/cocoapods-repository.mdx index 35889974..182629b9 100644 --- a/src/content/formats/cocoapods-repository.mdx +++ b/src/content/formats/cocoapods-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # CocoaPods Repository diff --git a/src/content/formats/composer-repository.mdx b/src/content/formats/composer-repository.mdx index d3b1a60b..d593662c 100644 --- a/src/content/formats/composer-repository.mdx +++ b/src/content/formats/composer-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Composer Repository diff --git a/src/content/formats/conan-repository.mdx b/src/content/formats/conan-repository.mdx index 95e5b4f1..e24da4a0 100644 --- a/src/content/formats/conan-repository.mdx +++ b/src/content/formats/conan-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Conan Repository diff --git a/src/content/formats/conda-repository.mdx b/src/content/formats/conda-repository.mdx index dfb230d3..142ced89 100644 --- a/src/content/formats/conda-repository.mdx +++ b/src/content/formats/conda-repository.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Conda Repository diff --git a/src/content/formats/cran-repository.mdx b/src/content/formats/cran-repository.mdx index dda5f889..94933309 100644 --- a/src/content/formats/cran-repository.mdx +++ b/src/content/formats/cran-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # CRAN Repository diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index dbedb22c..c21f6e1f 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Dart Repository diff --git a/src/content/formats/debian-repository.mdx b/src/content/formats/debian-repository.mdx index aceb3447..e63009db 100644 --- a/src/content/formats/debian-repository.mdx +++ b/src/content/formats/debian-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Debian Repository diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index cf13d2ca..7239a797 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Docker Registry diff --git a/src/content/formats/go-registry.mdx b/src/content/formats/go-registry.mdx index db0cfb50..f7557c05 100644 --- a/src/content/formats/go-registry.mdx +++ b/src/content/formats/go-registry.mdx @@ -1,5 +1,5 @@ import { Note, Video, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + import go_upstream from './images/go-registry/go_upstream.png'; diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index 6310a271..b64fba81 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Gradle Repository diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index cb866048..82b38ca1 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Helm Chart Repository diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index ad633c57..8f46e7ec 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Hex Repository diff --git a/src/content/formats/luarocks-repository.mdx b/src/content/formats/luarocks-repository.mdx index ad8a831d..59000950 100644 --- a/src/content/formats/luarocks-repository.mdx +++ b/src/content/formats/luarocks-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # LuaRocks Repository diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index 34e63faa..6711043a 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Maven Repository diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index 20fef411..ddc9c050 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -1,5 +1,5 @@ import { Tag, Note, BlockImage, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # npm Registry diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index 06bfa21a..da251c27 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -1,5 +1,5 @@ import { Tag, Note, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + import img_nuget from './images/nuget/setting-nuget-signing.png'; diff --git a/src/content/formats/nuget-symbol-server.mdx b/src/content/formats/nuget-symbol-server.mdx index 3cff1b03..baa4438f 100644 --- a/src/content/formats/nuget-symbol-server.mdx +++ b/src/content/formats/nuget-symbol-server.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + import vsToolsOptionsImage from './images/nuget-symbol-server/07b2a66-image.png'; import debuggingSymbols from './images/nuget-symbol-server/dfb62d0-image.png'; diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index 87bc93ac..105ced48 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # OCI Repository diff --git a/src/content/formats/p2-repository.mdx b/src/content/formats/p2-repository.mdx index 713eb6e2..5eedc536 100644 --- a/src/content/formats/p2-repository.mdx +++ b/src/content/formats/p2-repository.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # P2 Repository diff --git a/src/content/formats/powershell-modules-repository.mdx b/src/content/formats/powershell-modules-repository.mdx index 12324b7e..a11ebbda 100644 --- a/src/content/formats/powershell-modules-repository.mdx +++ b/src/content/formats/powershell-modules-repository.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # PowerShell Modules Repository diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index 229b462c..2884a9c3 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + import uv_terminal from './images/python/uv_terminal.png'; import uv_dependencies from './images/python/uv_dependencies.png'; diff --git a/src/content/formats/raw-repository.mdx b/src/content/formats/raw-repository.mdx index 0b670564..cd47a2b5 100644 --- a/src/content/formats/raw-repository.mdx +++ b/src/content/formats/raw-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, BlockImage, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + import downloadPackageImage from './images/raw-repository/717e936e27b22feaee711ad6a412d1fade259c5768a4860d33ae5781152f8b68-download1.png'; import privateRepositoryUsePackageImage from './images/raw-repository/504971117e99871f745b0b730bb4a58894ae44fa903477f2cb7a0cde5f4b207c-Screenshot15.png'; diff --git a/src/content/formats/redhat-repository.mdx b/src/content/formats/redhat-repository.mdx index 88ce8610..e13ae968 100644 --- a/src/content/formats/redhat-repository.mdx +++ b/src/content/formats/redhat-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # RedHat Repository diff --git a/src/content/formats/ruby-repository.mdx b/src/content/formats/ruby-repository.mdx index ef7c247c..fb5935d8 100644 --- a/src/content/formats/ruby-repository.mdx +++ b/src/content/formats/ruby-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Ruby Repository diff --git a/src/content/formats/sbt-repository.mdx b/src/content/formats/sbt-repository.mdx index 6bbd112b..09b2183c 100644 --- a/src/content/formats/sbt-repository.mdx +++ b/src/content/formats/sbt-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # sbt Repository diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index bd03d6c8..ce670601 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -1,6 +1,6 @@ import { Tag, Note, BlockImage } from '@/components'; -export const parentTitle = 'Supported Formats'; + import swift from './images/swift/swift.png'; diff --git a/src/content/formats/terraform-modules-repository.mdx b/src/content/formats/terraform-modules-repository.mdx index ecf6d0c2..e264d312 100644 --- a/src/content/formats/terraform-modules-repository.mdx +++ b/src/content/formats/terraform-modules-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Terraform Modules Repository diff --git a/src/content/formats/unity-registry.mdx b/src/content/formats/unity-registry.mdx index 44c949b1..7eb814de 100644 --- a/src/content/formats/unity-registry.mdx +++ b/src/content/formats/unity-registry.mdx @@ -1,5 +1,5 @@ import { Tag, Note, Video } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Unity Registry diff --git a/src/content/formats/vagrant-repository.mdx b/src/content/formats/vagrant-repository.mdx index 48f92e6b..5ebe455a 100644 --- a/src/content/formats/vagrant-repository.mdx +++ b/src/content/formats/vagrant-repository.mdx @@ -1,5 +1,5 @@ import { Tag, Note } from '@/components'; -export const parentTitle = 'Supported Formats'; + # Vagrant Repository diff --git a/src/content/integrations/integrating-with-aikido.mdx b/src/content/integrations/integrating-with-aikido.mdx index 08c6a6d6..ec593a0c 100644 --- a/src/content/integrations/integrating-with-aikido.mdx +++ b/src/content/integrations/integrating-with-aikido.mdx @@ -1,5 +1,5 @@ import { Video, BlockImage, Note } from '@/components' -export const parentTitle = 'Integrations'; + import aikido_auth from './images/aikido/aikido_auth.png'; import aikido_linkImages from './images/aikido/aikido_linkImages.png'; diff --git a/src/content/integrations/integrating-with-ansible.mdx b/src/content/integrations/integrating-with-ansible.mdx index f9c0e337..8ccd13fb 100644 --- a/src/content/integrations/integrating-with-ansible.mdx +++ b/src/content/integrations/integrating-with-ansible.mdx @@ -1,5 +1,5 @@ import { Video } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating Ansible diff --git a/src/content/integrations/integrating-with-aws-codebuild.mdx b/src/content/integrations/integrating-with-aws-codebuild.mdx index 158aa506..a9a2be43 100644 --- a/src/content/integrations/integrating-with-aws-codebuild.mdx +++ b/src/content/integrations/integrating-with-aws-codebuild.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage, Video } from '@/components'; -export const parentTitle = 'Integrations'; + import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; diff --git a/src/content/integrations/integrating-with-azure-devops.mdx b/src/content/integrations/integrating-with-azure-devops.mdx index 0a9efb52..b3349fbd 100644 --- a/src/content/integrations/integrating-with-azure-devops.mdx +++ b/src/content/integrations/integrating-with-azure-devops.mdx @@ -1,5 +1,5 @@ import { BlockImage, Note } from '@/components'; -export const parentTitle = 'Integrations'; + import azureDevopsProviderSettings from './images/azure-devops/azure-devops_config.png'; import azureDevopsCLIinstall from './images/azure-devops/azure-devops_CLI_install.png'; diff --git a/src/content/integrations/integrating-with-bitbucket-pipelines.mdx b/src/content/integrations/integrating-with-bitbucket-pipelines.mdx index f082644e..25239537 100644 --- a/src/content/integrations/integrating-with-bitbucket-pipelines.mdx +++ b/src/content/integrations/integrating-with-bitbucket-pipelines.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage, Card } from '@/components'; -export const parentTitle = 'Integrations'; + import bitbucketPipeCloudsmithPublishImage from './images/bitbucket/bitbucket-pipe-cloudsmith-publish.png' import bitbucketCloudsmithApiKeyImage from './images/bitbucket/bitbucket_cloudsmith_api_key.png' diff --git a/src/content/integrations/integrating-with-buildkite.mdx b/src/content/integrations/integrating-with-buildkite.mdx index d9b0aa89..106c52a3 100644 --- a/src/content/integrations/integrating-with-buildkite.mdx +++ b/src/content/integrations/integrating-with-buildkite.mdx @@ -1,6 +1,6 @@ import { Note, BlockImage, Video } from '@/components'; import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + import preBuildStepImage from './images/buildkite/preBuildStep.png'; import buildAndPushPackageStepImage from './images/buildkite/buildAndPushPackageStep.png'; diff --git a/src/content/integrations/integrating-with-chainguard-images.mdx b/src/content/integrations/integrating-with-chainguard-images.mdx index ae9dc25d..af5413d4 100644 --- a/src/content/integrations/integrating-with-chainguard-images.mdx +++ b/src/content/integrations/integrating-with-chainguard-images.mdx @@ -1,4 +1,4 @@ -export const parentTitle = 'Integrations'; + # Integrating with Chainguard Images diff --git a/src/content/integrations/integrating-with-chef.mdx b/src/content/integrations/integrating-with-chef.mdx index 4e5fea1f..0c231dd7 100644 --- a/src/content/integrations/integrating-with-chef.mdx +++ b/src/content/integrations/integrating-with-chef.mdx @@ -1,4 +1,4 @@ -export const parentTitle = 'Integrations'; + # Integrating Chef diff --git a/src/content/integrations/integrating-with-circleci.mdx b/src/content/integrations/integrating-with-circleci.mdx index 3dc565cb..f9bdc9ca 100644 --- a/src/content/integrations/integrating-with-circleci.mdx +++ b/src/content/integrations/integrating-with-circleci.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage, Card, Video } from '@/components'; -export const parentTitle = 'Integrations'; + import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; import envVarimage from './images/circleci/ciEnvVar.png' diff --git a/src/content/integrations/integrating-with-codefresh.mdx b/src/content/integrations/integrating-with-codefresh.mdx index df8c84d4..26466ab9 100644 --- a/src/content/integrations/integrating-with-codefresh.mdx +++ b/src/content/integrations/integrating-with-codefresh.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating Codefresh diff --git a/src/content/integrations/integrating-with-datadog.mdx b/src/content/integrations/integrating-with-datadog.mdx index c66f4d35..ebf88410 100644 --- a/src/content/integrations/integrating-with-datadog.mdx +++ b/src/content/integrations/integrating-with-datadog.mdx @@ -1,4 +1,4 @@ -export const parentTitle = 'Integrations'; + # Datadog diff --git a/src/content/integrations/integrating-with-dependabot.mdx b/src/content/integrations/integrating-with-dependabot.mdx index 8932ffcb..22144e90 100644 --- a/src/content/integrations/integrating-with-dependabot.mdx +++ b/src/content/integrations/integrating-with-dependabot.mdx @@ -1,5 +1,5 @@ import { BlockImage } from '@/components'; -export const parentTitle = 'Integrations'; + import dependabotSecretsImage from './images/dependabot/dependabot-secrets.png'; import enableDependabotImage from './images/dependabot/enable-dependabot.png'; diff --git a/src/content/integrations/integrating-with-docker-hub.mdx b/src/content/integrations/integrating-with-docker-hub.mdx index add7871e..485632ca 100644 --- a/src/content/integrations/integrating-with-docker-hub.mdx +++ b/src/content/integrations/integrating-with-docker-hub.mdx @@ -1,5 +1,5 @@ import { BlockImage } from '@/components'; -export const parentTitle = 'Integrations'; + import cloudsmithDemoRepoUpstreamsImage from './images/docker-hub/cloudsmithDemoRepoUpstreams.png'; import cloudsmithRepoAddCredentialsImage from './images/docker-hub/cloudsmithRepoAddCredentials.png'; diff --git a/src/content/integrations/integrating-with-drone-ci.mdx b/src/content/integrations/integrating-with-drone-ci.mdx index 6ee2eb24..4b6658dd 100644 --- a/src/content/integrations/integrating-with-drone-ci.mdx +++ b/src/content/integrations/integrating-with-drone-ci.mdx @@ -1,5 +1,5 @@ import { Note, Video } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating with Drone CI diff --git a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx index b20dd77f..0c28c16a 100644 --- a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx +++ b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage, Card, Video } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating GCP CloudBuild @@ -13,7 +13,7 @@ Integrating Cloudsmith as part of your Google CloudBuild project is as simple as ### Adding your API Key to Google Cloud -In order to use the Cloudsmith CLI with Google CloudBuild, we recommend you to create a **Cloudsmith [service account](/accounts-and-teams/service-account)** and use its API key instead of a personal API key. This is more secure, easier to audit, and better suited for CI/CD environments like Google CloudBuild. +In order to use the Cloudsmith CLI with Google CloudBuild, we recommend you to create a **Cloudsmith [service account](/accounts-and-teams/service-accounts)** and use its API key instead of a personal API key. This is more secure, easier to audit, and better suited for CI/CD environments like Google CloudBuild. Once you’ve created a service account and generated its API key, we recommend that you add the key as an environment variable using **Google Secret Manager**. diff --git a/src/content/integrations/integrating-with-github-actions.mdx b/src/content/integrations/integrating-with-github-actions.mdx index b57c4b81..2d00ba94 100644 --- a/src/content/integrations/integrating-with-github-actions.mdx +++ b/src/content/integrations/integrating-with-github-actions.mdx @@ -1,6 +1,6 @@ import { Note, BlockImage, Card, Video } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + # Integrating GitHub Actions diff --git a/src/content/integrations/integrating-with-gitlab-cicd.mdx b/src/content/integrations/integrating-with-gitlab-cicd.mdx index 0088bd28..3ace1e63 100644 --- a/src/content/integrations/integrating-with-gitlab-cicd.mdx +++ b/src/content/integrations/integrating-with-gitlab-cicd.mdx @@ -1,6 +1,6 @@ import { Note } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + # GitLab CI/CD diff --git a/src/content/integrations/integrating-with-harnesscd.mdx b/src/content/integrations/integrating-with-harnesscd.mdx index ee0d66b4..454161e3 100644 --- a/src/content/integrations/integrating-with-harnesscd.mdx +++ b/src/content/integrations/integrating-with-harnesscd.mdx @@ -1,5 +1,5 @@ import { BlockImage, Video } from '@/components'; -export const parentTitle = 'Integrations'; + import harnessArtifactsServerSetupImage from './images/harness/harness-artifact-server-setup.png'; import harnessServiceArtifactSourceImages from './images/harness/harness-service-artifact-source.png'; diff --git a/src/content/integrations/integrating-with-jenkins.mdx b/src/content/integrations/integrating-with-jenkins.mdx index c435ede4..7fb83b91 100644 --- a/src/content/integrations/integrating-with-jenkins.mdx +++ b/src/content/integrations/integrating-with-jenkins.mdx @@ -1,5 +1,5 @@ import { Note } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating Jenkins diff --git a/src/content/integrations/integrating-with-microsoft-teams.mdx b/src/content/integrations/integrating-with-microsoft-teams.mdx index a36a9d47..6fb505ac 100644 --- a/src/content/integrations/integrating-with-microsoft-teams.mdx +++ b/src/content/integrations/integrating-with-microsoft-teams.mdx @@ -1,5 +1,5 @@ import { Note, BlockImage } from '@/components'; -export const parentTitle = 'Integrations'; + import cloudsmithWebhooksExampleImage from './images/microsoft-teams/cloudsmithWebhooksExample.png'; diff --git a/src/content/integrations/integrating-with-octopus-deploy.mdx b/src/content/integrations/integrating-with-octopus-deploy.mdx index b0aad7f0..396776ca 100644 --- a/src/content/integrations/integrating-with-octopus-deploy.mdx +++ b/src/content/integrations/integrating-with-octopus-deploy.mdx @@ -1,5 +1,5 @@ import { BlockImage, Note } from '@/components'; -export const parentTitle = 'Integrations'; + import screenshot6d9483c from './images/octopus-deploy/6d9483c-screenshot.png'; import screenshot6eba1c8 from './images/octopus-deploy/6eba1c8-screenshot.png'; diff --git a/src/content/integrations/integrating-with-puppet.mdx b/src/content/integrations/integrating-with-puppet.mdx index 91499308..171a3528 100644 --- a/src/content/integrations/integrating-with-puppet.mdx +++ b/src/content/integrations/integrating-with-puppet.mdx @@ -1,5 +1,5 @@ import { Video } from '@/components' -export const parentTitle = 'Integrations'; + # Integrating Puppet diff --git a/src/content/integrations/integrating-with-renovate.mdx b/src/content/integrations/integrating-with-renovate.mdx index d476bfc9..0f36e558 100644 --- a/src/content/integrations/integrating-with-renovate.mdx +++ b/src/content/integrations/integrating-with-renovate.mdx @@ -1,5 +1,5 @@ import { BlockImage, Note } from '@/components' -export const parentTitle = 'Integrations'; + import set_secret from './images/renovate/set_secret.png'; import host_rule from './images/renovate/host_rule.png'; diff --git a/src/content/integrations/integrating-with-roadie.mdx b/src/content/integrations/integrating-with-roadie.mdx index 3aa42584..eb593c2d 100644 --- a/src/content/integrations/integrating-with-roadie.mdx +++ b/src/content/integrations/integrating-with-roadie.mdx @@ -1,5 +1,5 @@ import { BlockImage } from '@/components'; -export const parentTitle = 'Integrations'; + import auditLogCardImage from './images/roadie/cloudsmith-audit-log-card.png' import quotaCardImage from './images/roadie/cloudsmith-quota-card.png' diff --git a/src/content/integrations/integrating-with-semaphore-ci.mdx b/src/content/integrations/integrating-with-semaphore-ci.mdx index 5749e7cc..c9629545 100644 --- a/src/content/integrations/integrating-with-semaphore-ci.mdx +++ b/src/content/integrations/integrating-with-semaphore-ci.mdx @@ -1,6 +1,6 @@ import { Note, BlockImage, Video } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + import semaphoreSecretsImage from './images/semaphore-ci/73f8db2-semaphore-secrets.png'; diff --git a/src/content/integrations/integrating-with-slack.mdx b/src/content/integrations/integrating-with-slack.mdx index 57cd4cb1..75f6b38f 100644 --- a/src/content/integrations/integrating-with-slack.mdx +++ b/src/content/integrations/integrating-with-slack.mdx @@ -1,5 +1,5 @@ import { BlockImage, Note } from '@/components'; -export const parentTitle = 'Integrations'; + import slackReadyImage from './images/slack/9af567f-ready.png'; diff --git a/src/content/integrations/integrating-with-teamcity.mdx b/src/content/integrations/integrating-with-teamcity.mdx index 3c3b70a2..dce236dc 100644 --- a/src/content/integrations/integrating-with-teamcity.mdx +++ b/src/content/integrations/integrating-with-teamcity.mdx @@ -1,7 +1,7 @@ import { BlockImage, Note } from '@/components'; import NoCodeNoteSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + import teamCityParameters from './images/teamcity/teamCityParameters.png'; import teamCityBuildConfig from './images/teamcity/teamCityBuildConfig.png'; diff --git a/src/content/integrations/integrating-with-terraform.mdx b/src/content/integrations/integrating-with-terraform.mdx index 3fd0f3b9..c2e62261 100644 --- a/src/content/integrations/integrating-with-terraform.mdx +++ b/src/content/integrations/integrating-with-terraform.mdx @@ -1,5 +1,5 @@ import { Card, Video } from '@/components'; -export const parentTitle = 'Integrations'; + # Integrating Terraform diff --git a/src/content/integrations/integrating-with-travis-ci.mdx b/src/content/integrations/integrating-with-travis-ci.mdx index ed6a9490..cdb6d4a1 100644 --- a/src/content/integrations/integrating-with-travis-ci.mdx +++ b/src/content/integrations/integrating-with-travis-ci.mdx @@ -1,4 +1,4 @@ -export const parentTitle = 'Integrations'; + # Integrating Travis-CI diff --git a/src/content/integrations/integrating-with-zapier.mdx b/src/content/integrations/integrating-with-zapier.mdx index 4070188a..f0bd856e 100644 --- a/src/content/integrations/integrating-with-zapier.mdx +++ b/src/content/integrations/integrating-with-zapier.mdx @@ -1,6 +1,6 @@ import { Note, BlockImage, Card, Video } from '@/components'; import NoCodeUploadingSnippet from '@/snippets/noCodeUploadingNoteSnippet.mdx'; -export const parentTitle = 'Integrations'; + import zapierCsmApiKeyImage from './images/zapier/zapier_csm_api_key.png' import zapierCreateTokenImage from './images/zapier/zapier_create_token.png' diff --git a/src/content/integrations/upload-via-postman.mdx b/src/content/integrations/upload-via-postman.mdx index e8068da4..47d68951 100644 --- a/src/content/integrations/upload-via-postman.mdx +++ b/src/content/integrations/upload-via-postman.mdx @@ -1,6 +1,6 @@ import { BlockImage } from '@/components'; -export const parentTitle = 'Integrations'; + import postmanPutRequestImage from './images/postman/postman-put-request.png' import postmanPostRawPackageImage from './images/postman/postman-post-raw-package.png'; diff --git a/src/content/menu.json b/src/content/menu.json index d99030dc..d570cdc5 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -28,7 +28,135 @@ }, { "title": "Supported Formats", - "path": "/formats/" + "path": "/formats/", + "children": [ + { + "title": "Alpine", + "path": "/formats/alpine-repository" + }, + { + "title": "Cargo", + "path": "/formats/cargo-registry" + }, + { + "title": "Chocolatey", + "path": "/formats/chocolatey-repository" + }, + { + "title": "Cocoapods", + "path": "/formats/cocoapods-repository" + }, + { + "title": "Composer", + "path": "/formats/composer-repository" + }, + { + "title": "Conan", + "path": "/formats/conan-repository" + }, + { + "title": "Conda", + "path": "/formats/conda-repository" + }, + { + "title": "CRAN", + "path": "/formats/cran-repository" + }, + { + "title": "Dart", + "path": "/formats/dart-repository" + }, + { + "title": "Debian", + "path": "/formats/debian-repository" + }, + { + "title": "Docker", + "path": "/formats/docker-registry" + }, + { + "title": "Go", + "path": "/formats/go-registry" + }, + { + "title": "Gradle", + "path": "/formats/gradle-repository" + }, + { + "title": "Helm", + "path": "/formats/helm-chart-repository" + }, + { + "title": "Hex", + "path": "/formats/hex-repository" + }, + { + "title": "LuaRocks", + "path": "/formats/luarocks-repository" + }, + { + "title": "Maven", + "path": "/formats/maven-repository" + }, + { + "title": "npm", + "path": "/formats/npm-registry" + }, + { + "title": "NuGet Feed", + "path": "/formats/nuget-feed", + "children": [ + { + "title": "NuGet Symbol Server", + "path": "/formats/nuget-symbol-server" + } + ] + }, + { + "title": "OCI", + "path": "/formats/oci-repository" + }, + { + "title": "PowerShell Modules", + "path": "/formats/powershell-modules-repository" + }, + { + "title": "Python", + "path": "/formats/python-repository" + }, + { + "title": "Raw", + "path": "/formats/raw-repository" + }, + { + "title": "RedHat", + "path": "/formats/redhat-repository" + }, + { + "title": "Ruby", + "path": "/formats/ruby-repository" + }, + { + "title": "sbt", + "path": "/formats/sbt-repository" + }, + { + "title": "Swift", + "path": "/formats/swift-registry" + }, + { + "title": "Terraform", + "path": "/formats/terraform-modules-repository" + }, + { + "title": "Unity", + "path": "/formats/unity-registry" + }, + { + "title": "Vagrant", + "path": "/formats/vagrant-repository" + } + ] }, { "title": "Workspaces", @@ -346,7 +474,125 @@ }, { "title": "Integrations", - "path": "/integrations/" + "path": "/integrations/", + "children": [ + { + "title": "Aikido", + "path": "/integrations/integrating-with-aikido" + }, + { + "title": "Ansible", + "path": "/integrations/integrating-with-ansible" + }, + { + "title": "ArgoCD", + "path": "/integrations/integrating-with-argocd" + }, + { + "title": "AWS CodeBuild", + "path": "/integrations/integrating-with-aws-codebuild" + }, + { + "title": "Azure DevOps", + "path": "/integrations/integrating-with-azure-devops" + }, + { + "title": "Bitbucket Pipelines", + "path": "/integrations/integrating-with-bitbucket-pipelines" + }, + { + "title": "Buildkite", + "path": "/integrations/integrating-with-buildkite" + }, + { + "title": "Chainguard Images", + "path": "/integrations/integrating-with-chainguard-images" + }, + { + "title": "Chef", + "path": "/integrations/integrating-with-chef" + }, + { + "title": "CircleCI", + "path": "/integrations/integrating-with-circleci" + }, + { + "title": "Codefresh", + "path": "/integrations/integrating-with-codefresh" + }, + { + "title": "Datadog", + "path": "/integrations/integrating-with-datadog" + }, + { + "title": "Dependabot", + "path": "/integrations/integrating-with-dependabot" + }, + { + "title": "Docker Hub", + "path": "/integrations/integrating-with-docker-hub" + }, + { + "title": "Drone CI", + "path": "/integrations/integrating-with-drone-ci" + }, + { + "title": "GitHub Actions", + "path": "/integrations/integrating-with-github-actions" + }, + { + "title": "GitLab CI/CD", + "path": "/integrations/integrating-with-gitlab-cicd" + }, + { + "title": "Harness CD", + "path": "/integrations/integrating-with-harness" + }, + { + "title": "Jenkins", + "path": "/integrations/integrating-with-jenkins" + }, + { + "title": "Octopus Deploy", + "path": "/integrations/integrating-with-octopus-deploy" + }, + { + "title": "Puppet", + "path": "/integrations/integrating-with-puppet" + }, + { + "title": "Roadie", + "path": "/integrations/integrating-with-roadie" + }, + { + "title": "Renovate", + "path": "/integrations/integrating-with-renovate" + }, + { + "title": "Semaphore CI", + "path": "/integrations/integrating-with-semaphore-ci" + }, + { + "title": "Terraform Provider", + "path": "/integrations/integrating-with-terraform" + }, + { + "title": "TeamCity", + "path": "/integrations/integrating-with-teamcity" + }, + { + "title": "Travis-CI", + "path": "/integrations/integrating-with-travis-ci" + }, + { + "title": "VS Code Extension", + "path": "/developer-tools/vscode" + }, + { + "title": "Zapier", + "path": "/integrations/integrating-with-zapier" + } + ] }, { "title": "Developer Tools", From 19c2e9a4c6f7a7f3fc0c4575af6a2f73212a4f84 Mon Sep 17 00:00:00 2001 From: PabloJLZaldivar Date: Wed, 13 Aug 2025 10:37:20 +0200 Subject: [PATCH 127/127] add: initial push. THIS IS S DRAFT --- .../about-cloudsmith/common-use-cases.mdx | 4 +- src/content/about-cloudsmith/index.mdx | 2 +- src/content/about-cloudsmith/key-concepts.mdx | 2 +- src/content/accounts-and-teams/index.mdx | 4 +- .../artifact-management/copy-a-package.mdx | 6 +- .../artifact-management/delete-a-package.mdx | 2 +- .../identifying-a-package.mdx | 2 +- .../artifact-management/package-move.mdx | 2 +- .../package-quarantine.mdx | 6 +- .../artifact-management/package-tags.mdx | 14 +- .../artifact-management/package-upload.mdx | 14 +- .../artifact-management/resync-a-package.mdx | 2 +- .../search-filter-sort-packages.mdx | 4 +- src/content/authentication/scim.mdx | 2 +- src/content/bug-bounty-program.mdx | 2 +- .../developer-tools/terraform-provider.mdx | 8 +- src/content/developer-tools/webhooks.mdx | 4 +- src/content/formats/alpine-repository.mdx | 46 +++--- src/content/formats/cargo-registry.mdx | 28 ++-- src/content/formats/chocolatey-repository.mdx | 16 +- src/content/formats/cocoapods-repository.mdx | 22 +-- src/content/formats/composer-repository.mdx | 14 +- src/content/formats/conan-repository.mdx | 64 ++++---- src/content/formats/conda-repository.mdx | 30 ++-- src/content/formats/cran-repository.mdx | 26 ++-- src/content/formats/dart-repository.mdx | 32 ++-- src/content/formats/debian-repository.mdx | 54 +++---- src/content/formats/docker-registry.mdx | 28 ++-- src/content/formats/go-registry.mdx | 26 ++-- src/content/formats/gradle-repository.mdx | 18 +-- src/content/formats/helm-chart-repository.mdx | 18 +-- src/content/formats/hex-repository.mdx | 16 +- src/content/formats/luarocks-repository.mdx | 26 ++-- src/content/formats/maven-repository.mdx | 18 +-- src/content/formats/npm-registry.mdx | 56 +++---- src/content/formats/nuget-feed.mdx | 54 +++---- src/content/formats/nuget-symbol-server.mdx | 6 +- src/content/formats/oci-repository.mdx | 18 +-- .../formats/powershell-modules-repository.mdx | 26 ++-- src/content/formats/python-repository.mdx | 36 ++--- src/content/formats/raw-repository.mdx | 58 +++---- src/content/formats/redhat-repository.mdx | 144 +++++++++--------- src/content/formats/ruby-repository.mdx | 40 ++--- src/content/formats/sbt-repository.mdx | 18 +-- src/content/formats/swift-registry.mdx | 3 +- .../formats/terraform-modules-repository.mdx | 10 +- src/content/formats/unity-registry.mdx | 22 +-- src/content/formats/vagrant-repository.mdx | 26 ++-- src/content/homepage.json | 2 +- .../integrations/integrating-with-ansible.mdx | 42 ++--- .../integrations/integrating-with-argocd.mdx | 8 +- .../integrating-with-aws-codebuild.mdx | 2 +- .../integrating-with-buildkite.mdx | 2 +- .../integrations/integrating-with-chef.mdx | 42 ++--- .../integrating-with-drone-ci.mdx | 8 +- .../integrating-with-gcp-cloudbuild.mdx | 2 +- .../integrating-with-gitlab-cicd.mdx | 2 +- .../integrating-with-harnesscd.mdx | 2 +- .../integrations/integrating-with-jenkins.mdx | 6 +- .../integrating-with-octopus-deploy.mdx | 16 +- .../integrations/integrating-with-puppet.mdx | 22 +-- .../integrating-with-semaphore-ci.mdx | 4 +- .../integrations/integrating-with-zapier.mdx | 4 +- .../integrations/upload-via-postman.mdx | 4 +- src/content/logs-and-observability/usage.mdx | 2 +- .../migrating-to-cloudsmith/import-docker.mdx | 6 +- .../migrating-to-cloudsmith/import-maven.mdx | 6 +- src/content/migrating-to-cloudsmith/index.mdx | 2 +- .../repositories/create-a-repository.mdx | 4 +- .../repositories/repository-settings.mdx | 8 +- ...itlement-tokens-via-the-cloudsmith-cli.mdx | 24 +-- .../entitlement-tokens.mdx | 2 +- src/content/software-distribution/eula.mdx | 4 +- src/content/workspaces/custom-domains.mdx | 12 +- src/content/workspaces/index.mdx | 2 +- src/content/workspaces/overview.mdx | 4 +- src/content/workspaces/privileges.mdx | 8 +- src/content/workspaces/workspace-create.mdx | 2 +- src/content/workspaces/workspace-settings.mdx | 2 +- 79 files changed, 667 insertions(+), 668 deletions(-) diff --git a/src/content/about-cloudsmith/common-use-cases.mdx b/src/content/about-cloudsmith/common-use-cases.mdx index 81a4c427..46ed38fe 100644 --- a/src/content/about-cloudsmith/common-use-cases.mdx +++ b/src/content/about-cloudsmith/common-use-cases.mdx @@ -12,7 +12,7 @@ This section outlines the primary and supporting use cases for Cloudsmith, detai icon="homepage/documentation" type="simple" width="full" - linkText="Rego-based Policies-as-Code" + linkText="Learn more" /> You need to have repository admin privileges or be the package owner to remove immutable tags. @@ -125,7 +125,7 @@ cloudsmith tags remove demo/examples-repo/ptqbzjgm2pq1 baz The command to clear all tags (except immutable tags) from a package is: ```shell -cloudsmith tags clear OWNER/REPOSITORY/IDENTIFIER +cloudsmith tags clear WORKSPACE/REPOSITORY/IDENTIFIER ``` Example: diff --git a/src/content/artifact-management/package-upload.mdx b/src/content/artifact-management/package-upload.mdx index f23ba924..ebd985ec 100644 --- a/src/content/artifact-management/package-upload.mdx +++ b/src/content/artifact-management/package-upload.mdx @@ -23,7 +23,7 @@ In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | USERNAME | Your Cloudsmith username | | PASSWORD | Your Cloudsmith password | @@ -49,7 +49,7 @@ Documentation for package-specific native CLI and tooling is available on the we To upload a package via the Cloudsmith CLI, use the `cloudsmith push` command: ```shell -cloudsmith push OWNER/REPOSITORY +cloudsmith push WORKSPACE/REPOSITORY ``` For example: @@ -63,7 +63,7 @@ Context-specific documentation, including copy and paste commands (with the owne ```shell -cloudsmith push deb OWNER/REPOSITORY/DISTRO/VERSION PACKAGE-NAME.deb --tags TAG1,TAG2 +cloudsmith push deb WORKSPACE/REPOSITORY/DISTRO/VERSION PACKAGE-NAME.deb --tags TAG1,TAG2 ``` We also support the optional functionality to tag packages with pre-release components as `latest`. By default this functionality is turned on, however can be turned off in the main settings of a repository with the setting `Apply Latest Tag for Pre-Release Versions?`. @@ -77,7 +77,7 @@ Uploading a package to Cloudsmith via the URL is a 2 step process 1. A PUT req against the upload URL: ``` -https://upload.cloudsmith.io/OWNER/REPOSITORY/PACKAGE_NAME +https://upload.cloudsmith.io/WORKSPACE/REPOSITORY/PACKAGE_NAME ``` The response to this PUT req gives you an identifier that you will need for the next stage. @@ -85,7 +85,7 @@ The response to this PUT req gives you an identifier that you will need for the 2. A POST req to create package endpoint ``` -https://api.cloudsmith.io/packages/OWNER/REPOSITORY/upload/FORMAT/ +https://api.cloudsmith.io/packages/WORKSPACE/REPOSITORY/upload/FORMAT/ ``` Postman is an application used for API testing that we can use to illustrate using the API to upload a raw package. You can install Postman [here](https://www.postman.com/) @@ -97,7 +97,7 @@ Lets see how you can upload a raw package using Postman: 1. Populate Postman with the PUT request URL (see the image below, highlighted _1_) ``` -https://upload.cloudsmith.io/OWNER/REPOSITORY/PACKAGE_NAME +https://upload.cloudsmith.io/WORKSPACE/REPOSITORY/PACKAGE_NAME ``` 2. Switch to the ‘Authorization’ tab and populate your credentials with either Basic Auth or your API Key @@ -112,7 +112,7 @@ https://upload.cloudsmith.io/OWNER/REPOSITORY/PACKAGE_NAME 1. Populate Postman with the POST request (see the image below, highlighted _1_): ``` -https://api.cloudsmith.io/packages/OWNER/REPOSITORY/upload/raw/ +https://api.cloudsmith.io/packages/WORKSPACE/REPOSITORY/upload/raw/ ``` 2. Select the ‘Body’ tab and populate it with your JSON: diff --git a/src/content/artifact-management/resync-a-package.mdx b/src/content/artifact-management/resync-a-package.mdx index 92e63c00..752baad1 100644 --- a/src/content/artifact-management/resync-a-package.mdx +++ b/src/content/artifact-management/resync-a-package.mdx @@ -29,7 +29,7 @@ To resync a package using the Cloudsmith CLI, you first need to identify the pac Once you have identified the package, you use the `cloudsmith resync` command to resync it: ```shell -cloudsmith resync OWNER/REPO/UNIQUE_ID +cloudsmith resync WORKSPACE/REPO/UNIQUE_ID ``` For example: diff --git a/src/content/artifact-management/search-filter-sort-packages.mdx b/src/content/artifact-management/search-filter-sort-packages.mdx index 64afe49e..e4ebfc73 100644 --- a/src/content/artifact-management/search-filter-sort-packages.mdx +++ b/src/content/artifact-management/search-filter-sort-packages.mdx @@ -141,7 +141,7 @@ curl -sL "https://api.cloudsmith.io/packages///" \ To search packages using the Cloudsmith CLI, you use the `cloudsmith list packages` command in combination with the `-q` option: ```shell -cloudsmith list packages OWNER/REPOSITORY -q "SEARCH_TERMS" +cloudsmith list packages WORKSPACE/REPOSITORY -q "SEARCH_TERMS" ``` **Example** @@ -194,7 +194,7 @@ The available sorting options are: ## Sorting Packages via the Cloudsmith API Please see the Cloudsmith full API reference to learn how to: -- List all of the packages in a [Workspace](/api/packages/org/list) (Organization). +- List all of the packages in a [Workspace](/api/packages/workspace/list). - List all of the packages in a [Repository](/api/packages/list). Then, use the `sort` option to rank the result by any or many or the sort fields listed in the next section. diff --git a/src/content/authentication/scim.mdx b/src/content/authentication/scim.mdx index 933a857b..994e8a8b 100644 --- a/src/content/authentication/scim.mdx +++ b/src/content/authentication/scim.mdx @@ -7,7 +7,7 @@ import { Note } from '@/components' SCIM, or System for Cross-domain Identity Management, is an open standard designed to manage user identity information. Cloudsmith is SCIM 2.0-compliant. With Cloudsmith's support for SCIM, you can automatically provision new users, de-provision existing users and update existing users profile information based on changes within your Identity Provider (IdP). -📘 To provision users via SCIM, you need to setup the workspace as the primary workspace. Users from other workspaces can not be managed via SCIM. +📘 To provision users via SCIM, you need to setup the workspace as the primary workspace. Users from other workspaces cannot be managed via SCIM. If you have any question, reach out to [support](https://cloudsmith.com/company/contact-us). diff --git a/src/content/bug-bounty-program.mdx b/src/content/bug-bounty-program.mdx index e021298b..0298c00b 100644 --- a/src/content/bug-bounty-program.mdx +++ b/src/content/bug-bounty-program.mdx @@ -73,7 +73,7 @@ If a vulnerability isn't explicitly listed here as either in-scope or explicitly Application bugs that are **explicitly NOT considered to be in-scope**: -- Any standard (i.e., non-security) application or API bugs (e.g., display issues, ordering issues, search issues, input/output issues, etc.), unless they involve privilege escalation or cross-account access. +- Any standard (i.e., non-security) application or API bugs (e.g., display issues, ordering issues, search issues, input/output issues, etc.), unless they involve privilege escalation or cross-workspace access. - Any UI-based injection bugs in the [Classic App](https://cloudsmith.io) (e.g., XSS or CORS issues); however, these are now applicable within the new [Web App](https://app.cloudsmith.com), which was released for preview in November 2024. Actions/areas that are **explicitly NOT considered to be in-scope**: diff --git a/src/content/developer-tools/terraform-provider.mdx b/src/content/developer-tools/terraform-provider.mdx index 23225e2c..77ac516b 100644 --- a/src/content/developer-tools/terraform-provider.mdx +++ b/src/content/developer-tools/terraform-provider.mdx @@ -54,11 +54,11 @@ You then run `terraform init` and Terraform will automatically install the provi ### namespace -The namespace data source allows fetching of metadata about a given Cloudsmith namespace. The fetched data can be used to resolve permanent identifiers from a namespace's user-facing name. These identifiers can then be passed to other resources to allow more consistent identification as user-facing names can change. +The namespace data source allows fetching of metadata about a given Cloudsmith workspace. The fetched data can be used to resolve permanent identifiers from a workspace's user-facing name. These identifiers can then be passed to other resources to allow more consistent identification as user-facing names can change. ``` data "cloudsmith_namespace" "my_namespace" { - slug = "my-namespace" + slug = "my-workspace" } ``` @@ -70,7 +70,7 @@ data "cloudsmith_namespace" "my_namespace" { ### repository -The repository resource allows the creation and management of package repositories within a Cloudsmith namespace. Repositories store packages and are the main entities with which Cloudsmith users interact. +The repository resource allows the creation and management of package repositories within a Cloudsmith workspace. Repositories store packages and are the main entities with which Cloudsmith users interact. ``` resource "cloudsmith_repository" "my_repository" { @@ -83,7 +83,7 @@ resource "cloudsmith_repository" "my_repository" { |Argument| Description| Required| |--|--|--| `name`| A descriptive name for the repository. |Yes -`namespace`| Namespace / account to which this repository belongs. |Yes +`namespace`| Workspace to which this repository belongs. |Yes `description`| A description of the repository's purpose/contents. |No `index_files`| If checked, files contained in packages will be indexed, which increase the synchronisation time required for packages. Note that it is recommended you keep this enabled unless the synchronisation time is significantly impacted. |No `repository_type`| Private repositories are visible only to users that have been granted access. Public repositories are visible to all Cloudsmith users. |No diff --git a/src/content/developer-tools/webhooks.mdx b/src/content/developer-tools/webhooks.mdx index 1a179e23..7d25ceef 100644 --- a/src/content/developer-tools/webhooks.mdx +++ b/src/content/developer-tools/webhooks.mdx @@ -316,8 +316,8 @@ An example of a `Package` payload, sent for webhooks emitted by packages: "is_sync_in_progress": false, "license": null, "name": "my-file.deb", - "namespace": "my-org", - "namespace_url": "https://api.cloudsmith.io/namespaces/my-org/", + "namespace": "my-workspace", + "namespace_url": "https://api.cloudsmith.io/namespaces/my-workspace/", "num_files": 0, "package_type": 1, "release": null, diff --git a/src/content/formats/alpine-repository.mdx b/src/content/formats/alpine-repository.mdx index e620d30f..8f16444a 100644 --- a/src/content/formats/alpine-repository.mdx +++ b/src/content/formats/alpine-repository.mdx @@ -13,14 +13,14 @@ For more information on Alpine, please see: - [Alpine Linux Wiki](https://wiki.alpinelinux.org): The official wiki for Alpine Linux -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------------------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | VERSION | Alpine distribution version, i.e. v3.8. You can also use "any-version" if your package is compatible with more than one version | | FINGERPRINT | the 8 Byte fingerprint of the Public RSA key for the repository | @@ -40,7 +40,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload an Alpine package via the Cloudsmith CLI is: ```shell -cloudsmith push alpine OWNER/REPOSITORY/alpine/VERSION PACKAGE_NAME-PACKAGE_VERSION.apk +cloudsmith push alpine WORKSPACE/REPOSITORY/alpine/VERSION PACKAGE_NAME-PACKAGE_VERSION.apk ``` Example: Upload a package for Alpine v3.8 @@ -74,7 +74,7 @@ To install Alpine packages from a public Cloudsmith repository , you can quickly ```shell sudo apk add --no-cache bash curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo bash ``` @@ -83,15 +83,15 @@ If you need to force a specific distribution: ```shell sudo apk add --no-cache bash curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo distro=alpine codename=VERSION bash ``` Or, you can manually configure the repository ```shell -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@OWNER-FINGERPRINT.rsa.pub -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@WORKSPACE-FINGERPRINT.rsa.pub +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories apk update ``` ### Private Repositories @@ -107,25 +107,25 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, To install Alpine packages from a private Cloudsmith repository, you can quickly set up the repository automatically: ```shell Entitlement Token Auth -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (User & Pass) sudo apk add --no-cache bash curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (API-Key) sudo apk add --no-cache bash curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (Token) sudo apk add --no-cache bash curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo bash ``` @@ -133,48 +133,48 @@ If you need to force a specific distribution: ```shell Entitlement Token Auth sudo apk add --no-cache bash -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo distro=alpine codename=VERSION bash ``` ```shell HTTP Basic Auth (User & Pass) sudo apk add --no-cache bash curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo distro=alpine codename=VERSION bash ``` ```shell HTTP Basic Auth (API-Key) sudo apk add --no-cache bash curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo distro=alpine codename=VERSION bash ``` ```shell HTTP Basic Auth (Token) sudo apk add --no-cache bash curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.alpine.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.alpine.sh' \ | sudo distro=alpine codename=VERSION bash ``` Or, you can manually configure the repository: ```shell Entitlement Token Auth -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@OWNER-FINGERPRINT.rsa.pub -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@WORKSPACE-FINGERPRINT.rsa.pub +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories apk update ``` ```shell HTTP Basic Auth (User & Pass) -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@OWNER-FINGERPRINT.rsa.pub -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@WORKSPACE-FINGERPRINT.rsa.pub +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories apk update ``` ```shell HTTP Basic Auth (API-Key) -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@OWNER-FINGERPRINT.rsa.pub -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@WORKSPACE-FINGERPRINT.rsa.pub +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories apk update ``` ```shell HTTP Basic Auth (Token) -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@OWNER-FINGERPRINT.rsa.pub -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/rsa/rsa.FINGERPRINT.key' > /etc/apk/keys/REPOSITORY@WORKSPACE-FINGERPRINT.rsa.pub +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.alpine.txt?distro=alpine&codename=VERSION' >> /etc/apk/repositories apk update ``` ### Installing a package diff --git a/src/content/formats/cargo-registry.mdx b/src/content/formats/cargo-registry.mdx index b783d879..788fe7f4 100644 --- a/src/content/formats/cargo-registry.mdx +++ b/src/content/formats/cargo-registry.mdx @@ -14,14 +14,14 @@ For more information on Rust, please see: - [Crates Public Registry](https://crates.io/): The official Rust community's crate registry - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -42,7 +42,7 @@ A name and URL for the registry must be added to your `.cargo/config` file as fo ```toml [registries] -REGISTRY_NAME = { index = "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cargo/index.git" } +REGISTRY_NAME = { index = "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cargo/index.git" } ``` ### Private Repositories @@ -59,13 +59,13 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```toml # Entitlement Token Auth [registries] -REGISTRY_NAME = { index = "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cargo/index.git" } +REGISTRY_NAME = { index = "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cargo/index.git" } ``` ```toml # HTTP Basic Auth [registries] -REGISTRY_NAME = { index = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cargo/index.git" } +REGISTRY_NAME = { index = "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cargo/index.git" } ``` If using HTTP basic authentication, you'll need to configure Git with credentials. Git's standard authentication mechanisms are used by Cargo and can be configured in the normal way. For example, you could use git's per-user credential store as follows: @@ -126,7 +126,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a cargo crate via the Cloudsmith CLI is: ```shell -cloudsmith push cargo OWNER/REPOSITORY PACKAGE_NAME.crate +cloudsmith push cargo WORKSPACE/REPOSITORY PACKAGE_NAME.crate ``` Example: @@ -162,14 +162,14 @@ First, the name and config for the registry must be added to your `.cargo/config ### Cargo >= v1.74 (HTTP Sparse Registry) ```toml API Key Auth -[registries.OWNER-REPOSITORY] -index = "sparse+https://cargo.cloudsmith.io/OWNER/REPOSITORY/" +[registries.WORKSPACE-REPOSITORY] +index = "sparse+https://cargo.cloudsmith.io/WORKSPACE/REPOSITORY/" token = "Token API-KEY" credential-provider = "cargo:token" ``` ```toml Entitlement Token Auth -[registries.OWNER-REPOSITORY] -index = "sparse+https://cargo.cloudsmith.io/OWNER/REPOSITORY/" +[registries.WORKSPACE-REPOSITORY] +index = "sparse+https://cargo.cloudsmith.io/WORKSPACE/REPOSITORY/" token = "Token TOKEN" credential-provider = "cargo:token" ``` @@ -182,19 +182,19 @@ Once you’ve configured your credentials in the config.toml file, there’s no If you are using Cargo version `< 1.74`, the only way to authenticate with a private sparse registry is using Cloudsmith's URL-based authentication. ```toml Entitlement Token Auth -[registries.OWNER-REPOSITORY] -index = "sparse+https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cargo/" +[registries.WORKSPACE-REPOSITORY] +index = "sparse+https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cargo/" ``` ### Cargo < v1.68 (Legacy Git Registry) ```toml HTTP Basic Auth (API-Key) [registries] -OWNER-REPOSITORY = { index = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cargo/index.git" } +WORKSPACE-REPOSITORY = { index = "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cargo/index.git" } ``` ```toml URL Auth (Entitlement Token) [registries] -OWNER-REPOSITORY = { index = "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cargo/index.git" } +WORKSPACE-REPOSITORY = { index = "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cargo/index.git" } ``` ### Registry Authentication diff --git a/src/content/formats/chocolatey-repository.mdx b/src/content/formats/chocolatey-repository.mdx index 888e9825..f096ecc0 100644 --- a/src/content/formats/chocolatey-repository.mdx +++ b/src/content/formats/chocolatey-repository.mdx @@ -18,14 +18,14 @@ For more information on Chocolatey, please see: Chocolatey packages are known as nupkg files, which is a compiled NuSpec or a fancy zip file that knows about package metadata (including dependencies and versioning). These packages are an enhanced NuGet package, they have additional metadata that is specific to Chocolatey. Chocolatey is also compatible with vanilla NuGet packages. A Chocolatey package can contain embedded software and/or automation scripts. For more information on how Chocolatey works see: [How Does Chocolatey Work](https://docs.chocolatey.org/en-us/getting-started#how-does-chocolatey-work) - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -55,7 +55,7 @@ The following are the main elements of a Chocolatey package. Only the Nuspec is The endpoint for the chocolatey packages API is: ``` -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 ``` ### Create a Chocolatey Package using the Chocolatey CLI @@ -85,7 +85,7 @@ You can publish a nupkg file that you've generated from your project, using [NuG Then you can publish your package using: ```shell -choco push PACKAGE_NAME-PACKAGE_VERSION.nupkg -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 -ApiKey API-KEY +choco push PACKAGE_NAME-PACKAGE_VERSION.nupkg -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 -ApiKey API-KEY ``` @@ -99,7 +99,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command-Li The command to upload a Chocolatey package via the Cloudsmith CLI is: ```shell -cloudsmith push nuget OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.nupkg +cloudsmith push nuget WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.nupkg ``` Example: @@ -117,13 +117,13 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o As a shortcut, you can set up the source (upstream) ahead of time, using `choco source`: ```shell Entitlement Token -choco source add -n example-repo -s https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 -u "token" -p "TOKEN" +choco source add -n example-repo -s https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 -u "token" -p "TOKEN" ``` ```shell Username & Password -choco source add -n example-repo -s https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 -u "USERNAME" -p "PASSWORD" +choco source add -n example-repo -s https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 -u "USERNAME" -p "PASSWORD" ``` ```shell Username & API-Key -choco sources add -n example-repo -s https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 -u "USERNAME" -p "API-KEY" +choco sources add -n example-repo -s https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 -u "USERNAME" -p "API-KEY" ``` diff --git a/src/content/formats/cocoapods-repository.mdx b/src/content/formats/cocoapods-repository.mdx index 182629b9..a60b5b30 100644 --- a/src/content/formats/cocoapods-repository.mdx +++ b/src/content/formats/cocoapods-repository.mdx @@ -13,14 +13,14 @@ For more information on Cocoapods, please see: - [Cocoapods.org](https://cocoapods.org/): Official Cocoapods public repository and documentation - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -37,7 +37,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command-Li The command to upload an (Objective-C or Swift) CocoaPods package via the Cloudsmith CLI is: ```shell -cloudsmith push cocoapods OWNER/REPOSITORY PACKAGE_NAME.tar.gz +cloudsmith push cocoapods WORKSPACE/REPOSITORY PACKAGE_NAME.tar.gz ``` Example: @@ -59,7 +59,7 @@ To add the repository to your project's Podfile, add the following: ### Public Repositories ```shell -source 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cocoapods/index.git' ``` ### Private Repositories @@ -81,16 +81,16 @@ When using HTTP basic authentication, you'll need to configure Git with the prop ```shell Entitlement Token Auth -source 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cocoapods/index.git' ``` ```shell HTTP Basic Auth (User & Pass) -source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cocoapods/index.git' ``` ```shell HTTP Basic Auth (API Key) -source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cocoapods/index.git' ``` ```shell HTTP Basic Auth (Token) -source 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cocoapods/index.git' ``` ### Specifying Dependencies @@ -100,7 +100,7 @@ Add the latest version of a package to your Podfile using the syntax outlined by #### Public Repositories ```shell -source 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cocoapods/index.git' target 'MyApp' do pod 'PACKAGE_NAME', '~> PACKAGE_VERSION' end @@ -109,13 +109,13 @@ end #### Private Repositories ```shell Entitlement Token Auth -source 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cocoapods/index.git' target 'MyApp' do pod 'PACKAGE_NAME', '~> PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth -source 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cocoapods/index.git' +source 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cocoapods/index.git' target 'MyApp' do pod 'PACKAGE_NAME', '~> PACKAGE_VERSION' end diff --git a/src/content/formats/composer-repository.mdx b/src/content/formats/composer-repository.mdx index d593662c..f2767a61 100644 --- a/src/content/formats/composer-repository.mdx +++ b/src/content/formats/composer-repository.mdx @@ -15,14 +15,14 @@ For more information on Composer, please see: - [Composer Documentation](https://getcomposer.org/doc/): The official docs for Composer - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -40,7 +40,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Composer package via the Cloudsmith CLI is: ```shell -cloudsmith push composer OWNER/REPOSITORY PACKAGE_NAME.phar +cloudsmith push composer WORKSPACE/REPOSITORY PACKAGE_NAME.phar ``` Example: @@ -65,7 +65,7 @@ Add the following JSON snippet to your `composer.json` file: "repositories": [ { "type": "composer", - "url": "https://composer.cloudsmith.io/OWNER/REPOSITORY/", + "url": "https://composer.cloudsmith.io/WORKSPACE/REPOSITORY/", "options": { } } @@ -88,7 +88,7 @@ Add one of the following JSON snippets to your project `composer.json` file: "repositories": [ { "type": "composer", - "url": "https://composer.cloudsmith.io/TOKEN/OWNER/REPOSITORY/", + "url": "https://composer.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/", "options": { } } @@ -98,7 +98,7 @@ Add one of the following JSON snippets to your project `composer.json` file: "repositories": [ { "type": "composer", - "url": "https://composer.cloudsmith.io/basic/OWNER/REPOSITORY/", + "url": "https://composer.cloudsmith.io/basic/WORKSPACE/REPOSITORY/", "options": { } } @@ -183,7 +183,7 @@ The following is an example of a complete (but minimal) `composer.json` file wit "repositories": [ { "type": "composer", - "url": "https://composer.cloudsmith.io/OWNER/REPOSITORY/", + "url": "https://composer.cloudsmith.io/WORKSPACE/REPOSITORY/", "options": {} } ], diff --git a/src/content/formats/conan-repository.mdx b/src/content/formats/conan-repository.mdx index e24da4a0..ca9e0e10 100644 --- a/src/content/formats/conan-repository.mdx +++ b/src/content/formats/conan-repository.mdx @@ -22,7 +22,7 @@ In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -38,42 +38,42 @@ In the following examples: The endpoint for the native Conan API is: ``` -https://conan.cloudsmith.io/OWNER/REPOSITORY/ +https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` First, you need to set up the Repository as a Conan remote, with your Cloudsmith API-Key and Username for authentication: ```shell # Shell - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p API-KEY -r OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p API-KEY -r WORKSPACE-REPOSITORY USERNAME ``` ```shell # Shell - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p API-KEY OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p API-KEY WORKSPACE-REPOSITORY USERNAME ``` You can then upload natively using [Conan](https://docs.conan.io/en/latest/reference/commands/creator/export.html) with the command: ```shell # Shell - Conan v1 -conan upload PACKAGE_NAME/PACKAGE_VERSION --all -r OWNER-REPOSITORY +conan upload PACKAGE_NAME/PACKAGE_VERSION --all -r WORKSPACE-REPOSITORY ``` ```shell # Shell - Conan v2 -conan upload PACKAGE_NAME/PACKAGE_VERSION -r OWNER-REPOSITORY +conan upload PACKAGE_NAME/PACKAGE_VERSION -r WORKSPACE-REPOSITORY ``` An optional USER/CHANNEL can also be provided when uploading a package; this enables multiple versions of the same package to coexist using the user/channel to create a unique version of the package version: ```shell # Shell - Conan v1 -conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL --all -r OWNER-REPOSITORY +conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL --all -r WORKSPACE-REPOSITORY ``` ```shell # Shell - Conan v2 -conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL -r OWNER-REPOSITORY +conan upload PACKAGE_NAME/PACKAGE_VERSION@USER/CHANNEL -r WORKSPACE-REPOSITORY ``` The user/channel will also be used as a tag on the package which will allow for filtering within the UI. @@ -107,7 +107,7 @@ conan export . To create a package, files need to be extracted from the Conan home directory: ```shell -export CLOUDSMITH_REPOSITORY=OWNER/REPOSITORY +export CLOUDSMITH_REPOSITORY=WORKSPACE/REPOSITORY ``` use `_` when user/channel is treated @@ -162,13 +162,13 @@ First, the remote repository must be created and then credentials can be added f ```shell # Shell - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p API-KEY -r OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p API-KEY -r WORKSPACE-REPOSITORY USERNAME ``` ```shell # Shell - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p API-KEY OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p API-KEY WORKSPACE-REPOSITORY USERNAME ``` ### Private Repositories @@ -184,44 +184,44 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```shell # Entitlement Token Auth - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p TOKEN -r OWNER-REPOSITORY OWNER/REPOSITORY +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p TOKEN -r WORKSPACE-REPOSITORY WORKSPACE/REPOSITORY ``` ```shell # HTTP Basic Auth (User & Pass) - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p PASSWORD -r OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p PASSWORD -r WORKSPACE-REPOSITORY USERNAME ``` ```shell # HTTP Basic Auth (API Key) - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p API-KEY -r OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p API-KEY -r WORKSPACE-REPOSITORY USERNAME ``` ```shell # HTTP Basic Auth (Token) - Conan v1 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan user -p TOKEN -r OWNER-REPOSITORY token +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan user -p TOKEN -r WORKSPACE-REPOSITORY token ``` ```shell # Entitlement Token Auth - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p TOKEN OWNER-REPOSITORY OWNER/REPOSITORY +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p TOKEN WORKSPACE-REPOSITORY WORKSPACE/REPOSITORY ``` ```shell # HTTP Basic Auth (User & Pass) - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p PASSWORD OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p PASSWORD WORKSPACE-REPOSITORY USERNAME ``` ```shell # HTTP Basic Auth (API Key) - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p API-KEY OWNER-REPOSITORY USERNAME +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p API-KEY WORKSPACE-REPOSITORY USERNAME ``` ```shell # HTTP Basic Auth (Token) - Conan v2 -conan remote add OWNER-REPOSITORY https://conan.cloudsmith.io/OWNER/REPOSITORY/ -conan remote login -p TOKEN OWNER-REPOSITORY token +conan remote add WORKSPACE-REPOSITORY https://conan.cloudsmith.io/WORKSPACE/REPOSITORY/ +conan remote login -p TOKEN WORKSPACE-REPOSITORY token ``` ### Install a Package @@ -230,7 +230,7 @@ Once set up, Conan can download the package by running: ```shell # Shell - Conan v1/v2 -conan download PACKAGE_NAME/PACKAGE_VERSION@ -r OWNER-REPOSITORY +conan download PACKAGE_NAME/PACKAGE_VERSION@ -r WORKSPACE-REPOSITORY ``` ## Conan Revisions diff --git a/src/content/formats/conda-repository.mdx b/src/content/formats/conda-repository.mdx index 142ced89..f5eef49e 100644 --- a/src/content/formats/conda-repository.mdx +++ b/src/content/formats/conda-repository.mdx @@ -13,14 +13,14 @@ For more information on Conda, please see: - [Anaconda](https://www.anaconda.com/) - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -48,7 +48,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload Conda package via the Cloudsmith CLI is: ```shell -cloudsmith push conda OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tar.bz2 +cloudsmith push conda WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tar.bz2 ``` Example: @@ -68,14 +68,14 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o Adding a new channel can be accomplished by using the `conda` CLI: ```shell -conda config --add channels https://conda.cloudsmith.io/OWNER/REPOSITORY/ +conda config --add channels https://conda.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` Alternatively, the channel can be added directly to your `.condarc`: ```yaml channels: - - https://conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults ``` @@ -84,7 +84,7 @@ Or if you prefer, directly in your `environment.yml` file: ```yaml name: env-name channels: - - https://conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults dependencies: - python=3.7 @@ -104,30 +104,30 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, Adding a new channel can be accomplished by using the `conda` CLI: ```shell HTTP Basic Auth (User & Pass) -conda config --add channels https://USERNAME:PASSWORD@conda.cloudsmith.io/OWNER/REPOSITORY/ +conda config --add channels https://USERNAME:PASSWORD@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ```shell HTTP Basic Auth (API-Key) -conda config --add channels https://USERNAME:API-KEY@conda.cloudsmith.io/OWNER/REPOSITORY/ +conda config --add channels https://USERNAME:API-KEY@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ```shell HTTP Basic Auth (Token) -conda config --add channels https://token:TOKEN@conda.cloudsmith.io/OWNER/REPOSITORY/ +conda config --add channels https://token:TOKEN@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` Alternatively, the channel can be added directly to your `.condarc`: ```yaml HTTP Basic Auth (User & Pass) channels: - - https://USERNAME:PASSWORD@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://USERNAME:PASSWORD@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults ``` ```yaml HTTP Basic Auth (API-Key) channels: - - https://USERNAME:API-KEY@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://USERNAME:API-KEY@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults ``` ```yaml HTTP Basic Auth (Token) channels: - - https://token:TOKEN@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://token:TOKEN@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults ``` @@ -136,7 +136,7 @@ Or if you prefer, directly in your `environment.yml` file: ```yaml HTTP Basic Auth (User & Pass) name: env-name channels: - - https://USERNAME:PASSWORD@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://USERNAME:PASSWORD@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults dependencies: - python=3.7 @@ -145,7 +145,7 @@ dependencies: ```yaml HTTP Basic Auth (API-Key) name: env-name channels: - - https://USERNAME:API-KEY@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://USERNAME:API-KEY@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults dependencies: - python=3.7 @@ -154,7 +154,7 @@ dependencies: ```yaml HTTP Basic Auth (Token) name: env-name channels: - - https://token:TOKEN@conda.cloudsmith.io/OWNER/REPOSITORY/ + - https://token:TOKEN@conda.cloudsmith.io/WORKSPACE/REPOSITORY/ - defaults dependencies: - python=3.7 diff --git a/src/content/formats/cran-repository.mdx b/src/content/formats/cran-repository.mdx index 94933309..017150bc 100644 --- a/src/content/formats/cran-repository.mdx +++ b/src/content/formats/cran-repository.mdx @@ -17,14 +17,14 @@ For more information on R, please see: - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -52,7 +52,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a R/CRAN package via the Cloudsmith CLI is: ```shell -cloudsmith push cran OWNER/REPOSITORY PACKAGE_NAME_PACKAGE_VERSION.tar.gz +cloudsmith push cran WORKSPACE/REPOSITORY PACKAGE_NAME_PACKAGE_VERSION.tar.gz ``` For a source package: @@ -90,7 +90,7 @@ To install a package, use the `install.packages` method directly in your R sessi ```r install.packages( "PACKAGE_NAME", - repos = c(cloudsmith = "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cran/") + repos = c(cloudsmith = "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cran/") ) ``` @@ -107,25 +107,25 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```r Entitlement Token Auth install.packages( "PACKAGE_NAME", - repos = c(cloudsmith = "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cran/") + repos = c(cloudsmith = "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cran/") ) ``` ```r HTTP Basic Auth (User & Pass) install.packages( "PACKAGE_NAME", - repos = c(cloudsmith = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/") + repos = c(cloudsmith = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/") ) ``` ```r HTTP Basic Auth (API-Key) install.packages( "PACKAGE-NAME", - repos = c(cloudsmith = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/") + repos = c(cloudsmith = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/") ) ``` ```r HTTP Basic Auth (Token) install.packages( "PACKAGE-NAME", - repos = c(cloudsmith = "https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/") + repos = c(cloudsmith = "https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/") ) ``` @@ -136,7 +136,7 @@ For most use cases, users will probably want to persist their repository setting ```r print("Configuring CRAN repositories") r = getOption("repos") -r["cloudsmith"] = "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cran/" +r["cloudsmith"] = "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cran/" r["CRAN"] = "https://cloud.r-project.org" options(repos = r) rm(r) @@ -147,7 +147,7 @@ rm(r) ```r Entitlement Token Auth print("Configuring CRAN repositories") r = getOption("repos") -r["cloudsmith"] = "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cran/" +r["cloudsmith"] = "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cran/" r["CRAN"] = "https://cloud.r-project.org" options(repos = r) rm(r) @@ -155,7 +155,7 @@ rm(r) ```r HTTP Basic Auth (User & Pass) print("Configuring CRAN repositories") r = getOption("repos") -r["cloudsmith"] = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/" +r["cloudsmith"] = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/" r["CRAN"] = "https://cloud.r-project.org" options(repos = r) rm(r) @@ -163,7 +163,7 @@ rm(r) ```r HTTP Basic Auth (API-Key) print("Configuring CRAN repositories") r = getOption("repos") -r["cloudsmith"] = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/" +r["cloudsmith"] = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/" r["CRAN"] = "https://cloud.r-project.org" options(repos = r) rm(r) @@ -171,7 +171,7 @@ rm(r) ```r HTTP Basic Auth (Token) print("Configuring CRAN repositories") r = getOption("repos") -r["cloudsmith"] = "https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cran/" +r["cloudsmith"] = "https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cran/" r["CRAN"] = "https://cloud.r-project.org" options(repos = r) rm(r) diff --git a/src/content/formats/dart-repository.mdx b/src/content/formats/dart-repository.mdx index c21f6e1f..e743b6e0 100644 --- a/src/content/formats/dart-repository.mdx +++ b/src/content/formats/dart-repository.mdx @@ -19,14 +19,14 @@ For more information on Dart, please see: - [Pub.dev](https://pub.dev/): The official public repository for Dart packages - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -47,21 +47,21 @@ Please note that Dart SDK >= 2.15 is required to use Dart Repositories. The endpoint for the native Dart API is: ``` -https://dart.cloudsmith.io/OWNER/REPOSITORY/ +https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` Your project `pubspec.yaml` defines the location that artifacts should be published to. Add the following to the root of this file: ```yaml -publish_to: https://dart.cloudsmith.io/OWNER/REPOSITORY/ +publish_to: https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` In order to authenticate for native publishing, you'll need run `dart pub token`, as follows: ```shell -echo 'API-KEY' | dart pub token add https://dart.cloudsmith.io/OWNER/REPOSITORY/ +echo 'API-KEY' | dart pub token add https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Enter secret token: -Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. +Requests to "https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/" will now be authenticated using the secret token. ``` You can then publish from your project directory using `dart pub publish`: @@ -103,7 +103,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Dart package via the Cloudsmith CLI is: ```shell -cloudsmith push dart OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz +cloudsmith push dart WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz ``` Example: @@ -129,24 +129,24 @@ No further setup is required with public repositories, you can add a dependency In order to authenticate, you need to run `dart pub token`, as follows: ```shell Entitlement Token Auth -echo 'TOKEN' | dart pub token add https://dart.cloudsmith.io/OWNER/REPOSITORY/ +echo 'TOKEN' | dart pub token add https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Enter secret token: -Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. +Requests to "https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/" will now be authenticated using the secret token. ``` ```yaml HTTP Basic Auth (User & Pass) -echo 'PASSWORD' | dart pub token add https://dart.cloudsmith.io/OWNER/REPOSITORY/ +echo 'PASSWORD' | dart pub token add https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Enter secret token: -Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. +Requests to "https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/" will now be authenticated using the secret token. ``` ```yaml HTTP Basic Auth (API-Key) -echo 'API-KEY' | dart pub token add https://dart.cloudsmith.io/OWNER/REPOSITORY/ +echo 'API-KEY' | dart pub token add https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Enter secret token: -Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. +Requests to "https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/" will now be authenticated using the secret token. ``` ```yaml HTTP Basic Auth (Token) -echo 'TOKEN' | dart pub token add https://dart.cloudsmith.io/OWNER/REPOSITORY/ +echo 'TOKEN' | dart pub token add https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Enter secret token: -Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authenticated using the secret token. +Requests to "https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/" will now be authenticated using the secret token. ``` ## Installing a package @@ -156,7 +156,7 @@ Requests to "https://dart.cloudsmith.io/OWNER/REPOSITORY/" will now be authentic **Public Or Private Repositories** ```shell -dart pub add PACKAGE_NAME:PACKAGE_VERSION --hosted-url https://dart.cloudsmith.io/OWNER/REPOSITORY/ +dart pub add PACKAGE_NAME:PACKAGE_VERSION --hosted-url https://dart.cloudsmith.io/WORKSPACE/REPOSITORY/ Resolving dependencies... + your-package 1.2.3 Downloading your-package 1.2.3... diff --git a/src/content/formats/debian-repository.mdx b/src/content/formats/debian-repository.mdx index e63009db..9c2aa077 100644 --- a/src/content/formats/debian-repository.mdx +++ b/src/content/formats/debian-repository.mdx @@ -13,7 +13,7 @@ For more information on Debian, please see: - [Debian Packages Documentation](https://www.debian.org/distrib/packages): The official docs for Debian Packages - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). @@ -21,7 +21,7 @@ In the following examples: | Identifier | Description | | :---------------- | :------------------------------------------------------------------------------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | DISTRO | Your distribution (i.e debian, ubuntu). You can also use "any-distro" if your package is compatible with more than more distribution | | VERSION | Your version name (i.e xenial, buster). You can also use "any-version" if your package is compatible with more than more version | @@ -55,7 +55,7 @@ For full details of how to install and set up the Cloudsmith CLI, see [Command L The command to upload a Debian binary package via the Cloudsmith CLI is: ```shell -cloudsmith push deb OWNER/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.deb +cloudsmith push deb WORKSPACE/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.deb ``` Example: Upload a binary package for Ubuntu Xenial @@ -95,7 +95,7 @@ When uploading a DSC package, the following files are involved: The command to upload a Debian **source** package via the Cloudsmith CLI is: ```shell -cloudsmith push deb OWNER/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.dsc --sources-file SOURCES_FILENAME +cloudsmith push deb WORKSPACE/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.dsc --sources-file SOURCES_FILENAME ``` Example: Upload a source package for Ubuntu Xenial @@ -153,7 +153,7 @@ To install Debian packages from a public Cloudsmith repository, you can quickly ```shell curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo bash ``` @@ -161,7 +161,7 @@ If you need to force a specific distribution: ```shell curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` @@ -173,14 +173,14 @@ apt-get install -y debian-archive-keyring # debian only apt-get install -y apt-transport-https # For Debian Stretch, Ubuntu 16.04 and later -keyring_location=/usr/share/keyrings/OWNER-REPOSITORY-archive-keyring.gpg +keyring_location=/usr/share/keyrings/WORKSPACE-REPOSITORY-archive-keyring.gpg # For Debian Jessie, Ubuntu 15.10 and earlier -keyring_location=/etc/apt/trusted.gpg.d/OWNER-REPOSITORY.gpg +keyring_location=/etc/apt/trusted.gpg.d/WORKSPACE-REPOSITORY.gpg -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/gpg.FINGERPRINT.key' | gpg --dearmor > ${keyring_location} +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/gpg.FINGERPRINT.key' | gpg --dearmor > ${keyring_location} -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/config.deb.txt?distro=DISTRO&codename=VERSION' > /etc/apt/sources.list.d/OWNER-REPOSITORY.list +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/config.deb.txt?distro=DISTRO&codename=VERSION' > /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list ``` #### Private Repositories @@ -197,47 +197,47 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, To install Debian packages from a private Cloudsmith repository, you can quickly set up the repository automatically: ```shell Entitlement Token Auth -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (User & Pass) sudo apk add --no-cache bash curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (API-Key) sudo apk add --no-cache bash curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (Token) sudo apk add --no-cache bash curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo bash ``` If you need to force a specific distribution: ```shell Entitlement Token Auth -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (User & Pass) curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (API-Key) curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (Token) curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.deb.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.deb.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` @@ -247,32 +247,32 @@ Or, you can manually configure the repository: apt-get install -y debian-keyring # debian only apt-get install -y debian-archive-keyring # debian only apt-get install -y apt-transport-https -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/OWNER-REPOSITORY.list +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list apt-get update ``` ```shell HTTP Basic Auth (User & Pass) apt-get install -y debian-keyring # debian only apt-get install -y debian-archive-keyring # debian only apt-get install -y apt-transport-https -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/OWNER-REPOSITORY.list +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list apt-get update ``` ```shell HTTP Basic Auth (API-Key) apt-get install -y debian-keyring # debian only apt-get install -y debian-archive-keyring # debian only apt-get install -y apt-transport-https -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/OWNER-REPOSITORY.list +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list apt-get update ``` ```shell HTTP Basic Auth (Token) apt-get install -y debian-keyring # debian only apt-get install -y debian-archive-keyring # debian only apt-get install -y apt-transport-https -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/OWNER-REPOSITORY.list +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' | apt-key add - +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.deb.txt?distro=DISTRO&codename=VERSION'> /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list apt-get update ``` @@ -289,7 +289,7 @@ sudo apt-get install PACKAGE_NAME=PACKAGE_VERSION If you no longer want to install packages from your Cloudsmith repository, you can remove it with: ```shell -rm /etc/apt/sources.list.d/OWNER-REPOSITORY.list +rm /etc/apt/sources.list.d/WORKSPACE-REPOSITORY.list apt-get clean rm -rf /var/lib/apt/lists/* apt-get update diff --git a/src/content/formats/docker-registry.mdx b/src/content/formats/docker-registry.mdx index 7239a797..35460e7d 100644 --- a/src/content/formats/docker-registry.mdx +++ b/src/content/formats/docker-registry.mdx @@ -61,7 +61,7 @@ Referring to the naming differences section above, every Cloudsmith account can As such, it is also not possible to have a global registry of all images on Cloudsmith. This may change in the future as we introduce different forms of Cloudsmith repositories and groupings. - The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). + The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). @@ -69,7 +69,7 @@ In the following examples: | Identifier | Description | | :--------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organisation name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name (or slug) | | REGISTRY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -91,13 +91,13 @@ If you have added a [Custom Domain](/workspaces/custom-domains) for Docker, you The endpoint for the native Docker API is: ``` -https://docker.cloudsmith.io/v2/OWNER/REGISTRY/ +https://docker.cloudsmith.io/v2/WORKSPACE/REGISTRY/ ``` Or if you're referring to it from `docker` commands: ``` -docker.cloudsmith.io/OWNER/REGISTRY +docker.cloudsmith.io/WORKSPACE/REGISTRY ``` In order to authenticate for native publishing, you'll need use `docker login`: @@ -111,7 +111,7 @@ You will be prompted for your Username and Password. Enter your Cloudsmith usern To publish an image to a Cloudsmith-based Docker registry, you first need to tag your image: ```shell -docker tag IMAGE_NAME:TAG docker.cloudsmith.io/OWNER/REGISTRY/IMAGE_NAME:TAG +docker tag IMAGE_NAME:TAG docker.cloudsmith.io/WORKSPACE/REGISTRY/IMAGE_NAME:TAG ``` @@ -124,7 +124,7 @@ docker tag your-image:latest docker.cloudsmith.io/org/repo/your-image:latest You can then publish the tagged image using `docker push`: ```shell -docker push docker.cloudsmith.io/OWNER/REGISTRY/IMAGE_NAME:TAG +docker push docker.cloudsmith.io/WORKSPACE/REGISTRY/IMAGE_NAME:TAG ``` ### Upload via the Cloudsmith CLI or Website @@ -144,13 +144,13 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Docker image via the Cloudsmith CLI is: ```shell -cloudsmith push docker OWNER/REGISTRY IMAGE_NAME.docker +cloudsmith push docker WORKSPACE/REGISTRY IMAGE_NAME.docker ``` Example: ```shell -cloudsmith push docker org/repo your-image.docker +cloudsmith push docker my-workspace/my-repo your-image.docker ``` #### Upload via Cloudsmith Website @@ -182,7 +182,7 @@ You need to authenticate via `docker login` to pull images: ```shell # Entitlement Token Auth docker login docker.cloudsmith.io -Username: OWNER/REGISTRY +Username: WORKSPACE/REGISTRY Password: TOKEN Login Succeeded @@ -200,7 +200,7 @@ Login Succeeded ```shell # HTTP Basic Auth (User & Pass) docker login docker.cloudsmith.io -Username: OWNER/REGISTRY +Username: WORKSPACE/REGISTRY Password: PASSWORD Login Succeeded @@ -209,7 +209,7 @@ Login Succeeded ```shell # HTTP Basic Auth (API-Key) docker login docker.cloudsmith.io -Username: OWNER/REGISTRY +Username: WORKSPACE/REGISTRY Password: API-KEY Login Succeeded @@ -218,7 +218,7 @@ Login Succeeded ```shell # HTTP Basic Auth (Token) docker login docker.cloudsmith.io -Username: OWNER/REGISTRY +Username: WORKSPACE/REGISTRY Password: TOKEN Login Succeeded @@ -229,13 +229,13 @@ Login Succeeded Pulling (downloading) an image from the Cloudsmith Docker registry can be done using the standard `docker pull` command: ```shell -docker pull docker.cloudsmith.io/OWNER/REGISTRY/IMAGE_NAME:TAG +docker pull docker.cloudsmith.io/WORKSPACE/REGISTRY/IMAGE_NAME:TAG ``` To refer to this image after pulling in a Dockerfile, specify the following: ``` -FROM docker.cloudsmith.io/OWNER/REGISTRY/IMAGE_NAME:TAG +FROM docker.cloudsmith.io/WORKSPACE/REGISTRY/IMAGE_NAME:TAG ``` ## Security Scanning diff --git a/src/content/formats/go-registry.mdx b/src/content/formats/go-registry.mdx index f7557c05..ac879d6a 100644 --- a/src/content/formats/go-registry.mdx +++ b/src/content/formats/go-registry.mdx @@ -18,14 +18,14 @@ For more information on Go, please see: - [GoDoc](https://godoc.org): Documentation/search for Community Go packages -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -72,7 +72,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Go module via the Cloudsmith CLI is: ```shell -cloudsmith push go OWNER/REPOSITORY PACKAGE_NAME.zip +cloudsmith push go WORKSPACE/REPOSITORY PACKAGE_NAME.zip ``` Example: @@ -126,26 +126,26 @@ While the legacy endpoint ([https://dl.cloudsmith.io](https://dl.cloudsmith.io)) -`GOPROXY` allows the concatenation of multiple servers separated by commas. For example, for `GOPROXY=https://dl.cloudsmith.io/public/OWNER/REPOSITORY/go/,https://proxy.golang.org,direct`, all requests not satisfied by the first server will fallback the the next one (`https://proxy.golang.org`). +`GOPROXY` allows the concatenation of multiple servers separated by commas. For example, for `GOPROXY=https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/go/,https://proxy.golang.org,direct`, all requests not satisfied by the first server will fallback the the next one (`https://proxy.golang.org`). ##### **Linux / Mac** ```shell -export GOPROXY=https://golang.cloudsmith.io/OWNER/REPOSITORY/ +export GOPROXY=https://golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ##### **Windows (cmd)** ```shell -set GOPROXY=https://golang.cloudsmith.io/OWNER/REPOSITORY/ +set GOPROXY=https://golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ##### **Windows (Powershell)** ```shell -$env:GOPROXY=https://golang.cloudsmith.io/OWNER/REPOSITORY/ +$env:GOPROXY=https://golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` #### Private Repositories @@ -163,30 +163,30 @@ To define the `GOPROXY` environment variable for a private Cloudsmith repository ```shell # HTTP Basic Auth (with Entitlement Token) -export GOPROXY=https://token:TOKEN@golang.cloudsmith.io/OWNER/REPOSITORY/ +export GOPROXY=https://token:TOKEN@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ # HTTP Basic Auth (API-Key) -export GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/OWNER/REPOSITORY/ +export GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ##### **Windows (cmd)** ```shell # HTTP Basic Auth (with Entitlement Token) -set GOPROXY=https://token:TOKEN@golang.cloudsmith.io/OWNER/REPOSITORY/ +set GOPROXY=https://token:TOKEN@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ # HTTP Basic Auth (API-Key) -set GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/OWNER/REPOSITORY/ +set GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ##### **Windows (Powershell)** ```powershell # HTTP Basic Auth (with Entitlement Token) -$env:GOPROXY=https://token:TOKEN@golang.cloudsmith.io/OWNER/REPOSITORY/ +$env:GOPROXY=https://token:TOKEN@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ # HTTP Basic Auth (API-Key) -$env:GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/OWNER/REPOSITORY/ +$env:GOPROXY=https://USERNAME:API-KEY@golang.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` diff --git a/src/content/formats/gradle-repository.mdx b/src/content/formats/gradle-repository.mdx index b64fba81..f100e652 100644 --- a/src/content/formats/gradle-repository.mdx +++ b/src/content/formats/gradle-repository.mdx @@ -13,14 +13,14 @@ For more information on Gradle, please see: - [Gradle Docs](https://docs.gradle.org/): The official documentation for Gradle -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -59,9 +59,9 @@ publishing { repositories { maven { name = "cloudsmith" - url = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" - def releasesRepoUrl = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" - def snapshotsRepoUrl = "https://maven.cloudsmith.io/OWNER/REPOSITORY/" + url = "https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/" + def releasesRepoUrl = "https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/" + def snapshotsRepoUrl = "https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/" url = version.endsWith('SNAPSHOT') ? **snapshotsRepoUrl **: releasesRepoUrl credentials { username = 'USERNAME' @@ -97,7 +97,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload via the Cloudsmith CLI is: ```shell -cloudsmith push maven OWNER/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom +cloudsmith push maven WORKSPACE/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom ``` Example: @@ -123,7 +123,7 @@ Add the following, at any location, to your `build.gradle` file: ```kotlin repositories { maven { - url "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/maven/" + url "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/maven/" } } ``` @@ -153,14 +153,14 @@ To enable the retrieval of packages from a private Cloudsmith repository via Gra ```groovy Entitlement Token Authentication repositories { maven { - url "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/maven/" + url "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/maven/" } } ``` ```groovy HTTP Basic Authentication repositories { maven { - url "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/maven/" + url "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/maven/" credentials { username "$repositoryUser" diff --git a/src/content/formats/helm-chart-repository.mdx b/src/content/formats/helm-chart-repository.mdx index 82b38ca1..d0cd99f6 100644 --- a/src/content/formats/helm-chart-repository.mdx +++ b/src/content/formats/helm-chart-repository.mdx @@ -30,14 +30,14 @@ For more information on Helm, please see: - [Kubernetes Documentation](https://kubernetes.io/docs): Kubernetes Documentation -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :------------ | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -72,7 +72,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Helm chart via the Cloudsmith CLI is: ```shell -cloudsmith push helm OWNER/REPOSITORY CHART_NAME-CHART_VERSION.tgz +cloudsmith push helm WORKSPACE/REPOSITORY CHART_NAME-CHART_VERSION.tgz ``` Example: @@ -99,7 +99,7 @@ Assuming you have helm already installed, it is straight-forward to add a Clouds ```shell helm repo add NAME \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/helm/charts/' + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/helm/charts/' helm repo update ``` @@ -107,26 +107,26 @@ helm repo update ```shell Entitlement Token Auth helm repo add NAME \ - 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/helm/charts/' + 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/helm/charts/' helm repo update ``` ```shell HTTP Basic Auth (User & Pass) helm repo add NAME \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/' \ --username USERNAME \ --password PASSWORD helm repo update ``` ```shell HTTP Basic Auth (API-Key) helm repo add NAME \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/' \ --username USERNAME \ --password API-KEY helm repo update ``` ```shell HTTP Basic Auth (Token) helm repo add NAME \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/' \ --username token \ --password TOKEN helm repo update @@ -208,7 +208,7 @@ Provenance files may be uploaded on the UI as above. Provenance files can be passed to the Cloudsmith CLI during a `push`. Please note this requires version `2.0.4` (or later) of the `cloudsmith-api` Python package: ```shell -cloudsmith push helm OWNER/REPOSITORY --provenance-file CHART_NAME-CHART_VERSION.tgz.prov CHART_NAME-CHART_VERSION.tgz +cloudsmith push helm WORKSPACE/REPOSITORY --provenance-file CHART_NAME-CHART_VERSION.tgz.prov CHART_NAME-CHART_VERSION.tgz ``` ### Automated Generation of Provenance Files diff --git a/src/content/formats/hex-repository.mdx b/src/content/formats/hex-repository.mdx index 8f46e7ec..8a6e6266 100644 --- a/src/content/formats/hex-repository.mdx +++ b/src/content/formats/hex-repository.mdx @@ -16,14 +16,14 @@ For more information on Hex, please see: - [Publishing a Hex package](https://hex.pm/docs/publish): How to Publish a Hex package. -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -46,12 +46,12 @@ Assuming you have mix already installed, it is straightforward to add a Cloudsmi ### Add and Configure a Cloudsmith Repository -First, you'll need to set some environment variables to assist in the process, replacing OWNER with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository: +First, you'll need to set some environment variables to assist in the process, replacing WORKSPACE with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository: ```shell export CLOUDSMITH_API_KEY='YOUR-API-KEY' export CLOUDSMITH_API_HOST='https://api.cloudsmith.io' -export CLOUDSMITH_REPOSITORY='OWNER/REPOSITORY' +export CLOUDSMITH_REPOSITORY='WORKSPACE/REPOSITORY' ``` While documented as optional, it's necessary to obtain the repository's fingerprint via Cloudsmith's API. This fingerprint ensures secure communication between your project and Cloudsmith. @@ -90,13 +90,13 @@ To configure your Hex package for publishing to your Cloudsmith repository, foll ```shell defp hex do [ - api_url: "https://hex.cloudsmith.io/OWNER/REPOSITORY", + api_url: "https://hex.cloudsmith.io/WORKSPACE/REPOSITORY", api_key: "API-KEY" ] end ``` -Replace OWNER with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository. Additionally, replace API-KEY with your Cloudsmith API key. +Replace WORKSPACE with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository. Additionally, replace API-KEY with your Cloudsmith API key. Next, integrate with Mix Tasks: After adding the defp function, the project function needs to have the hex and project variables defined. @@ -138,10 +138,10 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Hex package via the Cloudsmith CLI is: ```shell -cloudsmith push hex OWNER/REPOSITORY PACKAGE_NAME.tar +cloudsmith push hex WORKSPACE/REPOSITORY PACKAGE_NAME.tar ``` -Replace OWNER with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository. +Replace WORKSPACE with your Cloudsmith account's organization and REPOSITORY with the name of your Cloudsmith repository. ### Upload via Cloudsmith web app diff --git a/src/content/formats/luarocks-repository.mdx b/src/content/formats/luarocks-repository.mdx index 59000950..286b08da 100644 --- a/src/content/formats/luarocks-repository.mdx +++ b/src/content/formats/luarocks-repository.mdx @@ -15,14 +15,14 @@ For more information on Lua, please see: - [LuaRocks](https://luarocks.org/): The official website for LuaRocks -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -56,7 +56,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Lua module via the Cloudsmith CLI is: ```shell -cloudsmith push luarocks OWNER/REPOSITORY MODULE_NAME-MODULE_VERSION.src.rock +cloudsmith push luarocks WORKSPACE/REPOSITORY MODULE_NAME-MODULE_VERSION.src.rock ``` Example: @@ -80,7 +80,7 @@ You can install modules directly by using the `--server` command-line flag when #### Public Repositories ```shell -luarocks install MODULE_NAME MODULE_VERSION --server https://dl.cloudsmith.io/public/OWNER/REPOSITORY/luarocks/ +luarocks install MODULE_NAME MODULE_VERSION --server https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/luarocks/ ``` #### Private Repositories @@ -95,16 +95,16 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```shell Entitlement Token Auth -luarocks install MODULE_NAME MODULE_VERSION --server https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/luarocks/ +luarocks install MODULE_NAME MODULE_VERSION --server https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/luarocks/ ``` ```shell HTTP Basic Auth (User & Pass) -luarocks install MODULE_NAME MODULE_VERSION --server https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/ +luarocks install MODULE_NAME MODULE_VERSION --server https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/ ``` ```shell HTTP Basic Auth (API-Key) -luarocks install MODULE_NAME MODULE_VERSION --server https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/ +luarocks install MODULE_NAME MODULE_VERSION --server https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/ ``` ```shell HTTP Basic Auth (Token) -luarocks install MODULE_NAME MODULE_VERSION --server https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/ +luarocks install MODULE_NAME MODULE_VERSION --server https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/ ``` @@ -121,7 +121,7 @@ To add your private repository, adjust the `rocks_servers` section of your confi ```json rocks_servers = { "http://luarocks.org/repositories/rocks", - "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/luarocks/" + "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/luarocks/" } ``` @@ -130,25 +130,25 @@ rocks_servers = { ```json Entitlement Token Auth rocks_servers = { "http://luarocks.org/repositories/rocks", - "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/luarocks/" + "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/luarocks/" } ``` ```json HTTP Basic Auth (User & Pass) rocks_servers = { "http://luarocks.org/repositories/rocks", - "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/" + "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/" } ``` ```json HTTP Basic Auth (API-Key) rocks_servers = { "http://luarocks.org/repositories/rocks", - "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/" + "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/" } ``` ```json HTTP Basic Auth (Token) rocks_servers = { "http://luarocks.org/repositories/rocks", - "https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/luarocks/" + "https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/luarocks/" } ``` diff --git a/src/content/formats/maven-repository.mdx b/src/content/formats/maven-repository.mdx index 6711043a..43180c3a 100644 --- a/src/content/formats/maven-repository.mdx +++ b/src/content/formats/maven-repository.mdx @@ -22,14 +22,14 @@ If using Gradle - please see our [Gradle documentation](/formats/gradle-reposito If using sbt - please see our [sbt documentation](/formats/sbt-repository) -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -68,7 +68,7 @@ The disadvantage of creating an all-in-one jar mean that you have to deploy ever The endpoint for the native Maven API is: ``` -https://maven.cloudsmith.io/OWNER/REPOSITORY/ +https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` The distribution repositories define where to push your artifacts. In this case it will be a single repository, but you can configure alternatives. Add the following to your project `pom.xml` file: @@ -77,11 +77,11 @@ The distribution repositories define where to push your artifacts. In this case NAME - https://maven.cloudsmith.io/OWNER/REPOSITORY/ + https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ NAME - https://maven.cloudsmith.io/OWNER/REPOSITORY/ + https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` @@ -121,7 +121,7 @@ You can find out more about Maven publishing in the official [Maven documentatio The command to upload a Maven package via the Cloudsmith CLI is: ```shell -cloudsmith push maven OWNER/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom +cloudsmith push maven WORKSPACE/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom ``` Example: @@ -188,7 +188,7 @@ To do this add one of the following XML examples to your project `pom.xml` file: NAME - https://dl.cloudsmith.io/public/OWNER/REPOSITORY/maven/ + https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/maven/ true always @@ -215,7 +215,7 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, NAME - https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/maven/ + https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/maven/ true always @@ -231,7 +231,7 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, NAME - https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/maven/ + https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/maven/ true always diff --git a/src/content/formats/npm-registry.mdx b/src/content/formats/npm-registry.mdx index ddc9c050..856a9e2f 100644 --- a/src/content/formats/npm-registry.mdx +++ b/src/content/formats/npm-registry.mdx @@ -24,7 +24,7 @@ The Cloudsmith npm registry has been fully tested with the following: It is likely that it will work for other environments, including older and more recent versions. If you encounter any issues please [let us know](https://cloudsmith.com/company/contact-us). -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). @@ -32,7 +32,7 @@ In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -53,7 +53,7 @@ You can publish your npm packages to a Cloudsmith-based npm registry via the nat The endpoint for the native npm API is: ``` -https://npm.cloudsmith.io/OWNER/REPOSITORY/ +https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` To authenticate for native publishing, you can either use `npm login` or create an `npmrc` file (in your **$HOME** or in the project directory) @@ -66,13 +66,13 @@ Please see the official NPM release notes **[here](https://github.blog/changelog Use `npm login`: ```shell NPM \< v9 -npm login --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm login --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ Username: USERNAME Password: API-KEY Email: YOUR-EMAIL-ADDRESS ``` ```shell NPM v9 + -npm login --auth-type=legacy --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm login --auth-type=legacy --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ Username: USERNAME Password: API-KEY Email: YOUR-EMAIL-ADDRESS @@ -81,8 +81,8 @@ Email: YOUR-EMAIL-ADDRESS Or create an `.npmrc` file with the following: ``` -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:_authToken=API-KEY +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_authToken=API-KEY ``` ### Publish @@ -90,7 +90,7 @@ registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ Once you have set up the registry, you can then publish from your project directory using `npm publish`: ```shell -npm publish --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm publish --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` For more details on `npm publish` see the official [npm documentation](https://docs.npmjs.com/cli/publish). (external link) @@ -114,7 +114,7 @@ This assumes that you've created a `package.json` file for your project. Please The command to upload an npm package via the Cloudsmith CLI is: ```shell -cloudsmith push npm OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz +cloudsmith push npm WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz ``` Example: @@ -163,20 +163,20 @@ Cloudsmith has full support for distribution tags and (mostly) follows the same You can inspect a package to see what tags it has: ```shell -npm dist-tags ls PACKAGE_NAME --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm dist-tags ls PACKAGE_NAME --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can add tags to a package: ```shell npm dist-tags add PACKAGE_NAME@PACKAGE_VERSION TAG - --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +-registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can also remove tags from a package: ```shell -npm dist-tags rm PACKAGE_NAME TAG --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm dist-tags rm PACKAGE_NAME TAG --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can find out more about [distribution tags](https://docs.npmjs.com/adding-dist-tags-to-packages) in the npm documentation (external link). @@ -195,7 +195,7 @@ You can configure npm to use a Cloudsmith-based npm registry in one of two ways: To use/set the registry as the default for your user, execute the following: ```shell -npm config set registry https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm config set registry https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can set it globally (with permissions) by using the `-g` argument. @@ -207,13 +207,13 @@ Setting the registry globally will impact **all** npm commands unless they expli You can also add the registry directly to your user or project `.npmrc` file as follows: ```text -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` Alternatively, you can specify the registry each time you execute `npm` commands, such as: ```shell -npm install PACKAGE_NAME --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm install PACKAGE_NAME --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ### Private Registries @@ -230,22 +230,22 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, To set up the registry with authentication, add the one of the following to your user or project `.npmrc` file: ```text Entitlement Token Auth -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:_authToken=TOKEN +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_authToken=TOKEN ``` ```shell HTTP Basic Auth (User & Pass) -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:username=USERNAME -//npm.cloudsmith.io/OWNER/REPOSITORY/:_password=PASSWORD +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:username=USERNAME +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_password=PASSWORD ``` ```shell HTTP Basic Auth (API-Key) -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:_authToken=API-KEY +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_authToken=API-KEY ``` ```shell HTTP Basic Auth (Token) -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:username=token -//npm.cloudsmith.io/OWNER/REPOSITORY/:_password=TOKEN +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:username=token +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_password=TOKEN ``` @@ -263,7 +263,7 @@ npm install PACKAGE_NAME If you have added tags to the package, then these tags can be used as an alternative to the package version when installing packages, such as: ```shell -npm install PACKAGE_NAME@TAG --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm install PACKAGE_NAME@TAG --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ### Scoped Registries @@ -272,13 +272,13 @@ Using a registry scope tells npm to route installs for packages in that scope to You can set it via the command-line using: ```shell -npm config set '@SCOPE:registry' https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm config set '@SCOPE:registry' https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can also set it directly in your user or project `.npmrc` file: ``` -@SCOPE:registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +@SCOPE:registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` Installing packages with a scope then requires putting the scope before the name: diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index da251c27..b57a6381 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -22,14 +22,14 @@ For more information on NuGet, please see: - [Introduction to NuGet](https://docs.microsoft.com/en-us/nuget/what-is-nuget): Official guide to getting started with NuGet -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -61,7 +61,7 @@ This generates a nupkg (`.nupkg`) file like `your-package-1.2.3.nupkg` that you The endpoint for the native NuGet API is: ``` -https://nuget.cloudsmith.io/OWNER/REPOSITORY/ +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` You can upload your package using the NuGet CLI or the .NET Core CLI. @@ -71,7 +71,7 @@ You can publish a nupkg file that you've generated from your project, using [nug As a shortcut, you can set up the source (upstream) ahead of time, using `nuget source`: ```shell -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` Then you can publish your package using: @@ -84,7 +84,7 @@ nuget push PACKAGE_NAME-PACKAGE_VERSION.nupkg -Source example-repo -ApiKey API-K You can publish a nupkg file that you've generated from your project, using [dotnet](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet?tabs=netcore21): ```shell -dotnet nuget push PACKAGE_NAME-VERSION.nupkg -k API-KEY -s https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +dotnet nuget push PACKAGE_NAME-VERSION.nupkg -k API-KEY -s https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ### Upload via the Cloudsmith CLI @@ -94,7 +94,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a NuGet package via the Cloudsmith CLI is: ```shell -cloudsmith push nuget OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.nupkg +cloudsmith push nuget WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.nupkg ``` Example: @@ -122,21 +122,21 @@ To consume packages in NuGet from a Cloudsmith NuGet Feed , you'll need to confi **NuGet CLI** ```shell -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` **.NET Core CLI** When specifying the source in commands via `-s`, use the following URL: ``` -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` **Paket CLI** You can add the source to your `paket.dependencies` file: ``` -source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` If you don't want to check your username into source control, you can use environment variables instead @@ -145,7 +145,7 @@ If you don't want to check your username into source control, you can use enviro When specifying the source in commands via `-Source`, use the following URL: ``` -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` #### Private Repositories @@ -162,48 +162,48 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, **NuGet CLI** ```shell Entitlement Token Auth -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json -Username token -Password TOKEN -StorePasswordInClearText +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json -Username token -Password TOKEN -StorePasswordInClearText ``` ```shell HTTP Basic Auth (User & Pass) -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json -Username USERNAME -Password PASSWORD -StorePasswordInClearText +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json -Username USERNAME -Password PASSWORD -StorePasswordInClearText ``` ```shell HTTP Basic Auth (API-Key) -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json -Username USERNAME -Password API-KEY -StorePasswordInClearText +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json -Username USERNAME -Password API-KEY -StorePasswordInClearText ``` ```shell HTTP Basic Auth (Token) -nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json -Username token -Password TOKEN -StorePasswordInClearText +nuget sources add -Name example-repo -Source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json -Username token -Password TOKEN -StorePasswordInClearText ``` **.NET Core CLI** When specifying the source in commands via `-s`, use the following URL: ```shell Entitlement Token Auth -https://token:TOKEN@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://token:TOKEN@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (User & Pass) -https://USERNAME:PASSWORD@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://USERNAME:PASSWORD@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (API-Key) -https://USERNAME:API-KEY@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://USERNAME:API-KEY@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (Token) -https://token:TOKEN@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://token:TOKEN@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` **Paket CLI** You can add the source to your `paket.dependencies` file: ```shell Entitlement Token Auth -source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json username: "token" password: "TOKEN" authtype: "basic" +source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json username: "token" password: "TOKEN" authtype: "basic" ``` ```shell HTTP Basic Auth (User & Pass) -source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json username: "USERNAME" password: "PASSWORD" authtype: "basic" +source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json username: "USERNAME" password: "PASSWORD" authtype: "basic" ``` ```shell HTTP Basic Auth (API-Key) -source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json username: "USERNAME" password: "API-KEY" authtype: "basic" +source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json username: "USERNAME" password: "API-KEY" authtype: "basic" ``` ```shell HTTP Basic Auth (Token) -source https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json username: "token" password: "TOKEN" authtype: "basic" +source https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json username: "token" password: "TOKEN" authtype: "basic" ``` If you don't want to check your username into source control, you can use environment variables instead. @@ -212,16 +212,16 @@ If you don't want to check your username into source control, you can use enviro When specifying the source in commands via `-Source`, use the following URL: ```shell Entitlement Token Auth -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (User & Pass) -https://USERNAME:PASSWORD@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://USERNAME:PASSWORD@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (API-Key) -https://USERNAME:API-KEY@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://USERNAME:API-KEY@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```shell HTTP Basic Auth (Token) -https://token:TOKEN@nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://token:TOKEN@nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ### Install a Package @@ -237,7 +237,7 @@ nuget install PACKAGE_NAME -Source example-repo -DependencyVersion Highest **.NET Core CLI** ``` -dotnet add package PACKAGE_NAME -s https://nuget.cloudsmith.io/OWNER/REPOSITOY/v3/index.json +dotnet add package PACKAGE_NAME -s https://nuget.cloudsmith.io/WORKSPACE/REPOSITOY/v3/index.json ``` **Paket CLI** diff --git a/src/content/formats/nuget-symbol-server.mdx b/src/content/formats/nuget-symbol-server.mdx index baa4438f..cd136d88 100644 --- a/src/content/formats/nuget-symbol-server.mdx +++ b/src/content/formats/nuget-symbol-server.mdx @@ -22,14 +22,14 @@ For more information on Symbol Server, please see: - [Symbols in the Visual Studio Debugger](https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger): Official guide on configuring a Symbol Server on Visual Studio -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :----------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -53,7 +53,7 @@ In Visual Studio, go to `Tools > Options` Inside Options, on the menu to the left navigate to `Debugging > Symbols`, using the plus icon on the top-right, enter the URL of your repository, as follows: ```text Nuget - Symbol Server URL -https://nuget.cloudsmith.io/OWNER/REPOSITORY/download/symbols +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/download/symbols ``` diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index 105ced48..0755fcb1 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -76,13 +76,13 @@ Login Succeeded After authentication you can push the artifact by doing: ```shell Shell -$ oras push docker.cloudsmith.io/OWNER/REPOSITORY/ARTIFACT_NAME:TAG ./FILENAME_PATH +$ oras push docker.cloudsmith.io/WORKSPACE/REPOSITORY/ARTIFACT_NAME:TAG ./FILENAME_PATH ``` ORAS allows you to specify the type of the artifact by using the `--artifact-type` parameter, you can use it in the following way: ```shell Shell -$ oras push docker.cloudsmith.io/OWNER/REPOSITORY/ARTIFACT_NAME:TAG --artifact-type application/vnd.cloudsmith.v1 ./FILENAME_PATH +$ oras push docker.cloudsmith.io/WORKSPACE/REPOSITORY/ARTIFACT_NAME:TAG --artifact-type application/vnd.cloudsmith.v1 ./FILENAME_PATH ``` For more information on how to define a unique artifact type check the [official documentation](https://github.com/opencontainers/artifacts/blob/main/artifact-authors.md#defining-a-unique-artifact-type). @@ -100,7 +100,7 @@ Referrers allow artifacts to reference related objects, enabling a parent artifa To attach a file to an existing artifact, execute: ```shell Shell -$ oras attach --artifact-type application/vnd.cloudsmith.attachment.v1 docker.cloudsmith.io/OWNER/REPOSITORY/ARTIFACT_NAME:TAG ./FILE_TO_ATTACH +$ oras attach --artifact-type application/vnd.cloudsmith.attachment.v1 docker.cloudsmith.io/WORKSPACE/REPOSITORY/ARTIFACT_NAME:TAG ./FILE_TO_ATTACH ``` ## Download / Pull an Generic Artifact with ORAS @@ -144,7 +144,7 @@ Login Succeeded Pulling (downloading) an artifact from the Cloudsmith OCI registry can be done using the standard `oras pull` command: ```shell -$ oras pull docker.cloudsmith.io/OWNER/REPOSITORY/ARTIFACT_NAME:TAG +$ oras pull docker.cloudsmith.io/WORKSPACE/REPOSITORY/ARTIFACT_NAME:TAG ``` ## Helm v3 charts via OCI @@ -159,7 +159,7 @@ While Cloudsmith OCI Registries are GA, our Helm OCI registry is in Early Access Before you can push your chart you need to login to Cloudsmith's registry. ```shell Entitlement Token Auth -helm registry login helm.oci.cloudsmith.io -u OWNER/REPOSITORY -p TOKEN +helm registry login helm.oci.cloudsmith.io -u WORKSPACE/REPOSITORY -p TOKEN ``` ```shell HTTP Basic Auth (User & Pass) helm registry login helm.oci.cloudsmith.io -u USERNAME -p PASSWORD @@ -175,7 +175,7 @@ With public repositories, you don't need any sort of authentication and you can The command to upload a Helm Chart via OCI using the Helm CLI is: ```shell -helm push CHART_NAME-CHART_VERSION.tgz oci://helm.oci.cloudsmith.io/OWNER/REPOSITORY +helm push CHART_NAME-CHART_VERSION.tgz oci://helm.oci.cloudsmith.io/WORKSPACE/REPOSITORY ``` ### Installing a Chart @@ -183,19 +183,19 @@ helm push CHART_NAME-CHART_VERSION.tgz oci://helm.oci.cloudsmith.io/OWNER/REPOSI To install/use a specific version of a chart: ```shell -helm install oci://docker.cloudsmith.io/OWNER/REPOSITORY/CHART_NAME --version CHART_VERSION +helm install oci://docker.cloudsmith.io/WORKSPACE/REPOSITORY/CHART_NAME --version CHART_VERSION ``` To install the latest version of a chart: ```shell -helm install oci://docker.cloudsmith.io/OWNER/REPOSITORY/CHART_NAME +helm install oci://docker.cloudsmith.io/WORKSPACE/REPOSITORY/CHART_NAME ``` Or you can upgrade to the most recent version of a chart if you've already installed: ```shell -helm upgrade oci://docker.cloudsmith.io/OWNER/REPOSITORY/CHART_NAME +helm upgrade oci://docker.cloudsmith.io/WORKSPACE/REPOSITORY/CHART_NAME ``` If you've got a `requirements.yaml` file in your chart, you can specify this as a dependency: diff --git a/src/content/formats/powershell-modules-repository.mdx b/src/content/formats/powershell-modules-repository.mdx index a11ebbda..5a3385a9 100644 --- a/src/content/formats/powershell-modules-repository.mdx +++ b/src/content/formats/powershell-modules-repository.mdx @@ -15,7 +15,7 @@ For more information on PowerShell modules, please see: - [PowerShell Module Browser](https://docs.microsoft.com/en-us/powershell/module/): Browser for Microsoft PowerShell Modules -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). @@ -23,7 +23,7 @@ In the following examples: | Identifier | Description | | :------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -41,7 +41,7 @@ PowerShell modules use the NuGet package format, and Cloudsmith NuGet Feeds are The endpoint for the PowerShell Modules API is: ``` -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 ``` ### Create a PowerShell Module @@ -73,7 +73,7 @@ $credential = New-Object PSCredential('USERNAME',$(ConvertTo-SecureString 'API-K ``` ```powershell -Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -PublishLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential +Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -PublishLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential ``` Then you can publish a module with: @@ -89,7 +89,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command-Li The command to upload a PowerShell Module via the Cloudsmith CLI is: ```shell -cloudsmith push nuget OWNER/REPOSITORY MODULE_NAME-MODULE_VERSION.nupkg +cloudsmith push nuget WORKSPACE/REPOSITORY MODULE_NAME-MODULE_VERSION.nupkg ``` Example: @@ -111,11 +111,11 @@ You can set up the source ahead of time, using ` Register-PackageSource` and `Re #### Public Repositories ```powershell -Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -Trusted -ProviderName NuGet +Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -Trusted -ProviderName NuGet ``` ```powershell -Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -InstallationPolicy 'trusted' +Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -InstallationPolicy 'trusted' ``` For example: @@ -144,23 +144,23 @@ In order to authenticate to a private Cloudsmith repository, you must first crea ```powershell Entitlement Token $credential = New-Object PSCredential('token',$(ConvertTo-SecureString 'TOKEN' -AsPlainText -Force)) -Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential +Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential -Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential +Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential ``` ```powershell Username & Password $credential = New-Object PSCredential('USERNAME',$(ConvertTo-SecureString 'PASSWORD' -AsPlainText -Force)) -Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential +Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential -Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential +Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential ``` ```powershell Username & API-Key $credential = New-Object PSCredential('USERNAME',$(ConvertTo-SecureString 'API-KEY' -AsPlainText -Force)) -Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential +Register-PackageSource -Name 'NAME' -Location 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -Trusted -ProviderName NuGet -Credential $credential -Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential +Register-PSRepository -Name 'NAME' -SourceLocation 'https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2/' -InstallationPolicy 'trusted' -Credential $credential ``` ### Install a Package diff --git a/src/content/formats/python-repository.mdx b/src/content/formats/python-repository.mdx index 2884a9c3..1a5fa953 100644 --- a/src/content/formats/python-repository.mdx +++ b/src/content/formats/python-repository.mdx @@ -19,14 +19,14 @@ For more information on Python, please see: - [PyPi](https://pypi.org): The Python Package Index -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -57,7 +57,7 @@ This assumes that you've created a `setup.py` file for your project. Please see The endpoint for the native Python API is: ``` -https://python.cloudsmith.io/OWNER/REPOSITORY/ +https://python.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` In order to authenticate for native publishing, you'll need to create a `.pypirc` file (in your `$HOME` or project directory), with the following: @@ -68,7 +68,7 @@ index-servers = pypi cloudsmith [cloudsmith] - repository: https://python.cloudsmith.io/OWNER/REPOSITORY/ + repository: https://python.cloudsmith.io/WORKSPACE/REPOSITORY/ username: USERNAME password: API-KEY ``` @@ -86,7 +86,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Python package via the Cloudsmith CLI is: ```shell -cloudsmith push python OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.whl +cloudsmith push python WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.whl ``` Example: @@ -115,7 +115,7 @@ You have a choice of 2 methods to set up your Cloudsmith repository: Tell pip the location of your Cloudsmith repository using the the `--index-url` option. ```shell -pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/public/OWNER/REPOSITORY/python/simple/ +pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/python/simple/ ``` ##### Set up via Pip @@ -123,7 +123,7 @@ pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/p Similar to set up via command-line, pip needs to be passed the `--index-url` configuration option. To do this add `--index-url` to the top of your `requirements.txt` (or similar) file: ``` ---index-url https://dl.cloudsmith.io/public/OWNER/REPOSITORY/python/simple/ +--index-url https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/python/simple/ PACKAGE_NAME==PACKAGE_VERSION ``` @@ -140,16 +140,16 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ##### Set up via command line ```shell Entitlement Token Auth -pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/python/simple/ +pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/python/simple/ ``` ```shell HTTP Basic Auth (User & Pass) -pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ ``` ```shell HTTP Basic Auth (API-Key) -pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ ``` ```shell HTTP Basic Auth (Token) -pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ ``` ##### Set up via Pip @@ -157,19 +157,19 @@ pip install PACKAGE_NAME==PACKAGE_VERSION --index-url https://token:TOKEN@dl.clo Similar to set up via command-line, pip needs to be passed the `--index-url` configuration option. To do this add `--index-url` to the top of your `requirements.txt` (or similar) file: ```text Entitlement Token Auth ---index-url https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/python/simple/ +--index-url https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/python/simple/ PACKAGE_NAME==PACKAGE_VERSION ``` ```text HTTP Basic Auth (User & Pass) ---index-url https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +--index-url https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ PACKAGE_NAME==PACKAGE_VERSION ``` ```text HTTP Basic Auth (API-Key) ---index-url https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +--index-url https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ PACKAGE_NAME==PACKAGE_VERSION ``` ```text HTTP Basic Auth (Token) ---index-url https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/ +--index-url https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/ PACKAGE_NAME==PACKAGE_VERSION ``` @@ -225,7 +225,7 @@ uv pip install build #### Create project assets -Let's start defining a new `pyproject.toml` file for your project. Replace `OWNER`, `REPOSITORY` with your own Cloudsmith Workspace and Repository names: +Let's start defining a new `pyproject.toml` file for your project. Replace `WORKSPACE`, `REPOSITORY` with your own Cloudsmith Workspace and Repository names: ```toml [project] @@ -238,9 +238,9 @@ dependencies = [ [[tool.uv.index]] name = "cloudsmith" -url = "https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/python/simple/" +url = "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/python/simple/" # optional, but recommended for publish: -publish-url = "https://python.cloudsmith.io/OWNER/REPOSITORY/" +publish-url = "https://python.cloudsmith.io/WORKSPACE/REPOSITORY/" ``` Then, define the next environmental variables for `uv` to perform basic HTTP Auth. Replace `API-KEY` with your user API Token: diff --git a/src/content/formats/raw-repository.mdx b/src/content/formats/raw-repository.mdx index cd47a2b5..1598441a 100644 --- a/src/content/formats/raw-repository.mdx +++ b/src/content/formats/raw-repository.mdx @@ -17,7 +17,7 @@ Cloudsmith provides public & private repositories for Raw files Cloudsmith supports "Raw" files. Any file, any extension, suitable for datasets, images or whatever you want to throw at it. You get all the benefits of a Cloudsmith repository such as CLI uploads for automation, fine-grained access controls and logging/statistics (among others) - but for any file type at all. -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). @@ -28,7 +28,7 @@ In the following examples: | Identifier | Description | | :--------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -51,7 +51,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload via the Cloudsmith CLI is: ```shell -cloudsmith push raw OWNER/REPOSITORY FILENAME +cloudsmith push raw WORKSPACE/REPOSITORY FILENAME ``` Example: @@ -94,16 +94,16 @@ This URL is in the following formats; it varies based on if you uploaded the raw #### Public Repositories ```text Package Version -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/versions/VERSION_NO/FILENAME +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/versions/VERSION_NO/FILENAME ``` ```text Package Name and Version -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME ``` ```text Package Name -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/names/NAME/files/FILENAME +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/names/NAME/files/FILENAME ``` ```text None -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/files/FILENAME +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/files/FILENAME ``` Some example `curl` commands to download a raw package from a public repository: @@ -111,19 +111,19 @@ Some example `curl` commands to download a raw package from a public repository: A package with no package name or version specified at upload ```shell -curl -1sLf -O 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/files/FILENAME' +curl -1sLf -O 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/files/FILENAME' ``` A specific version of a package ```shell -curl -1sLf -O 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/versions/VERSION_NO/FILENAME' +curl -1sLf -O 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/versions/VERSION_NO/FILENAME' ``` The latest version of the package ```shell -curl -1sLf -O 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/versions/latest/FILENAME' +curl -1sLf -O 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/versions/latest/FILENAME' ``` #### Private Repositories @@ -140,37 +140,37 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, Raw Package uploaded with a version number: ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/versions/VERSION_NO/FILENAME +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/versions/VERSION_NO/FILENAME ``` ```shell HTTP Basic Auth -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/versions/VERSION_NO/FILENAME' +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/versions/VERSION_NO/FILENAME' ``` Raw Package uploaded with a package name and version number: ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME ``` ```shell HTTP Basic Auth -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME' +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/names/NAME/versions/VERSION_NO/FILENAME' ``` Raw Package uploaded with a package name ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/names/NAME/files/FILENAME +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/names/NAME/files/FILENAME ``` ```shell HTTP Basic Auth -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/names/NAME/files/FILENAME +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/names/NAME/files/FILENAME ``` Raw Package uploaded without a package name or version number ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/files/FILENAME +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/files/FILENAME ``` ```shell HTTP Basic Auth -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/files/FILENAME +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/files/FILENAME ``` Some example `curl` commands to download a raw package from a private repository: @@ -178,13 +178,13 @@ Some example `curl` commands to download a raw package from a private repository A package with no package name or version specified at upload using HTTP basic authentication: ```shell -curl -1sLf -u "USERNAME:PASSWORD" -O 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/files/FILENAME' +curl -1sLf -u "USERNAME:PASSWORD" -O 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/files/FILENAME' ``` A specific version of a package using Entitlement Token authentication: ```shell -curl -1sLf -O 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/versions/VERSION_NO/FILENAME' +curl -1sLf -O 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/versions/VERSION_NO/FILENAME' ``` ## HTML / JSON Indexes @@ -196,16 +196,16 @@ When enabled, the HTML index is available at: #### Public Repositories ``` -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/ +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/ ``` #### Private Repositories ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/ +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/ ``` ```shell HTTP Basic Auth -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/ +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/ ``` The JSON index is available at: @@ -213,16 +213,16 @@ The JSON index is available at: #### Public Repositories ``` -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/raw/index.json +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/raw/index.json ``` #### Private Repositories ```shell Entitlement Token Auth -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/index.json +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/index.json ``` ```shell HTTP Basic Auth (User & Pass) -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/raw/index.json +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/raw/index.json ``` *** @@ -260,7 +260,7 @@ JSON indexes will attach the package signature URL and checksum values under the "name" : "PACKAGE_NAME", "signature" : { "checksum_sha256" : "SIGNATURE_CHECKSUM", - "url" : "https://dl.cloudsmith.io/TOKEN/OWNER/REPO/PACKAGE_IDENTIFIER/gpg.FILE_IDENTIFIER.asc" + "url" : "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPO/PACKAGE_IDENTIFIER/gpg.FILE_IDENTIFIER.asc" }, ... } @@ -276,10 +276,10 @@ For convenience, each of the file URLs listed above in 'Download a Package' can FILENAME="foo.zip" # Retreive a file -curl -1sLf -O https://dl.cloudsmith.io/TOKEN/OWNER/REPO/raw/files/$FILENAME +curl -1sLf -O https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPO/raw/files/$FILENAME # Retreive the signature for the file -curl -1sLf -O https://dl.cloudsmith.io/TOKEN/OWNER/REPO/raw/files/$FILENAME.asc +curl -1sLf -O https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPO/raw/files/$FILENAME.asc ``` ## Troubleshooting diff --git a/src/content/formats/redhat-repository.mdx b/src/content/formats/redhat-repository.mdx index e13ae968..478fb6fa 100644 --- a/src/content/formats/redhat-repository.mdx +++ b/src/content/formats/redhat-repository.mdx @@ -16,14 +16,14 @@ For more information on RedHat, please see: - [RPM Documentation](https://rpm.org/documentation.html): The official docs for RPM -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | DISTRO | Your distribution (i.e el, fedora or opensuse). You can also use "any-distro" if your package is compatible with more than one distribution | | VERSION | Your version name (i.e 7, 29). You can also use "any-version" if your package is compatible with more than one version | @@ -58,7 +58,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a RedHat package via the Cloudsmith CLI is: ```shell -cloudsmith push rpm OWNER/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.rpm +cloudsmith push rpm WORKSPACE/REPOSITORY/DISTRO/VERSION PACKAGE_NAME-PACKAGE_VERSION.PACKAGE_ARCH.rpm ``` Example: Upload a package for RedHat 5 @@ -101,7 +101,7 @@ To install RPM packages from a public Cloudsmith repository, you can quickly set ```shell curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo bash ``` @@ -109,7 +109,7 @@ Alternatively, if you need to force a specific distribution: ```shell curl -1sLf \ - 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` @@ -119,28 +119,28 @@ Or, you can manually configure the repository: ```shell yum install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/OWNER-REPOSITORY.repo -yum-config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -yum -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' +rpm --import 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/WORKSPACE-REPOSITORY.repo +yum-config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +yum -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' ``` **Dnf (Fedora)** ```shell dnf install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/OWNER-REPOSITORY.repo -dnf config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -dnf -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' --enablerepo='OWNER-REPOSITORY-source' +rpm --import 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/WORKSPACE-REPOSITORY.repo +dnf config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +dnf -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' --enablerepo='WORKSPACE-REPOSITORY-source' ``` **Zypper (Suse)** ```shell -curl -1sLf 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/OWNER-REPOSITORY.repo -zypper ar -f '/tmp/OWNER-REPOSITORY.repo' -zypper --gpg-auto-import-keys refresh OWNER-REPOSITORY OWNER-REPOSITORY-source +curl -1sLf 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=CODENAME' > /tmp/WORKSPACE-REPOSITORY.repo +zypper ar -f '/tmp/WORKSPACE-REPOSITORY.repo' +zypper --gpg-auto-import-keys refresh WORKSPACE-REPOSITORY WORKSPACE-REPOSITORY-source ``` #### Private Repositories @@ -160,22 +160,22 @@ To install RPM packages from a private Cloudsmith repository, you can quickly se ```shell Entitlement Token Auth curl -1sLf \ - 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (User & Pass) curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (API-Key) curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo bash ``` ```shell HTTP Basic Auth (Token) curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo bash ``` @@ -183,22 +183,22 @@ Alternatively, if you need to force a specific distribution: ```shell Entitlement Token Auth curl -1sLf \ - 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (User & Pass) curl -u "USERNAME:PASSWORD" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (API-Key) curl -u "USERNAME:API-KEY" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` ```shell HTTP Basic Auth (Token) curl -u "token:TOKEN" -1sLf \ - 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/bash.rpm.sh' \ + 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/bash.rpm.sh' \ | sudo distro=DISTRO codename=VERSION bash ``` @@ -208,85 +208,85 @@ Or, you can manually configure the repository: ```shell Entitlement Token Auth yum install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -yum-config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -yum -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' +rpm --import 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +yum-config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +yum -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' ``` ```shell HTTP Basic Auth (User & Pass) yum install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -yum-config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -yum -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +yum-config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +yum -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' ``` ```shell HTTP Basic Auth (API-Key) yum install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -yum-config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -yum -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +yum-config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +yum -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' ``` ```shell HTTP Basic Auth (Token) yum install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -yum-config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -yum -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +yum-config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +yum -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' ``` **Dnf (Fedora)** ```shell Entitlement Token Auth dnf install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -dnf config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -dnf -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' --enablerepo='OWNER-REPOSITORY-source' +rpm --import 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +dnf config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +dnf -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' --enablerepo='WORKSPACE-REPOSITORY-source' ``` ```shell HTTP Basic Auth (User & Pass) dnf install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -dnf config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -dnf -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' --enablerepo='OWNER-REPOSITORY-source' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +dnf config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +dnf -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' --enablerepo='WORKSPACE-REPOSITORY-source' ``` ```shell HTTP Basic Auth (API-Key) dnf install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -dnf config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -dnf -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' --enablerepo='OWNER-REPOSITORY-source' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +dnf config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +dnf -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' --enablerepo='WORKSPACE-REPOSITORY-source' ``` ```shell HTTP Basic Auth (Token) dnf install yum-utils pygpgme -rpm --import 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -dnf config-manager --add-repo '/tmp/OWNER-REPOSITORY.repo' -dnf -q makecache -y --disablerepo='*' --enablerepo='OWNER-REPOSITORY' --enablerepo='OWNER-REPOSITORY-source' +rpm --import 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +dnf config-manager --add-repo '/tmp/WORKSPACE-REPOSITORY.repo' +dnf -q makecache -y --disablerepo='*' --enablerepo='WORKSPACE-REPOSITORY' --enablerepo='WORKSPACE-REPOSITORY-source' ``` **Zypper (Suse)** ```shell Entitlement Token Auth -curl -1sLf 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -zypper ar -f '/tmp/OWNER-REPOSITORY.repo' -zypper --gpg-auto-import-keys refresh OWNER-REPOSITORY OWNER-REPOSITORY-source +curl -1sLf 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +zypper ar -f '/tmp/WORKSPACE-REPOSITORY.repo' +zypper --gpg-auto-import-keys refresh WORKSPACE-REPOSITORY WORKSPACE-REPOSITORY-source ``` ```shell HTTP Basic Auth (User & Pass) -curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -zypper ar -f '/tmp/OWNER-REPOSITORY.repo' -zypper --gpg-auto-import-keys refresh OWNER-REPOSITORY OWNER-REPOSITORY-source +curl -u "USERNAME:PASSWORD" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +zypper ar -f '/tmp/WORKSPACE-REPOSITORY.repo' +zypper --gpg-auto-import-keys refresh WORKSPACE-REPOSITORY WORKSPACE-REPOSITORY-source ``` ```shell HTTP Basic Auth (API-Key) -curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -zypper ar -f '/tmp/OWNER-REPOSITORY.repo' -zypper --gpg-auto-import-keys refresh OWNER-REPOSITORY OWNER-REPOSITORY-source +curl -u "USERNAME:API-KEY" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +zypper ar -f '/tmp/WORKSPACE-REPOSITORY.repo' +zypper --gpg-auto-import-keys refresh WORKSPACE-REPOSITORY WORKSPACE-REPOSITORY-source ``` ```shell HTTP Basic Auth (Token) -curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/OWNER-REPOSITORY.repo -zypper ar -f '/tmp/OWNER-REPOSITORY.repo' -zypper --gpg-auto-import-keys refresh OWNER-REPOSITORY OWNER-REPOSITORY-source +curl -u "token:TOKEN" -1sLf 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/setup/config.rpm.txt?distro=DISTRO&codename=VERSION' > /tmp/WORKSPACE-REPOSITORY.repo +zypper ar -f '/tmp/WORKSPACE-REPOSITORY.repo' +zypper --gpg-auto-import-keys refresh WORKSPACE-REPOSITORY WORKSPACE-REPOSITORY-source ``` ### Installing a Package @@ -318,15 +318,15 @@ If you no longer want to install packages from your Cloudsmith repository, you c **Yum (RedHat, CentOS, Amazon) and Dnf (Fedora)** ```shell -rm /etc/yum.repos.d/OWNER-REPOSITORY.repo -rm /etc/yum.repos.d/OWNER-REPOSITORY-source.repo +rm /etc/yum.repos.d/WORKSPACE-REPOSITORY.repo +rm /etc/yum.repos.d/WORKSPACE-REPOSITORY-source.repo ``` **Zypper (Suse)** ```shell -zypper rr OWNER-REPOSITORY -zypper rr OWNER-REPOSITORY-source +zypper rr WORKSPACE-REPOSITORY +zypper rr WORKSPACE-REPOSITORY-source ``` ## Upstream Proxying / Caching diff --git a/src/content/formats/ruby-repository.mdx b/src/content/formats/ruby-repository.mdx index fb5935d8..a42c124c 100644 --- a/src/content/formats/ruby-repository.mdx +++ b/src/content/formats/ruby-repository.mdx @@ -16,14 +16,14 @@ For more information on Ruby, please see: - [Ruby Gem Documentation](https://guides.rubygems.org): The official docs for Ruby Gems -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -51,7 +51,7 @@ This assumes that you've created a `.gemspec` file for your project. Please see The endpoint for the native Ruby API is: ``` -https://ruby.cloudsmith.io/OWNER/REPOSITORY/ +https://ruby.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` In order to authenticate for native publishing, you can either enter your credentials during the `gem push` command or add your credentials to your `$HOME/.gem/credentials` file: @@ -70,7 +70,7 @@ To publish a gem, you can do so from your project directory using `gem push`: ```shell gem push PACKAGE_NAME-VERSION.gem \ - --host 'https://ruby.cloudsmith.io/OWNER/REPOSITORY' + --host 'https://ruby.cloudsmith.io/WORKSPACE/REPOSITORY' ``` If you haven't specified credentials above, you'll be asked for them during the push. @@ -86,7 +86,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Ruby gem package via the Cloudsmith CLI is: ```shell -cloudsmith push ruby OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.gem +cloudsmith push ruby WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.gem ``` Example: @@ -114,7 +114,7 @@ Bundler from version 1.7 supports scoped sources, so you can install a gem from #### Public Repositories ```shell -source 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE-NAME', '~> PACKAGE_VERSION' end ``` @@ -131,22 +131,22 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```shell Entitlement Token Auth -source 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/ruby/' do +source 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE-NAME', '~> PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (User & Pass) -source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE-NAME', '~> PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (API-Key) -source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE-NAME', '~> PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (Token) -source 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE-NAME', '~> PACKAGE_VERSION' end ``` @@ -158,7 +158,7 @@ You can also add Cloudsmith as a source for the Ruby CLI instead: #### Public Repositories ```shell -gem sources --add 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/ruby/' +gem sources --add 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/ruby/' ``` #### Private Repositories @@ -166,16 +166,16 @@ gem sources --add 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/ruby/' The Ruby CLI setup method will differ depending on what authentication type you choose to use. ```shell Entitlement Token Auth -gem sources --add 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/ruby/' +gem sources --add 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/ruby/' ``` ```shell HTTP Basic Auth (User & Pass) -gem sources --add 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' +gem sources --add 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' ``` ```shell HTTP Basic Auth (API-Key) -gem sources --add 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' +gem sources --add 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' ``` ```shell HTTP Basic Auth (Token) -gem sources --add 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' +gem sources --add 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' ``` ### Specifying Dependencies @@ -185,7 +185,7 @@ If you have a project **Gemfile** you can specify your Ruby gem package as a dep #### Public Repositories ```shell -source 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/ruby/' do +source 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE_NAME', 'PACKAGE_VERSION' end ``` @@ -193,22 +193,22 @@ end #### Private Repositories ```shell Entitlement Token Auth -source 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/ruby/' do +source 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE_NAME', 'PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (User & Pass) -source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE_NAME', 'PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (API-Key) -source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE_NAME', 'PACKAGE_VERSION' end ``` ```shell HTTP Basic Auth (Token) -source 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/ruby/' do +source 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/ruby/' do gem 'PACKAGE_NAME', 'PACKAGE_VERSION' end ``` diff --git a/src/content/formats/sbt-repository.mdx b/src/content/formats/sbt-repository.mdx index 09b2183c..48cb12d3 100644 --- a/src/content/formats/sbt-repository.mdx +++ b/src/content/formats/sbt-repository.mdx @@ -15,14 +15,14 @@ For more information on sbt, please see: - [scala-sbt](https://www.scala-sbt.org/): The official sbt website -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -39,7 +39,7 @@ In the following examples: The endpoint for the native Maven API is: ``` -https://maven.cloudsmith.io/OWNER/REPOSITORY/ +https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` By default, Sbt 1.x uses Maven-style publishing and no other plugins are required to publish to Cloudsmith. If you're using Sbt 0.x then you'll need to use the Maven Wagon integration approach (see the integrations tab within the repository on the Cloudsmith website for further details). @@ -47,7 +47,7 @@ By default, Sbt 1.x uses Maven-style publishing and no other plugins are require Include a `publishTo` stanza in your `publish.sbt` file as follows: ```scala -publishTo := { Some("Cloudsmith API" at "https://maven.cloudsmith.io/OWNER/REPOSITORY/") } +publishTo := { Some("Cloudsmith API" at "https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/") } pomIncludeRepository := { x => false } ``` @@ -56,7 +56,7 @@ You then configure a `~/.sbt/.credentials` file with the authentication details ``` realm=Cloudsmith API host=maven.cloudsmith.io -user=OWNER +user=WORKSPACE password=API-KEY ``` @@ -99,7 +99,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload via the Cloudsmith CLI is: ```shell -cloudsmith push maven OWNER/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom +cloudsmith push maven WORKSPACE/REPOSITORY ARTIFACT_ID-PACKAGE_VERSION.jar --pom-file=ARTIFACT_ID-PACKAGE_VERSION.pom ``` Example: @@ -121,7 +121,7 @@ Please see [Upload a Package](/artifact-management/package-upload) for details o To enable the retrieval of packages from a public Cloudsmith repository via sbt, add your repository your `build.sbt` file as follows: ```scala -resolvers += "NAME" at "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/maven/" +resolvers += "NAME" at "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/maven/" ``` #### Private Repositories @@ -138,10 +138,10 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, To enable the retrieval of packages from a private Cloudsmith repository via sbt, add your repository your `build.sbt` file as follows: ```scala Entitlement Token Authentication -resolvers += "NAME" at "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/maven/" +resolvers += "NAME" at "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/maven/" ``` ```scala HTTP Basic Authentication -resolvers += "NAME" at "https://dl.cloudsmith.io/basic/OWNER/REPOSITIORY/maven/" +resolvers += "NAME" at "https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITIORY/maven/" ``` When using Entitlement Token Authentication, no further setup is required. diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index ce670601..d2a0c658 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -1,4 +1,3 @@ - import { Tag, Note, BlockImage } from '@/components'; @@ -23,7 +22,7 @@ In the following examples: | Identifier | Description | | :----------------- | :---------------------------------------------------------------------------------------- | -| WORKSPACE | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name (or slug) | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | GIT_REPOSITORY_URL | GIT repository URL | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | diff --git a/src/content/formats/terraform-modules-repository.mdx b/src/content/formats/terraform-modules-repository.mdx index e264d312..c01f8102 100644 --- a/src/content/formats/terraform-modules-repository.mdx +++ b/src/content/formats/terraform-modules-repository.mdx @@ -15,14 +15,14 @@ For more information on Terraform, please see: - [Terraform Documentation](https://developer.hashicorp.com/terraform/docs): The official docs for Terraform -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -65,7 +65,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload a Terraform Module via the Cloudsmith CLI is: ```shell -cloudsmith push terraform OWNER/REPOSITORY terraform-MODULE_PROVIDER-MODULE_NAME-MODULE_VERSION.tar.gz +cloudsmith push terraform WORKSPACE/REPOSITORY terraform-MODULE_PROVIDER-MODULE_NAME-MODULE_VERSION.tar.gz ``` Example: @@ -88,12 +88,12 @@ First, the namespace, repository and credentials must be added to your `.terrafo ```shell Entitlement Token Auth credentials "terraform.cloudsmith.io" { - token = "OWNER/REPOSITORY/TOKEN" + token = "WORKSPACE/REPOSITORY/TOKEN" } ``` ```shell API Key Auth credentials "terraform.cloudsmith.io" { - token = "OWNER/REPOSITORY/API-KEY" + token = "WORKSPACE/REPOSITORY/API-KEY" } ``` diff --git a/src/content/formats/unity-registry.mdx b/src/content/formats/unity-registry.mdx index 7eb814de..a3031143 100644 --- a/src/content/formats/unity-registry.mdx +++ b/src/content/formats/unity-registry.mdx @@ -15,14 +15,14 @@ For more information on Unity, please see: - [Unity UPM Scoped Registry](https://docs.unity3d.com/Manual/upm-scoped.html): Documentation to setup a Scoped Package Registry -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :-------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | API-KEY | Your Cloudsmith API Key | @@ -40,7 +40,7 @@ As Unity packages are compatible with npm registries, you can publish your Unit The endpoint for the native npm API is: ``` -https://npm.cloudsmith.io/OWNER/REPOSITORY/ +https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` In order to authenticate for native publishing, you can either use `npm login` or create an `npmrc` file (in your **$HOME** or in the project directory) @@ -48,7 +48,7 @@ In order to authenticate for native publishing, you can either use `npm login` o Use `npm login`: ```shell -npm login --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm login --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ Username: USERNAME Password: API-KEY Email: YOUR-EMAIL-ADDRESS @@ -57,8 +57,8 @@ Email: YOUR-EMAIL-ADDRESS Or create an `.npmrc` file with the following: ``` -registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ -//npm.cloudsmith.io/OWNER/REPOSITORY/:_authToken=API-KEY +registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ +//npm.cloudsmith.io/WORKSPACE/REPOSITORY/:_authToken=API-KEY ``` ### Publish @@ -66,7 +66,7 @@ registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ Once you have set up the registry, you can then publish from your project directory using `npm publish`: ```shell -npm publish --registry=https://npm.cloudsmith.io/OWNER/REPOSITORY/ +npm publish --registry=https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` For more details on `npm publish` see the official [npm documentation](https://docs.npmjs.com/cli/publish). (external link) @@ -90,7 +90,7 @@ This assumes that you've created a `project.json` file for your project. Please The command to upload a Unity package via the Cloudsmith CLI is: ```shell -cloudsmith push npm OWNER/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz +cloudsmith push npm WORKSPACE/REPOSITORY PACKAGE_NAME-PACKAGE_VERSION.tgz ``` Example: @@ -113,7 +113,7 @@ To download/install a Unity package, you need to add your Cloudsmith registry to "scopedRegistries": [ { "name": "NAME", - "url": "https://npm.cloudsmith.io/OWNER/REPOSITORY/", + "url": "https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/", "scopes": [ "SCOPE" ] @@ -160,13 +160,13 @@ To download/install a Unity package from a private Cloudsmith registry: 2. Locate the `upmconfig.toml` file and add the one of the following, depending on which authentication method you wish to use: ```toml Entitlement Token Auth -[npmAuth."https://npm.cloudsmith.io/OWNER/REPOSITORY/"] +[npmAuth."https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/"] token = "TOKEN" email = "EMAIL" OPTIONAL alwaysAuth = true OPTIONAL ``` ```toml API Key Auth -[npmAuth."https://npm.cloudsmith.io/OWNER/REPOSITORY/"] +[npmAuth."https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/"] token = "API-KEY" email = "EMAIL" OPTIONAL alwaysAuth = true OPTIONAL diff --git a/src/content/formats/vagrant-repository.mdx b/src/content/formats/vagrant-repository.mdx index 5ebe455a..709bf8aa 100644 --- a/src/content/formats/vagrant-repository.mdx +++ b/src/content/formats/vagrant-repository.mdx @@ -14,14 +14,14 @@ For more information on Vagrant, please see: - [Public Vagrant Repository](https://portal.cloud.hashicorp.com/vagrant/discover): The official public repository for Vagrant boxes -The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your namespace/repo/rsa-key pre-configured). +The examples in this document are generic. Cloudsmith provides contextual setup instructions within each repository, complete with copy and paste snippets (with your workspace/repo/rsa-key pre-configured). In the following examples: | Identifier | Description | | :------------ | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith account name or organization name (namespace) | +| WORKSPACE | Your Cloudsmith workspace name | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | | USERNAME | Your Cloudsmith username | @@ -52,7 +52,7 @@ For full details of how to install and setup the Cloudsmith CLI, see [Command Li The command to upload an (Objective-C or Swift) CocoaPods package via the Cloudsmith CLI is: ```shell -cloudsmith push vagrant OWNER/REPOSITORY BOX_NAME.box --provider PROVIDER_NAME --name BOX_NAME --version BOX_VERSION +cloudsmith push vagrant WORKSPACE/REPOSITORY BOX_NAME.box --provider PROVIDER_NAME --name BOX_NAME --version BOX_VERSION ``` Example: @@ -76,7 +76,7 @@ To add the box directly via Vagrant's CLI, execute the following: #### Public Repositories ```shell -vagrant box add 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ +vagrant box add 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ --name 'BOX_NAME' \ --box-version 'BOX_VERSION' \ --provider 'PROVIDER_NAME' @@ -94,25 +94,25 @@ Entitlement Tokens, User Credentials and API-Keys should be treated as secrets, ```shell Entitlement Token Auth -vagrant box add 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ +vagrant box add 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ --name 'BOX_NAME' \ --box-version 'BOX_VERSION' \ --provider 'PROVIDER_NAME' ``` ```shell HTTP Basic Auth (User & Pass) -vagrant box add 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ +vagrant box add 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ --name 'BOX_NAME' \ --box-version 'BOX_VERSION' \ --provider 'PROVIDER_NAME' ``` ```shell HTTP Basic Auth (API Key) -vagrant box add 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ +vagrant box add 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ --name 'BOX_NAME' \ --box-version 'BOX_VERSION' \ --provider 'PROVIDER_NAME' ``` ```shell HTTP Basic Auth (Token) -vagrant box add 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ +vagrant box add 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json' \ --name 'BOX_NAME' \ --box-version 'BOX_VERSION' \ --provider 'PROVIDER_NAME' @@ -124,26 +124,26 @@ To add the box without having to specify the URL each time, the following must b ```shell config.vm.box = "BOX_NAME" -config.vm.box_url = "https://dl.cloudsmith.io/public/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json" +config.vm.box_url = "https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json" ``` #### Private Repositories ```shell Entitlement Token Auth config.vm.box = "BOX_NAME" -config.vm.box_url = "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json" +config.vm.box_url = "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json" ``` ```shell HTTP Basic Auth (User & Pass) config.vm.box = "BOX_NAME" -config.vm.box_url = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json" +config.vm.box_url = "https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json" ``` ```shell HTTP Basic Auth (API Key) config.vm.box = "BOX_NAME" -config.vm.box_url = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json" +config.vm.box_url = "https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json" ``` ```shell HTTP Basic Auth (Token) config.vm.box = "BOX_NAME" -config.vm.box_url = "https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/vagrant/BOX_NAME/metadata.json" +config.vm.box_url = "https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/vagrant/BOX_NAME/metadata.json" ``` ### Install a Box diff --git a/src/content/homepage.json b/src/content/homepage.json index 2dd80b30..36db8aac 100644 --- a/src/content/homepage.json +++ b/src/content/homepage.json @@ -47,7 +47,7 @@ }, { "title": "Quickstart guide", - "description": "This guide will take you through the basic steps to help you get your Cloudsmith account up and running quickly.", + "description": "This guide will take you through the basic steps to help you get your Cloudsmith workspace up and running quickly.", "href": "/guides/getting-started", "linkText": "Go to guide", "icon": "homepage/api", diff --git a/src/content/integrations/integrating-with-ansible.mdx b/src/content/integrations/integrating-with-ansible.mdx index 8ccd13fb..6b0f4eb1 100644 --- a/src/content/integrations/integrating-with-ansible.mdx +++ b/src/content/integrations/integrating-with-ansible.mdx @@ -16,7 +16,7 @@ In the following examples: | Identifier | Description | | :---------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith organisation name (namespace) | +| WORKSPACE | Your Cloudsmith workspace | | REPOSITORY | Your Cloudsmith Repository identifier (also called "slug") | | DISTRO | Your distribution (i.e el, fedora, debian etc) | | VERSION | Your version name (i.e 7, 29, hardy, buster etc) | @@ -40,9 +40,9 @@ Example `yum_repository` task: name: cloudsmith description: Cloudsmith file: cloudsmith - baseurl: https://dl.cloudsmith.io/public/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch + baseurl: https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch repo_gpgcheck: yes - gpgkey: https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + gpgkey: https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key enabled: yes become: true ``` @@ -55,9 +55,9 @@ Example `yum_repository` task: name: cloudsmith description: Cloudsmith file: cloudsmith - baseurl: https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch + baseurl: https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch repo_gpgcheck: yes - gpgkey: https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + gpgkey: https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key enabled: yes become: true ``` @@ -67,9 +67,9 @@ Example `yum_repository` task: name: cloudsmith description: Cloudsmith file: cloudsmith - baseurl: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch + baseurl: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch repo_gpgcheck: yes - gpgkey: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + gpgkey: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key username: USERNAME password: PASSWORD enabled: yes @@ -81,9 +81,9 @@ Example `yum_repository` task: name: cloudsmith description: Cloudsmith file: cloudsmith - baseurl: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch + baseurl: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch repo_gpgcheck: yes - gpgkey: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + gpgkey: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key username: USERNAME password: API-KEY enabled: yes @@ -95,9 +95,9 @@ Example `yum_repository` task: name: cloudsmith description: Cloudsmith file: cloudsmith - baseurl: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch + baseurl: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch repo_gpgcheck: yes - gpgkey: https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + gpgkey: https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key username: token password: TOKEN enabled: yes @@ -128,13 +128,13 @@ Example `apt_key` and `apt_repository` tasks: ```yaml - name: Import Cloudsmith Repository GPG key apt_key: - url: https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + url: https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key state: present become: true - name: Add Cloudsmith Repository apt_repository: - repo: deb https://dl.cloudsmith.io/public/OWNER/REPOSITORY/deb/DISTRO VERSION main + repo: deb https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/deb/DISTRO VERSION main state: present become: true ``` @@ -144,52 +144,52 @@ Example `apt_key` and `apt_repository` tasks: ```yaml Entitlement Token Auth - name: Import Cloudsmith Repository GPG key apt_key: - url: https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + url: https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key state: present become: true - name: Add Cloudsmith Repository apt_repository: - repo: deb https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/deb/DISTRO VERSION main + repo: deb https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/deb/DISTRO VERSION main state: present become: true ``` ```yaml HTTP Basic Auth (User & Pass) - name: Import Cloudsmith Repository GPG key apt_key: - url: https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + url: https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key state: present become: true - name: Add Cloudsmith Repository apt_repository: - repo: deb https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO VERSION main + repo: deb https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO VERSION main state: present become: true ``` ```yaml HTTP Basic Auth (API-Key) - name: Import Cloudsmith Repository GPG key apt_key: - url: https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + url: https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key state: present become: true - name: Add Cloudsmith Repository apt_repository: - repo: deb https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO VERSION main + repo: deb https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO VERSION main state: present become: true ``` ```yaml HTTP Basic Auth (Token) - name: Import Cloudsmith Repository GPG key apt_key: - url: https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key + url: https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key state: present become: true - name: Add Cloudsmith Repository apt_repository: - repo: deb https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO VERSION main + repo: deb https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO VERSION main state: present become: true ``` diff --git a/src/content/integrations/integrating-with-argocd.mdx b/src/content/integrations/integrating-with-argocd.mdx index dc1dceba..6361ff1a 100644 --- a/src/content/integrations/integrating-with-argocd.mdx +++ b/src/content/integrations/integrating-with-argocd.mdx @@ -86,12 +86,12 @@ Argo CD requires that you add the Helm repository from Cloudsmith to access the **Adding the Helm Repository via ArgoCD CLI** ```text bash -argocd repo add --name cloudsmith-helm --type helm https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/ \ +argocd repo add --name cloudsmith-helm --type helm https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/ \ --username your-username \ --password your-api-key ``` -- dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/: Replace with the correct URL of your Cloudsmith Helm repository. +- dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/: Replace with the correct URL of your Cloudsmith Helm repository. - \--username and --password: Please use your Cloudsmith username with the API key for authentication, as using username and password is deprecated. @@ -102,7 +102,7 @@ In case of Entitlement token the command for adding the helm repository via Argo ```text bash argocd repo add --name cloudsmith-helm --type helm \ - https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/helm/charts/ + https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/helm/charts/ ``` ### Step 5: Create an Argo CD Application Manifest @@ -118,7 +118,7 @@ metadata: spec: project: default source: - repoURL: "https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/helm/charts/" + repoURL: "https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/helm/charts/" targetRevision: "0.1.0" chart: my-test-app destination: diff --git a/src/content/integrations/integrating-with-aws-codebuild.mdx b/src/content/integrations/integrating-with-aws-codebuild.mdx index a9a2be43..d5c80f0c 100644 --- a/src/content/integrations/integrating-with-aws-codebuild.mdx +++ b/src/content/integrations/integrating-with-aws-codebuild.mdx @@ -57,7 +57,7 @@ To upload an artifact from a build to a Cloudsmith repository, add the `cloudsmi ```yaml post_build: commands: - - cloudsmith push FORMAT OWNER/REPOSITORY FILENAME + - cloudsmith push FORMAT WORKSPACE/REPOSITORY FILENAME ``` Please see the [Cloudsmith CLI](/developer-tools/cli) documentation for more details of the syntax of the `cloudsmith push` command and the [Supported Formats](/formats) page for examples of the `cloudsmith push` command for each supported format. diff --git a/src/content/integrations/integrating-with-buildkite.mdx b/src/content/integrations/integrating-with-buildkite.mdx index 106c52a3..c6fbec7d 100644 --- a/src/content/integrations/integrating-with-buildkite.mdx +++ b/src/content/integrations/integrating-with-buildkite.mdx @@ -70,7 +70,7 @@ To push an artifact from your Buildkite pipeline to a Cloudsmith repository, you ```yaml commands: - - cloudsmith push FORMAT OWNER/REPOSITORY FILENAME + - cloudsmith push FORMAT WORKSPACE/REPOSITORY FILENAME ``` Please see the [Cloudsmith CLI](/developer-tools/cli) documentation for more details of the syntax of the `cloudsmith push` command and the [Supported Formats](/formats) page for examples of the `cloudsmith push` command for each supported format. diff --git a/src/content/integrations/integrating-with-chef.mdx b/src/content/integrations/integrating-with-chef.mdx index 0c231dd7..ff9476aa 100644 --- a/src/content/integrations/integrating-with-chef.mdx +++ b/src/content/integrations/integrating-with-chef.mdx @@ -13,7 +13,7 @@ In the following examples: | Identifier | Description | | :---------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith organisation name (namespace) | +| WORKSPACE | Your Cloudsmith workspace | | REPOSITORY | Your Cloudsmith Repository identifier (also called "slug") | | DISTRO | Your distribution (i.e el, fedora, debian etc) | | VERSION | Your version name (i.e 7, 29, hardy, buster etc) | @@ -36,9 +36,9 @@ Example `yum_repository` resource configurations: ```ruby yum_repository 'Cloudsmith' do description 'Cloudsmith' - baseurl 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch' + baseurl 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch' gpgcheck 'true' - gpgkey 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + gpgkey 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' action :create end ``` @@ -48,18 +48,18 @@ end ```ruby Entitlement Token Auth yum_repository 'Cloudsmith' do description 'Cloudsmith' - baseurl 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch' + baseurl 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch' gpgcheck 'true' - gpgkey 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + gpgkey 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' action :create end ``` ```ruby HTTP Basic Auth (User & Pass) yum_repository 'Cloudsmith' do description 'Cloudsmith' - baseurl 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch' + baseurl 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch' gpgcheck 'true' - gpgkey 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + gpgkey 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' username 'USERNAME' password 'PASSWORD' action :create @@ -68,9 +68,9 @@ end ```ruby HTTP Basic Auth (API-Key) yum_repository 'Cloudsmith' do description 'Cloudsmith' - baseurl 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch' + baseurl 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch' gpgcheck 'true' - gpgkey 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + gpgkey 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' username 'USERNAME' password 'API-KEY' action :create @@ -79,9 +79,9 @@ end ```ruby HTTP Basic Auth (Token) yum_repository 'Cloudsmith' do description 'Cloudsmith' - baseurl 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/rpm/DISTRO/VERSION/$basearch' + baseurl 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/rpm/DISTRO/VERSION/$basearch' gpgcheck 'true' - gpgkey 'https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + gpgkey 'https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' username 'token' password 'TOKEN' action :create @@ -97,11 +97,11 @@ Example `apt_repository` resource configurations: ```ruby apt_repository 'Cloudsmith' do - uri 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/deb/DISTRO' + uri 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/deb/DISTRO' arch 'ARCH' distribution 'VERSION' components ['main'] - key 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + key 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' end ``` @@ -109,37 +109,37 @@ end ```ruby Entitlement Token Auth apt_repository 'Cloudsmith' do - uri 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/deb/DISTRO' + uri 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/deb/DISTRO' arch 'ARCH' distribution 'VERSION' components ['main'] - key 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + key 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' end ``` ```ruby HTTP Basic Auth (User & Pass) apt_repository 'Cloudsmith' do - uri 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO' + uri 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO' arch 'ARCH' distribution 'VERSION' components ['main'] - key 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + key 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' end ``` ```ruby HTTP Basic Auth (API-Key) apt_repository 'Cloudsmith' do - uri 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO' + uri 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO' arch 'ARCH' distribution 'VERSION' components ['main'] - key 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + key 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' end ``` ```ruby HTTP Basic Auth (Token) apt_repository 'Cloudsmith' do - uri 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO' + uri 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO' arch 'ARCH' distribution 'VERSION' components ['main'] - key 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' + key 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key' end ``` diff --git a/src/content/integrations/integrating-with-drone-ci.mdx b/src/content/integrations/integrating-with-drone-ci.mdx index 4b6658dd..45f36680 100644 --- a/src/content/integrations/integrating-with-drone-ci.mdx +++ b/src/content/integrations/integrating-with-drone-ci.mdx @@ -26,7 +26,7 @@ In the following examples: | Identifier | Description | | :----------- | :------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organisation name (namespace) | +| WORKSPACE | Your Cloudsmith account name or workspace | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | FORMAT | The format of the package, i.e "deb", "maven", "npm" etc | | PACKAGE_FILE | The filename of the package | @@ -38,7 +38,7 @@ To push an artifact from a build step, you just need to add the commands to inst ```yaml steps: - pip install cloudsmith-cli - - cloudsmith push FORMAT OWNER/REPOSITORY/PACKAGE_FILE + - cloudsmith push FORMAT WORKSPACE/REPOSITORY/PACKAGE_FILE ``` ### Docker Pipeline Example @@ -50,14 +50,14 @@ For example, you can use a Docker pipeline with your own Docker image that inclu ```yaml steps: - name: Build and Push Package - image: docker.cloudsmith.io/OWNER/REPOSITORY/IMAGE_NAME:latest + image: docker.cloudsmith.io/WORKSPACE/REPOSITORY/IMAGE_NAME:latest environment: CLOUDSMITH_API_KEY: from_secret: CLOUDSMITH_API_KEY commands: - ....... - ....... - - cloudsmith push FORMAT OWNER/REPOSITORY/PACKAGE_FILENAME + - cloudsmith push FORMAT WORKSPACE/REPOSITORY/PACKAGE_FILENAME image_pull_secrets: - dockerconfigjson ``` diff --git a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx index 0c28c16a..5297aee6 100644 --- a/src/content/integrations/integrating-with-gcp-cloudbuild.mdx +++ b/src/content/integrations/integrating-with-gcp-cloudbuild.mdx @@ -69,7 +69,7 @@ To add the Cloudsmith CLI to your Google CloudBuild Project, add the following c To upload an artifact from a build to a Cloudsmith repository, add the `cloudsmith push` command in `cloudbuild.yaml` file: ```yaml - - cloudsmith push FORMAT OWNER/REPOSITORY FILENAME + - cloudsmith push FORMAT WORKSPACE/REPOSITORY FILENAME ``` Please see the [Cloudsmith CLI](/developer-tools/cli) documentation for more details of the syntax of the `cloudsmith push` command and the [Supported Formats](/formats) page for examples of the `cloudsmith push` command for each supported format. diff --git a/src/content/integrations/integrating-with-gitlab-cicd.mdx b/src/content/integrations/integrating-with-gitlab-cicd.mdx index 3ace1e63..7dcafd99 100644 --- a/src/content/integrations/integrating-with-gitlab-cicd.mdx +++ b/src/content/integrations/integrating-with-gitlab-cicd.mdx @@ -39,7 +39,7 @@ To push a Ruby package via `gem push` using GitLab CI/CD, you will need to add t ```yaml variables: - RUBYGEMS_HOST: "https://ruby.cloudsmith.io/OWNER/REPOSITORY" + RUBYGEMS_HOST: "https://ruby.cloudsmith.io/WORKSPACE/REPOSITORY" ``` 2. A file variable, called `CLOUDSMITH_API_KEY`, to your repository CI/CD settings: diff --git a/src/content/integrations/integrating-with-harnesscd.mdx b/src/content/integrations/integrating-with-harnesscd.mdx index 454161e3..8cca69fb 100644 --- a/src/content/integrations/integrating-with-harnesscd.mdx +++ b/src/content/integrations/integrating-with-harnesscd.mdx @@ -59,4 +59,4 @@ Add the following to specify a Docker image : |:-|:-| |Display Name|A name within Harness for the artifact.| |Source Server|The "Display Name" specified when configuring the Artifact Server.| -|Docker Image Name|The name of the Docker image. In the format OWNER/REPOSITORY/IMAGE-NAME, where OWNER is your Cloudsmith Organization / Account name, REPOSITORY is your Cloudsmith Repository identifier, and IMAGE-NAME your the Docker image name in the repository.| \ No newline at end of file +|Docker Image Name|The name of the Docker image. In the format WORKSPACE/REPOSITORY/IMAGE-NAME, where WORKSPACE is your Cloudsmith Organization / Account name, REPOSITORY is your Cloudsmith Repository identifier, and IMAGE-NAME your the Docker image name in the repository.| \ No newline at end of file diff --git a/src/content/integrations/integrating-with-jenkins.mdx b/src/content/integrations/integrating-with-jenkins.mdx index 7fb83b91..bbdcee10 100644 --- a/src/content/integrations/integrating-with-jenkins.mdx +++ b/src/content/integrations/integrating-with-jenkins.mdx @@ -19,7 +19,7 @@ In the following examples: | Identifier | Description | | :----------- | :--------------------------------------------------------- | -| OWNER | Your Cloudsmith organisation name (namespace) | +| WORKSPACE | Your Cloudsmith workspace | | REPOSITORY | Your Cloudsmith Repository identifier (also called "slug") | | FORMAT | The format of the package, i.e "deb", "maven", "npm" etc | | PACKAGE_FILE | The filename of the package | @@ -30,7 +30,7 @@ Add the following as a build step to perform the push to Cloudsmith: ```shell Jenkins Build Steps using CLI pip install cloudsmith-cli -cloudsmith push FORMAT OWNER/REPOSITORY PACKAGE_FILE +cloudsmith push FORMAT WORKSPACE/REPOSITORY PACKAGE_FILE ``` ### Pipelines Example @@ -40,7 +40,7 @@ Add the following as a build stage to perform the push to Cloudsmith: ```shell Jenkins Pipelines using CLI stage "Deploy" sh('pip install cloudsmith-cli') -sh('cloudsmith push FORMAT OWNER/REPOSITORY PACKAGE_FILE') +sh('cloudsmith push FORMAT WORKSPACE/REPOSITORY PACKAGE_FILE') ``` diff --git a/src/content/integrations/integrating-with-octopus-deploy.mdx b/src/content/integrations/integrating-with-octopus-deploy.mdx index 396776ca..8112a64a 100644 --- a/src/content/integrations/integrating-with-octopus-deploy.mdx +++ b/src/content/integrations/integrating-with-octopus-deploy.mdx @@ -71,10 +71,10 @@ Create a new Octopus Feed by navigating to **Library->External Feeds** and selec - Enter the HTTP/HTTPS URL of the feed for your Cloudsmith NuGet repository following the instructions in the box below: ```text NuGet V3 -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v3/index.json +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v3/index.json ``` ```text NuGet V2 -https://nuget.cloudsmith.io/OWNER/REPOSITORY/v2 +https://nuget.cloudsmith.io/WORKSPACE/REPOSITORY/v2 ``` Private repositories require authentication- refer to the [section below](#adding-credentials-for-private-repositories) for information on how to add your credentials. @@ -88,7 +88,7 @@ Create a new Octopus Feed by navigating to **Library->External Feeds** and selec - Enter the HTTP/HTTPS URL of the feed for your Cloudsmith Docker repository following the instructions in the box below: ``` -https://docker.cloudsmith.io/v2/OWNER/REGISTRY/ +https://docker.cloudsmith.io/v2/WORKSPACE/REGISTRY/ ``` Private repositories require authentication- refer to the [section below](#adding-credentials-for-private-repositories) for information on how to add your credentials. @@ -102,10 +102,10 @@ Create a new Octopus Feed by navigating to **Library->External Feeds** and selec - Enter the HTTP/HTTPS URL of the feed for your Cloudsmith Maven repository following the instructions in the box below: ```text Public URL with no authentication -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/maven/ +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/maven/ ``` ```text Entitlement Token Authentication -https://dl.cloudsmith.xyz/TOKEN/OWNER/REPOSITORY/maven/ +https://dl.cloudsmith.xyz/TOKEN/WORKSPACE/REPOSITORY/maven/ ``` ```text HTTP Basic Authentication https://dl.cloudsmith.io/basic/cloudsmith-test/ciara-repo1/maven/ @@ -122,13 +122,13 @@ Create a new Octopus Feed by navigating to **Library->External Feeds** and selec - Enter the HTTP/HTTPS URL of the feed for your Cloudsmith Helm repository following the instructions in the box below: ```shell Entitlement Token Authentication -https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/helm/charts/ +https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/helm/charts/ ``` ```text Public URL with no authentication -https://dl.cloudsmith.io/public/OWNER/REPOSITORY/helm/charts/ +https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/helm/charts/ ``` ```text -https://dl.cloudsmith.io/basic/OWNER/REPOSITORY/helm/charts/ +https://dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/helm/charts/ ``` Private repositories require authentication- refer to the [section below](#adding-credentials-for-private-repositories) for information on how to add your credentials. diff --git a/src/content/integrations/integrating-with-puppet.mdx b/src/content/integrations/integrating-with-puppet.mdx index 171a3528..be4dbde2 100644 --- a/src/content/integrations/integrating-with-puppet.mdx +++ b/src/content/integrations/integrating-with-puppet.mdx @@ -16,7 +16,7 @@ In the following examples: | Identifier | Description | | :--------------- | :---------------------------------------------------------------------------------------- | -| OWNER | Your Cloudsmith organisation name (namespace) | +| WORKSPACE | Your Cloudsmith workspace | | REPOSITORY | Your Cloudsmith Repository identifier (also called "slug") | | DISTRO | Your distribution (i.e el, fedora, debian etc) | | VERSION | Your version name (i.e 7, 29, hardy, buster etc) | @@ -45,12 +45,12 @@ class cloudsmith_repo { apt::key { 'cloudsmith': id => 'FINGERPRINT-LONG, - source => 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', + source => 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', } apt::source { 'cloudsmith': comment => 'A Description added to repo config in /etc/apt/sources.list.d/', - location => 'https://dl.cloudsmith.io/public/OWNER/REPOSITORY/deb/DISTRO', + location => 'https://dl.cloudsmith.io/public/WORKSPACE/REPOSITORY/deb/DISTRO', release => 'VERSION', repos => 'main', pin => 500, @@ -71,12 +71,12 @@ class cloudsmith_repo { apt::key { 'cloudsmith': id => 'FINGERPRINT-LONG, - source => 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', + source => 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', } apt::source { 'cloudsmith': comment => 'A Description added to repo config in /etc/apt/sources.list.d/', - location => 'https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/deb/DISTRO', + location => 'https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/deb/DISTRO', release => 'VERSION', repos => 'main', pin => 500, @@ -94,12 +94,12 @@ class cloudsmith_repo { apt::key { 'cloudsmith': id => 'FINGERPRINT-LONG, - source => 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', + source => 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', } apt::source { 'cloudsmith': comment => 'A Description added to repo config in /etc/apt/sources.list.d/', - location => 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO', + location => 'https://USERNAME:PASSWORD@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO', release => 'VERSION', repos => 'main', pin => 500, @@ -118,12 +118,12 @@ class cloudsmith_repo { apt::key { 'cloudsmith': id => 'FINGERPRINT-LONG, - source => 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', + source => 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', } apt::source { 'cloudsmith': comment => 'A Description added to repo config in /etc/apt/sources.list.d/', - location => 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO', + location => 'https://USERNAME:API-KEY@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO', release => 'VERSION', repos => 'main', pin => 500, @@ -141,12 +141,12 @@ class cloudsmith_repo { apt::key { 'cloudsmith': id => 'FINGERPRINT-LONG, - source => 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', + source => 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/cfg/gpg/gpg.FINGERPRINT.key', } apt::source { 'cloudsmith': comment => 'A Description added to repo config in /etc/apt/sources.list.d/', - location => 'https://token:TOKEN@dl.cloudsmith.io/basic/OWNER/REPOSITORY/deb/DISTRO', + location => 'https://token:TOKEN@dl.cloudsmith.io/basic/WORKSPACE/REPOSITORY/deb/DISTRO', release => 'VERSION', repos => 'main', pin => 500, diff --git a/src/content/integrations/integrating-with-semaphore-ci.mdx b/src/content/integrations/integrating-with-semaphore-ci.mdx index c9629545..975c98e3 100644 --- a/src/content/integrations/integrating-with-semaphore-ci.mdx +++ b/src/content/integrations/integrating-with-semaphore-ci.mdx @@ -23,7 +23,7 @@ In the following examples: | Identifier | Description | | :----------- | :------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organisation name (namespace) | +| WORKSPACE | Your Cloudsmith account name or workspace | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | FORMAT | The format of the package, i.e "deb", "maven", "npm" etc | | PACKAGE_FILE | The filename of the package | @@ -51,7 +51,7 @@ For example: - name: Push commands: - cache restore package - - cloudsmith push FORMAT OWNER/REPOSITORY/ PACKAGE_FILE + - cloudsmith push FORMAT WORKSPACE/REPOSITORY/ PACKAGE_FILE prologue: commands: - sem-version python 3.7 diff --git a/src/content/integrations/integrating-with-zapier.mdx b/src/content/integrations/integrating-with-zapier.mdx index f0bd856e..40f04f27 100644 --- a/src/content/integrations/integrating-with-zapier.mdx +++ b/src/content/integrations/integrating-with-zapier.mdx @@ -44,7 +44,7 @@ The Create Entitlement Token action has three required fields: |Field Name|Description|Required| |:--|:--|:--| |Token Name|A name for the Token within the repository|Yes| -|Repository Owner|The username or organisation name that owns the repository|Yes| +|Repository Owner|The username or organization name that owns the repository|Yes| |Repository|The repository identifier (also called the slug)|Yes| |Token String|A string for the token itself. If one is not provided, a random string will be generated.|No| |Is Active|A boolean defines if the token is enabled or disabled|No| @@ -65,7 +65,7 @@ The Disable Entitlement Token action has three required fields: |Field Name|Description|Required| |:--|:--|:--| -|Repository Owner|The username or organisation name that owns the repository|Yes| +|Repository Owner|The username or organization name that owns the repository|Yes| |Repository|The repository identifier (also called the slug)|Yes| |Entitlement Identifier|The unique identifier for a token within a repository (see [Entitlements](/software-distribution/entitlement-tokens) for further information on tokens and identifiers)|Yes| diff --git a/src/content/integrations/upload-via-postman.mdx b/src/content/integrations/upload-via-postman.mdx index 47d68951..52a47a93 100644 --- a/src/content/integrations/upload-via-postman.mdx +++ b/src/content/integrations/upload-via-postman.mdx @@ -13,7 +13,7 @@ In the following examples: | Identifier | Description | | :-------------- | :------------------------------------------------------------ | -| OWNER | Your Cloudsmith account name or organisation name (namespace) | +| WORKSPACE | Your Cloudsmith account name or workspace | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | USERNAME | Your Cloudsmith username | | PASSWORD | Your Cloudsmith password | @@ -23,7 +23,7 @@ In the following examples: Uploading a raw package to Cloudsmith via the URL is a 2 step process: -1. A PUT req against the upload URL: https://upload.cloudsmith.io/OWNER/REPOSITORY/PACKAGE_NAME. +1. A PUT req against the upload URL: https://upload.cloudsmith.io/WORKSPACE/REPOSITORY/PACKAGE_NAME. The response to this PUT req gives you an identifier that you will need for the next stage. 2. A POST req to the API method [`Upload Raw Packages`](/api/packages/upload/raw). diff --git a/src/content/logs-and-observability/usage.mdx b/src/content/logs-and-observability/usage.mdx index 07ffa9da..f72e195b 100644 --- a/src/content/logs-and-observability/usage.mdx +++ b/src/content/logs-and-observability/usage.mdx @@ -104,7 +104,7 @@ This will increase with time as more artifacts are stored within your Workspace. You can query the number of active (has been downloaded) and inactive (has not been downloaded) packages via the Cloudsmith CLI with the `cloudsmith metrics packages` command: ```shell -cloudsmith metrics packages OWNER/REPOSITORY +cloudsmith metrics packages WORKSPACE/REPOSITORY ``` Example: diff --git a/src/content/migrating-to-cloudsmith/import-docker.mdx b/src/content/migrating-to-cloudsmith/import-docker.mdx index 025d94b8..b1a4a197 100644 --- a/src/content/migrating-to-cloudsmith/import-docker.mdx +++ b/src/content/migrating-to-cloudsmith/import-docker.mdx @@ -25,13 +25,13 @@ If you are an Ultra or Enterprise customer, you are entitled to a [custom domain Before you proceed: 1. Make sure that you are logged into the Cloudsmith repository you wish to push the images to. More information can be found in our [docs](/formats/docker-registry#publish-via-docker). -2. The format that we will be tagging the images is as follows: `docker.cloudsmith.io/v2/OWNER/REGISTRY/` -3. If you are using a custom domain, the URL will change to `/v2/OWNER/REGISTRY/` +2. The format that we will be tagging the images is as follows: `docker.cloudsmith.io/v2/WORKSPACE/REGISTRY/` +3. If you are using a custom domain, the URL will change to `/v2/WORKSPACE/REGISTRY/` Once all of the images are saved either to variable or file, they now need to be parsed into `docker tag` command to include the new name for the docker image. -1. Configure your script to insert the following: `docker tag old_image:version docker.cloudsmith.io/v2/OWNER/REGISTRY/image_name:version` +1. Configure your script to insert the following: `docker tag old_image:version docker.cloudsmith.io/v2/WORKSPACE/REGISTRY/image_name:version` 2. Then we can use `docker push :` diff --git a/src/content/migrating-to-cloudsmith/import-maven.mdx b/src/content/migrating-to-cloudsmith/import-maven.mdx index 246bece4..f81245e1 100644 --- a/src/content/migrating-to-cloudsmith/import-maven.mdx +++ b/src/content/migrating-to-cloudsmith/import-maven.mdx @@ -23,7 +23,7 @@ You will need to update the distribution and dependency values in the POM for ea The endpoint for the native Maven API is: ``` -https://maven.cloudsmith.io/OWNER/REPOSITORY/ +https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` ### Update your distributionManagement @@ -36,11 +36,11 @@ The distribution repositories define where to push your artifacts. In this case NAME - https://maven.cloudsmith.io/OWNER/REPOSITORY/ + https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ NAME - https://maven.cloudsmith.io/OWNER/REPOSITORY/ + https://maven.cloudsmith.io/WORKSPACE/REPOSITORY/ ``` diff --git a/src/content/migrating-to-cloudsmith/index.mdx b/src/content/migrating-to-cloudsmith/index.mdx index 1445159c..e33a2444 100644 --- a/src/content/migrating-to-cloudsmith/index.mdx +++ b/src/content/migrating-to-cloudsmith/index.mdx @@ -31,7 +31,7 @@ Importing your packages into Cloudsmith should be a stress-free process; you wil -- Create an [organization](/workspaces) and at least one [repository](/repositories) on your Cloudsmith account. +- Create a [workspace](/workspaces) and at least one [repository](/repositories) on your Cloudsmith account. - Install the [Cloudsmith CLI](/developer-tools/cli) and export your API token. - Do a bulk import of your packages per package format using the Cloudsmith CLI. For a build import from a folder, follow the instructions [here](/migrating-to-cloudsmith/import-files-from-a-folder). - We have specific instructions for certain package types : diff --git a/src/content/repositories/create-a-repository.mdx b/src/content/repositories/create-a-repository.mdx index 4eb55a8d..9b130d4d 100644 --- a/src/content/repositories/create-a-repository.mdx +++ b/src/content/repositories/create-a-repository.mdx @@ -18,7 +18,7 @@ In the following examples: |Identifier|Description| |:---|:---| -|OWNER|A Cloudsmith organization / workspace / namespace account name| +|WORKSPACE|A Cloudsmith workspace name| |REPO-NAME|A name for your repository. Maximum 50 characters.| |REPO-DESC|Description for your Repository| |REPO-TYPE|The type of repository - "Public" or "Private"| @@ -42,7 +42,7 @@ Create a `REPO-CONFIG.json` file with the following: You can create then a repository via the [Cloudsmith CLI](/developer-tools/cli) using the following command: ``` -cloudsmith repos create OWNER REPO-CONFIG.json +cloudsmith repos create WORKSPACE REPO-CONFIG.json ``` ### Example diff --git a/src/content/repositories/repository-settings.mdx b/src/content/repositories/repository-settings.mdx index af102410..2b97b246 100644 --- a/src/content/repositories/repository-settings.mdx +++ b/src/content/repositories/repository-settings.mdx @@ -65,7 +65,7 @@ Enables the indexing of files within a package. This will increase the synchroni Enables uploaded packages to overwrite/replace any others with the same attributes (e.g version) by default. This only applies if the user has the required privilege for republishing AND has the required privilege to delete packages that they do not own. **Contextual Authentication Realm** -If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the namespace and repository. This can be useful for tools such as SBT, where the authentication realm is used to distinguish and disambiguate credentials. +If checked, missing credentials for this repository where basic authentication is required shall present an enriched value in the 'WWW-Authenticate' header containing the workspace and repository. This can be useful for tools such as SBT, where the authentication realm is used to distinguish and disambiguate credentials. **Strict Npm Validation** Enables strict validation of npm packages to ensure that they match the specification. If you have packages that are old or slightly off-spec, you can disable this, but we can't guarantee that the packages will work with the npm CLI or other tooling. @@ -128,10 +128,10 @@ For example, a Repository Transfer will require the repository users to update t A repository transfer is initiated from within the repository settings of the repository you wish to transfer. The action to perform the transfer is listed under "Actions (Danger)". -When you initiate a repository transfer, the owner of the destination account/namespace will be notified that there is a transfer pending approval, and they then need to confirm that the transfer is accepted on the receiving repository. +When you initiate a repository transfer, the owner of the destination workspace will be notified that there is a transfer pending approval, and they then need to confirm that the transfer is accepted on the receiving repository. -Once the destination account/namespace has accepted the transfer, the repository will then be transferred to the destination account/namespace immediately. +Once the destination workspace has accepted the transfer, the repository will then be transferred to the destination workspace immediately. -The repository storage size will immediately count towards the storage limits for the destination account/namespace. Any Entitlement Tokens associated with the repository will also be transferred. +The repository storage size will immediately count towards the storage limits for the destination workspace. Any Entitlement Tokens associated with the repository will also be transferred. Collaborators for the repository will be reset and any existing clients of the repository will need to update their URIs to point to the new location. diff --git a/src/content/software-distribution/entitlement-tokens-via-the-cloudsmith-cli.mdx b/src/content/software-distribution/entitlement-tokens-via-the-cloudsmith-cli.mdx index e9f6a500..f0be8fe1 100644 --- a/src/content/software-distribution/entitlement-tokens-via-the-cloudsmith-cli.mdx +++ b/src/content/software-distribution/entitlement-tokens-via-the-cloudsmith-cli.mdx @@ -20,7 +20,7 @@ In the following examples: |Identifier|Description| |:---|:---| -|OWNER|Your Cloudsmith account name or organization name (namespace)| +|WORKSPACE|Your Cloudsmith workspace name| |REPOSITORY|Your Cloudsmith Repository name (also called "slug")| |IDENTIFIER|The unique identifier for an Entitlement Token| |TOKEN-NAME|The name of an Entitlement Token| @@ -31,7 +31,7 @@ In the following examples: To view all entitlement tokens for a repository, you use the `cloudsmith ents list` command: ```shell -cloudsmith ents list OWNER/REPOSITORY +cloudsmith ents list WORKSPACE/REPOSITORY ``` Example: @@ -56,7 +56,7 @@ cloudsmith ents list demo/examples-repo --show-tokens To create an entitlement token via the Cloudsmith CLI, you use the `cloudsmith ents` command: ```shell -cloudsmith ents create OWNER/REPOSITORY --name=TOKEN-NAME +cloudsmith ents create WORKSPACE/REPOSITORY --name=TOKEN-NAME ``` Example: @@ -86,14 +86,14 @@ If you wanted to create a batch of Entitlement Tokens at once, you could script ```shell bash for I in $(seq 1 10); do - cloudsmith ents create OWNER/REPOSITORY --name "Customer $I" + cloudsmith ents create WORKSPACE/REPOSITORY --name "Customer $I" done ``` You could then retrieve a list of all entitlements, plus their tokens with: ```shell -cloudsmith ents ls OWNER/REPOSITORY --show-tokens -F json | jq -r '.data[] | "\(.name) = \(.token)"' +cloudsmith ents ls WORKSPACE/REPOSITORY --show-tokens -F json | jq -r '.data[] | "\(.name) = \(.token)"' ``` ## Deleting Entitlement Tokens @@ -103,7 +103,7 @@ Before you can delete an entitlement token, you need to get the identifier for t To delete an entitlement token, you use the `cloudsmith ents delete` command: ```shell -cloudsmith ents delete OWNER/REPOSITORY/IDENTIFIER +cloudsmith ents delete WORKSPACE/REPOSITORY/IDENTIFIER ``` Example: @@ -125,7 +125,7 @@ Refreshing an entitlement token generates a new token, but retains any permissio You can refresh an entitlement token using the `cloudsmith ents refresh` command: ```shell -cloudsmith ents refresh OWNER/REPOSITORY/IDENTIFIER +cloudsmith ents refresh WORKSPACE/REPOSITORY/IDENTIFIER ``` Example: @@ -144,7 +144,7 @@ The example above shows the **TestToken** before and after using the `cloudsmith To modify a token name or the token itself, you use the `cloudsmith ents update` command: ```shell -cloudsmith ents update OWNER/REPOSITORY/IDENTIFIER --name=TOKEN-NAME --token=TOKEN-STRING +cloudsmith ents update WORKSPACE/REPOSITORY/IDENTIFIER --name=TOKEN-NAME --token=TOKEN-STRING ``` Examples: @@ -170,7 +170,7 @@ cloudsmith ents update demo/examples-repo/RJol6tyAIssl --token=abcedf123456 You can synchronise all of the entitlement tokens from one Repository to another Repository using the `cloudsmith ents sync` command: ```shell -cloudsmith ents sync OWNER/TARGET-REPO SOURCE-REPO +cloudsmith ents sync WORKSPACE/TARGET-REPO SOURCE-REPO ``` Example: @@ -198,7 +198,7 @@ If we now list the entitlement tokens in each of these repositories, we can see You can add usage restrictions to a token with the `cloudsmith ents restrict` command: ```shell -cloudsmith ents restrict OWNER/REPOSITORY/IDENTIFIER +cloudsmith ents restrict WORKSPACE/REPOSITORY/IDENTIFIER ``` The available flags that you can add to set restrictions are: @@ -239,7 +239,7 @@ You can check the bandwidth usage and token metrics for a repository with the `c You can check the total bandwidth usage for a repository with the `cloudsmith metrics tokens` command: ```shell -cloudsmith metrics tokens OWNER/REPOSITORY +cloudsmith metrics tokens WORKSPACE/REPOSITORY ``` Example: @@ -255,7 +255,7 @@ cloudsmith metrics tokens demo/examples-repo To check the bandwidth used by a specific token you add the `--tokens` parameter and the token identifier, or a comma-separated list of token identifiers, to the `cloudsmith metrics tokens` command: ```shell -cloudsmith metrics tokens OWNER/REPOSITORY --tokens=IDENTIFIER +cloudsmith metrics tokens WORKSPACE/REPOSITORY --tokens=IDENTIFIER ``` Example: diff --git a/src/content/software-distribution/entitlement-tokens.mdx b/src/content/software-distribution/entitlement-tokens.mdx index 6f449df6..60ab0198 100644 --- a/src/content/software-distribution/entitlement-tokens.mdx +++ b/src/content/software-distribution/entitlement-tokens.mdx @@ -25,7 +25,7 @@ You can create Standard Entitlement Tokens via the [Cloudsmith web app](/softwar User Entitlement Tokens are very similar to Standard Entitlement Tokens. They are created automatically when a user with permissions views a repository. They are associated with the user and the user's permissions. -Only the user themselves and administrators of the repository can see the user-based tokens. If the user is removed from the repository, teams or the organisation, then the token will no longer work for authentication. +Only the user themselves and administrators of the repository can see the user-based tokens. If the user is removed from the repository, teams or the workspace, then the token will no longer work for authentication. ## Multi-Repository Tokens diff --git a/src/content/software-distribution/eula.mdx b/src/content/software-distribution/eula.mdx index a92d0206..030d6bf3 100644 --- a/src/content/software-distribution/eula.mdx +++ b/src/content/software-distribution/eula.mdx @@ -42,7 +42,7 @@ Once the user has clicked the "Yes, I Agree + Download File" button, the downloa If a user wishes to accept the EULA without visiting the HTML page, `?accept_eula=1` can be suffixed onto the URL link for the raw package (which would otherwise display the EULA) to accept it. The number appended to the `accept_eula` parameter specifies the revision of the EULA that is being accepted: ```shell -curl https://dl.cloudsmith.io/TOKEN/OWNER/REPOSITORY/raw/files/FILENAME.zip?accept_eula=1 +curl https://dl.cloudsmith.io/TOKEN/WORKSPACE/REPOSITORY/raw/files/FILENAME.zip?accept_eula=1 ``` Where: @@ -50,7 +50,7 @@ Where: | Identifier | Description | | :--------- | :---------------------------------------------------------------------------------------- | | TOKEN | Your Cloudsmith Entitlement Token (see [Entitlements](/software-distribution/entitlement-tokens) for more details) | -| OWNER | Your Cloudsmith account name or organisation name (namespace) | +| WORKSPACE | Your Cloudsmith account name or workspace | | REPOSITORY | Your Cloudsmith Repository name (also called "slug") | | FILENAME | The name of the raw file | diff --git a/src/content/workspaces/custom-domains.mdx b/src/content/workspaces/custom-domains.mdx index b3986ea7..8877ec73 100644 --- a/src/content/workspaces/custom-domains.mdx +++ b/src/content/workspaces/custom-domains.mdx @@ -16,11 +16,11 @@ Custom domains are available with our Ultra and Enterprise plans. We strongly re ## Configuration Options -### Account-wide vs per-repository +### Workspace-level vs per-repository -An **account-wide** (also called organizational-level) custom domain works across all repositories in your Cloudsmith organization. When using an account-wide custom domain, the organization/account identifier (slug) will be removed from the URI for a repository. +A **workspace-level** custom domain works across all repositories in your Cloudsmith workspace. When using a workspace-level custom domain, the workspace identifier (slug) will be removed from the URI for a repository. -A **per-repository** custom domain works for a single repository in your Cloudsmith organization. When using a per-repository custom domain, the organization/account identifier (slug) and the repository identifier are both removed from the URI for the repository. +A **per-repository** custom domain works for a single repository in your Cloudsmith workspace. When using a per-repository custom domain, the workspace identifier (slug) and the repository identifier are both removed from the URI for the repository. ### Package support (Download vs Native API) @@ -63,14 +63,14 @@ If you'd like to configure this, please include it in your request. To configure a custom domain within Cloudsmith, we require you to provide: - A list of domains that you wish to have for each package type (refer to the table above). We recommend having only 1 domain for Download types, but this can be set up to include multiple if needed. -- For each domain, do you wish to have an account-wide or per-repository domain +- For each domain, do you wish to have a workspace-level or per-repository domain - Finally, would you like to have a top level redirect for your domain Example request: ``` Domain: `docker.mycompany.com` (Docker) -Account wide +Workspace-level No redirect ``` @@ -82,7 +82,7 @@ Once created within Cloudsmith, you will need to create two DNS CNAME entries fo ### Step 2 -- After confirming the domains you need, a member of the team will review and configure them within Cloudsmith. Once set, the DNS CNAME entries will be visible in your account (in the "Custom Domains" section of any repository) +- After confirming the domains you need, a member of the team will review and configure them within Cloudsmith. Once set, the DNS CNAME entries will be visible in your workspace (in the "Custom Domains" section of any repository) ### Step 3 diff --git a/src/content/workspaces/index.mdx b/src/content/workspaces/index.mdx index 57c2dc95..471cb6c6 100644 --- a/src/content/workspaces/index.mdx +++ b/src/content/workspaces/index.mdx @@ -5,7 +5,7 @@ import workspace_invite from './images/workspace_invite.png'; # Workspaces -Creating a Workspace in Cloudsmith allows you to configure access for teams, individuals and services that map to your company's organizational structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. +Creating a Workspace in Cloudsmith allows you to configure access for teams, individuals and services that map to your company's structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. 📘 We refer to your top-level account as **Workspaces**. Depending on the context, you might think of a Workspace as an **Organization**, a **Namespace**, or an **Owner**. These terms all refer to the same concept of a shared, top-level container for your work, but preferably **Workspace** will be used. diff --git a/src/content/workspaces/overview.mdx b/src/content/workspaces/overview.mdx index 90f376d6..db2462f9 100644 --- a/src/content/workspaces/overview.mdx +++ b/src/content/workspaces/overview.mdx @@ -33,8 +33,8 @@ Secondary navigation includes: Under the top bar, 4 cards summarize information about: - **Quarantined Packages**: The total number of packages that have been quarantined due to policy violations. - **Vulnerable Packages**: The total count of packages with known vulnerabilities. -- **Vulnerability Policy Violations**: The number of instances where packages do not comply with Workspace vulnerability policies. -- **License Policy Violations**: The number of packages that violate Workspace license policies. +- **Vulnerability Policy Violations**: The number of instances where packages do not comply with workspace vulnerability policies. +- **License Policy Violations**: The number of packages that violate workspace license policies. The **Workspace** card provides a snapshot of the entities in the workspace: - **Repositories** diff --git a/src/content/workspaces/privileges.mdx b/src/content/workspaces/privileges.mdx index eddac882..729b5694 100644 --- a/src/content/workspaces/privileges.mdx +++ b/src/content/workspaces/privileges.mdx @@ -12,20 +12,20 @@ Cloudsmith provides the next levels of user privileges, based on four roles: | Role | Permissions | | :--- | :--- | -| **Owners** | Can modify all workspace settings, manage other owners or delete the workspace. They are the "root" of the workspace, the only user that can manage all other users (including owners) or delete the workspace, and have full access over all artifacts within the Workspace repositories. | +| **Owners** | Can modify all workspace settings, manage other owners or delete the workspace. They are the "root" of the workspace, the only user that can manage all other users (including owners) or delete the workspace, and have full access over all artifacts within the workspace repositories. | | **Manager** | Can manage workspace settings and all non-owner users and teams. By default, they have no access to artifacts within the Workspace repositories, but it can be assigned to them (see [Default Object Privileges](#default-object-privileges)). | | **Member** | Can see other members and visible teams. They inherit privileges from workspace and team membership. | -| **Collaborator** | Can see other team members and inherit privileges from their teams, but they can't access Workspace or Repository settings. | +| **Collaborator** | Can see other team members and inherit privileges from their teams, but they can't access workspace or Repository settings. | 📘 Please note that this roles only apply to Account Member Accounts. For Service Accounts, only **Manager** and **Member** roles can be assigned. ### User Role Assignment -You can assign any of the roles described above when you [invite users](/accounts-and-teams/user-accounts) to a Workspace: +You can assign any of the roles described above when you [invite users](/accounts-and-teams/user-accounts) to a workspace: -Once assigned, roles can also be modified from the **Accounts** tab in your Workspace. +Once assigned, roles can also be modified from the **Accounts** tab in your workspace. ## Workspace User Team Roles diff --git a/src/content/workspaces/workspace-create.mdx b/src/content/workspaces/workspace-create.mdx index c61bb424..5f36c75f 100644 --- a/src/content/workspaces/workspace-create.mdx +++ b/src/content/workspaces/workspace-create.mdx @@ -4,7 +4,7 @@ import img_create_new_workspace from './images/workspaces/cfdd1f15b797468042b95b import img_create_workspace_button from './images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png' import img_create_a_new_workspace_form from './images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png' -Creating a _Workspace_ in Cloudsmith allows you to configure access for teams, individuals and machines that map to your company's organizational structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. This is a quick start guide to the powerful permission system within Cloudsmith and how you can get started. +Creating a _Workspace_ in Cloudsmith allows you to configure access for teams, individuals and machines that map to your company's structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. This is a quick start guide to the powerful permission system within Cloudsmith and how you can get started. ## Create a Workspace diff --git a/src/content/workspaces/workspace-settings.mdx b/src/content/workspaces/workspace-settings.mdx index 18deae68..94a74b5f 100644 --- a/src/content/workspaces/workspace-settings.mdx +++ b/src/content/workspaces/workspace-settings.mdx @@ -34,7 +34,7 @@ The Workspace profile settings are where you configure the Workspace name, avata -From within the Workspace profile settings, you have the ability to rename your organization's slug/identifier, and if you really need too, you can delete an organization (caution: this is a permanent action and cannot be undone). +From within the Workspace profile settings, you have the ability to rename your workspace's slug/identifier, and if you really need too, you can delete a workspace (caution: this is a permanent action and cannot be undone). If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that use the repositories as the URI would no longer be valid.
      - VSCode Plugin + VS Code Extension

      `qn=hLLvhGs1$QOr_Xo6{aST9m` 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 UXV{dsbz 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 literal 0 HcmV?d00001 diff --git a/src/content/formats/nuget-feed.mdx b/src/content/formats/nuget-feed.mdx index c2e757b6..45301f89 100644 --- a/src/content/formats/nuget-feed.mdx +++ b/src/content/formats/nuget-feed.mdx @@ -1,14 +1,20 @@ -import { Tag, Note } from '@/components'; +import { Tag, Note, BlockImage } from '@/components'; export const parentTitle = 'Supported Formats'; +import img_nuget from './images/nuget/setting-nuget-signing.png'; + # NuGet Feed -Cloudsmith provides public & private feeds for NuGet +Cloudsmith provides public & private feeds for NuGet. NuGet is an open-source package manager designed for the Microsoft development technologies. The NuGet repository support at Cloudsmith is compatible with [Chocolatey](https://chocolatey.org/), so if you're looking to manage packages on Windows, that's our recommended approach. + +Visit the [NuGet Symbol Server](/formats/nuget-symbol-server) documentation page for more information about NuGet debugging symbols (PDB files) and source files for packages published. + + For more information on NuGet, please see: - [NuGet](https://www.nuget.org): The official website for NuGet @@ -267,6 +273,40 @@ You can configure upstream NuGet feeds that you wish to use for packages that ar Please see our [Upstream Proxying](/repositories/upstreams) documentation for further instructions. +## Signing NuGet Packages + +Cloudsmith supports natively signing all NuGet packages using an X.509 certificate, enabling consumers to verify package repository signatures in native tooling or the NuGet CLI command, ensuring the integrity and authenticity of the packages. + +To get started, navigate to Repository Settings >> Miscellaneous, and check the box `"NuGet Native Signing Enabled?"`: + + + + +Packages uploaded prior to enabling NuGet Native Signing will not be signed or have a certificate in the index. Once this setting is enabled, you will need to resync existing NuGet packages to sign them. + + +### How it works + +When native NuGet signing is enabled for a Cloudsmith repository, a unique X.509 certificate is issued for that repository. + +When a NuGet package is uploaded or resynced to that repository, Cloudsmith will create a repository signature. The certificate will be available in the `RepositorySignatures` resource in the [service index](https://learn.microsoft.com/en-us/nuget/api/service-index). If a NuGet package contains an author signature, Cloudsmith will countersign the package. + +If the repository upstream NuGet repositories configured, Cloudsmith will index the RepositorySignature endpoint from the Nuget service index. The upstream repository's signing certificates will then be available for client-side verification as well. + +#### Client-side verification + +To enable client-side verification, the trusted certificates need to be added to the consumer's machine. Cloudsmith issues signing certificates using our own Certificate Authority. The Certificate Authority chain will need to be added to NuGet's trusted roots bundle. + +#### Linux and MacOS + +For Linux and MacOS, this is located at: `/usr/local/share/dotnet/sdk/\/trustedroots/codesignctl.pem` + +#### Windows + +For Windows, this is managed by the operating system. Please reference Microsoft's [Trusted Root Certification Authorities Certificate Store](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/trusted-root-certification-authorities-certificate-store) for more information. + +You can download Cloudsmith’s root Certificate Authority chain by going to the Key Management tab in your repository or by calling the [x509-rsa API endpoint](https://docs.cloudsmith.com/api/repos/x509/rsa/list). + ## Troubleshooting **Q. I'm unable to authenticate using HTTP Basic Authentication with a password or with an entitlement token. I'm using dotnet core SDK 2.2** diff --git a/src/content/formats/nuget-symbol-server.mdx b/src/content/formats/nuget-symbol-server.mdx index bd45cb93..3cff1b03 100644 --- a/src/content/formats/nuget-symbol-server.mdx +++ b/src/content/formats/nuget-symbol-server.mdx @@ -9,7 +9,7 @@ import nuget_pdb_file from './images/nuget-symbol-server/nuget_pdb_file.png'; # NuGet Symbol Server -Cloudsmith provides public & private symbol server support for NuGet +Cloudsmith provides public & private symbol server support for NuGet. The NuGet Symbol Server is a repository that stores and serves debugging symbols (PDB files) and source files for packages published. diff --git a/src/content/formats/oci-repository.mdx b/src/content/formats/oci-repository.mdx index a9c1ec9e..87bc93ac 100644 --- a/src/content/formats/oci-repository.mdx +++ b/src/content/formats/oci-repository.mdx @@ -27,16 +27,16 @@ For clarity, it's important to note some of the differences between a registry s Docker defines the following names (this is not the official wording): -- **Layer:** A blob (big object of bytes) containing software and configuration. -- **Image:** A collection of Docker layers plus metadata that represent an application. -- **Container:** A running instance of a Docker image in-memory. -- **Repository:** A collection of Docker images, separated by hashref and version tags. -- **Registry:** A collection of all Docker repositories, separated by namespaces. +- **Layer**: A blob (big object of bytes) containing software and configuration. +- **Image**: A collection of Docker layers plus metadata that represent an application. +- **Container**: A running instance of a Docker image in-memory. +- **Repository**: A collection of Docker images, separated by hashref and version tags. +- **Registry**: A collection of all Docker repositories, separated by namespaces. For comparison purposes, where terms differ from Cloudsmith: -- **Package:** A specific identifiable and versionable artifact. -- **Repository:** A collection of versionable artifacts, with multiple allowed per account. +- **Package**: A specific identifiable and versionable artifact. +- **Repository**: A collection of versionable artifacts, with multiple allowed per account. Therefore, based on the above, the following terms are equivalent: diff --git a/src/content/formats/swift-registry.mdx b/src/content/formats/swift-registry.mdx index c67cb559..37347e47 100644 --- a/src/content/formats/swift-registry.mdx +++ b/src/content/formats/swift-registry.mdx @@ -105,7 +105,7 @@ swift package-registry set --global "https://swift.cloudsmith.io/WORKSPACE/REPOS ``` -Then, [get your API_TOKEN](getting-started/API-TOKEN) and login to your private Cloudsmith Swift registry with: +Then, [get your API_TOKEN](/about-cloudsmith/api-key#getting-your-api-key) and login to your private Cloudsmith Swift registry with: ```shell swift package-registry login https://swift.cloudsmith.io/WORKSPACE/REPOSITORY/ --username USERNAME --password API_TOKEN diff --git a/src/content/homepage.json b/src/content/homepage.json index d5143d79..8617ede4 100644 --- a/src/content/homepage.json +++ b/src/content/homepage.json @@ -5,12 +5,12 @@ "buttons": [ { "label": "Documentation", - "href": "/getting-started", + "href": "/about-cloudsmith", "icon": "action/documentation" }, { "label": "Guides", - "href": "/guides", + "href": "/guides/getting-started", "icon": "utility/guide" }, { @@ -27,8 +27,8 @@ "cards": [ { "title": "Key concepts", - "description": "This guide will take you through the basic steps to help you get your Cloudsmith account up and running quickly.", - "href": "/getting-started/key-concepts/", + "description": "Learn the fundamentals of package management and discover how Cloudsmith's features provide a secure, visible, and collaborative solution.", + "href": "/about-cloudsmith/key-concepts/", "linkText": "Read the doc", "icon": "homepage/documentation", "size": "s", @@ -48,7 +48,7 @@ { "title": "Quickstart guide", "description": "This guide will take you through the basic steps to help you get your Cloudsmith account up and running quickly.", - "href": "/guides/cloudsmith-quickstart-guide/", + "href": "/guides/getting-started", "linkText": "Go to guide", "icon": "homepage/api", "size": "s", diff --git a/src/content/integrations/index.mdx b/src/content/integrations/index.mdx index 4f1dce9b..926ec4af 100644 --- a/src/content/integrations/index.mdx +++ b/src/content/integrations/index.mdx @@ -7,7 +7,7 @@ import IntegrationsGroupSnippet from '@/snippets/integrationsGroupSnippet.mdx'; At Cloudsmith, our goal is to make it as easy as possible to get your packages into our system from where you can manage and distribute them according to your need. -Cloudsmith comes with an awesome [CLI](/developer-tools/cli) (Command Line Interface) tool, a discoverable first-class [API](https://api.cloudsmith.io), and [bindings](getting-started/api-bindings) allowing you to publish and download your packages and containers using practically any leading DevOps tool/service. +Cloudsmith comes with an awesome [CLI](/developer-tools/cli) (Command Line Interface) tool, a discoverable first-class [API](https://api.cloudsmith.io), and [bindings](developer-tools/api-bindings) allowing you to publish and download your packages and containers using practically any leading DevOps tool/service. For CI/CD, we would usually recommend that you create a Service Account in your organization. See [Service Accounts](/accounts-and-teams/service-accounts) for more details. diff --git a/src/content/integrations/integrating-with-aikido.mdx b/src/content/integrations/integrating-with-aikido.mdx index 65ad791a..08c6a6d6 100644 --- a/src/content/integrations/integrating-with-aikido.mdx +++ b/src/content/integrations/integrating-with-aikido.mdx @@ -58,7 +58,7 @@ Aikido will now automatically scan your selected repositories for vulnerabilitie ## Best Practices and Recommendations -- **Enable Regular Scans:** Schedule regular scans within Aikido to ensure continuous monitoring of your container images. +- **Enable Regular Scans**: Schedule regular scans within Aikido to ensure continuous monitoring of your container images. - **Use Code Linking for Enhanced Deduplication**: By linking your images to the relevant code repositories, you can reduce duplicate findings and gain a more accurate vulnerability report. - **Review Permissions Carefully**: Ensure that API keys and other credentials have the appropriate access levels to allow for vulnerability scanning and reporting. diff --git a/src/content/integrations/integrating-with-aws-codebuild.mdx b/src/content/integrations/integrating-with-aws-codebuild.mdx index a2f3e456..158aa506 100644 --- a/src/content/integrations/integrating-with-aws-codebuild.mdx +++ b/src/content/integrations/integrating-with-aws-codebuild.mdx @@ -33,7 +33,7 @@ env: For further details on obtaining your Cloudsmith API-Key see: -- [Retrieve your Cloudsmith API Key](/getting-started/api-key) +- [Retrieve your Cloudsmith API Key](/about-cloudsmith/api-key) For further details on using AWS Secrets Manager with AWS CodeBuild see: diff --git a/src/content/integrations/integrating-with-azure-devops.mdx b/src/content/integrations/integrating-with-azure-devops.mdx index fb7ad68e..0a9efb52 100644 --- a/src/content/integrations/integrating-with-azure-devops.mdx +++ b/src/content/integrations/integrating-with-azure-devops.mdx @@ -17,7 +17,7 @@ Integrate Cloudsmith with Azure DevOps to automate the management of your artifa Before getting started, you need to have the following prerequisites: - An Azure DevOps account with pipeline permissions, which can be set up by following the steps in the [Azure DevOps documentation](https://learn.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops&tabs=microsoft-account). -- A Cloudsmith account, which can be set up by following the steps in the [Cloudsmith documentation](/getting-started). +- A Cloudsmith account, which can be set up by following the steps in the [Cloudsmith documentation](/about-cloudsmith). - Azure Entra (formerly Azure Active Directory) App registration capabilities if using OIDC. ## Integration Features @@ -34,29 +34,29 @@ Before getting started, you need to have the following prerequisites: To enable OIDC authentication, create an Microsoft Entra ID application that will allow Azure DevOps to interact securely with Cloudsmith. -1. **Navigate to Azure Entra Applications:** +1. **Navigate to Azure Entra Applications**: 1. Go to [Azure Portal](https://portal.azure.com/#home). 2. Select Azure Active Directory/Entra from the menu. 3. Choose App registrations and click New registration. -2. **Register the Application:** +2. **Register the Application**: 1. Enter a Name (e.g., “Cloudsmith Integration”). 2. For Supported account types, select Accounts in this organizational directory only. 3. Click Register. -3. **Capture Key Details:** +3. **Capture Key Details**: 1. After registration, note the Application (client) ID and Directory (tenant) ID. These will be needed in the pipeline configuration as `clientId` and `tenantId`, respectively. -4. **Create a Client Secret:** +4. **Create a Client Secret**: 1. In your registered app, navigate to Certificates & secrets. 2. Under Client secrets, click New client secret. 3. Add a Description (e.g., “Cloudsmith Secret”) and set an expiration. 4. Click Add and copy the Value. This will be your `clientSecret`. -5. **Configure API Permissions for the Azure Entra App Registration:** +5. **Configure API Permissions for the Azure Entra App Registration**: 1. In your Azure Entra App Registration, navigate to the API Permissions blade. 2. Click on Add a permission. 3. Under Microsoft APIs, select Microsoft Graph. 4. Choose Delegated permissions and select `User.Read`. 5. Click Add permissions. 6. After adding the permission, click on **Grant admin consent for the organization** to ensure this permission is granted for all users in the directory. -6. **Set App ID URI:** +6. **Set App ID URI**: 1. Navigate to Expose an API in the application’s settings. 2. Click Set to define an Application ID URI. You can use the default URI or set one on your own. 3. Copy the URI. @@ -158,7 +158,7 @@ pool: vmImage: 'ubuntu-latest' steps: - - task: CloudsmithCliSetupAndAuthenticate + - task: CloudsmithCliSetupAndAuthenticate@0 inputs: authMethod: 'oidc' # Use OIDC authentication clientId: '$(your-client-id)' # Client ID from your Azure Entra app registration @@ -184,18 +184,18 @@ With all the configurations in place, you’re now set up to use Cloudsmith CLI ## Best Practices - **Use OIDC**: Use OIDC authentication instead of API keys for enhanced security. -- **Use Secure Variables:** Ensure all sensitive information, like clientId, clientSecret, apiKey, and tenantId, are stored securely as secrets in Azure DevOps rather than hardcoded in your pipeline. -- **Use Latest CLI Versions:** Keep the Cloudsmith CLI updated to leverage the latest features and security patches. If specific versions are required, specify them explicitly in your configuration. +- **Use Secure Variables**: Ensure all sensitive information, like clientId, clientSecret, apiKey, and tenantId, are stored securely as secrets in Azure DevOps rather than hardcoded in your pipeline. +- **Use Latest CLI Versions**: Keep the Cloudsmith CLI updated to leverage the latest features and security patches. If specific versions are required, specify them explicitly in your configuration. ## Troubleshooting -- **Authentication Issues: ** +- **Authentication Issues**: - Ensure all authentication variables are correctly set and valid for either API Key or OIDC. - Verify that the correct service account is selected in Cloudsmith for the OIDC provider. -- **Permission Errors:** Verify that the ADO pipeline worker has appropriate permissions to download and install the CLI on the agent(in case of self-hosted agents). +- **Permission Errors**: Verify that the ADO pipeline worker has appropriate permissions to download and install the CLI on the agent(in case of self-hosted agents). - **OIDC authentication failures**: Ensure the Provider URL and aud claim are set correctly, and verify all Azure Entra app configurations. -- **PATH Issues with Cloudsmith CLI:** Ensure you’re using the same runner for all steps, as switching runners may lose CLI installation and configuration. -- **OIDC Authentication Failures (401/422 Errors):** +- **PATH Issues with Cloudsmith CLI**: Ensure you’re using the same runner for all steps, as switching runners may lose CLI installation and configuration. +- **OIDC Authentication Failures (401/422 Errors)**: - Ensure that the Provider URL is set to `\` in Cloudsmith and that it matches the configuration in Microsoft Entra ID. - Double-check the aud (audience) claim in the token claims section to ensure it matches the Application ID URI configured in Microsoft Entra ID. - If you encounter invalid_scope errors, make sure the appIdUri is correct. diff --git a/src/content/integrations/integrating-with-buildkite.mdx b/src/content/integrations/integrating-with-buildkite.mdx index 547697c2..d9b0aa89 100644 --- a/src/content/integrations/integrating-with-buildkite.mdx +++ b/src/content/integrations/integrating-with-buildkite.mdx @@ -23,7 +23,7 @@ Integrating Cloudsmith into your Buildkite pipeline is as simple as installing t For details on obtaining your Cloudsmith API-Key see: -- [Retrieve your Cloudsmith API Key](/getting-started/api-key) +- [Retrieve your Cloudsmith API Key](/about-cloudsmith/api-key) In order to use the Cloudsmith CLI within a Buildkite pipeline, you'll need to configure the environment on your build host(s) with your Cloudsmith API Key. Your Cloudsmith API Key should be considered as a secret and should not be committed into any source repositories or stored as a plain text variable in the Buildkite pipeline. diff --git a/src/content/integrations/integrating-with-codefresh.mdx b/src/content/integrations/integrating-with-codefresh.mdx index 509279a4..df8c84d4 100644 --- a/src/content/integrations/integrating-with-codefresh.mdx +++ b/src/content/integrations/integrating-with-codefresh.mdx @@ -15,17 +15,17 @@ Cloudsmith can seamlessly work with Codefresh to authenticate, consume, and publ - **Cloudsmith Account**: Ensure you have an active Cloudsmith account with a repository where your artifacts will be stored. - **Codefresh Account**: Ensure you have an active Codefresh account. -- **Kubernetes Cluster:** A Kubernetes cluster where you can deploy your applications. +- **Kubernetes Cluster**: A Kubernetes cluster where you can deploy your applications. ## Artifact management with Cloudsmith and Codefresh You can manage artifacts between Cloudsmith and Codefresh in several ways: -- **Uploading Packages:** +- **Uploading Packages**: - Use the Cloudsmith [Command-Line Interface](/developer-tools/cli). - Use native package management tools such as Docker, pip gem or cargo. - Use Codefresh's native Docker build and push steps for containerized workflows. -- **Deploying Artifacts:** Deploy Docker images and Helm charts stored in Cloudsmith repositories directly from Codefresh pipelines. +- **Deploying Artifacts**: Deploy Docker images and Helm charts stored in Cloudsmith repositories directly from Codefresh pipelines. ## Authentication Options diff --git a/src/content/integrations/integrating-with-dependabot.mdx b/src/content/integrations/integrating-with-dependabot.mdx index 2c70230c..8932ffcb 100644 --- a/src/content/integrations/integrating-with-dependabot.mdx +++ b/src/content/integrations/integrating-with-dependabot.mdx @@ -17,7 +17,7 @@ For this example, we will set it up for a Maven project, but the instructions wi ## Add Cloudsmith API Token to GitHub Secrets -1. Copy your API key from Cloudsmith using the instructions [here](/getting-started/api-key). +1. Copy your API key from Cloudsmith using the instructions [here](/about-cloudsmith/api-key). 2. Navigate to your repository on GitHub. 3. Select `Settings`. 4. Select `Secrets and variables`. diff --git a/src/content/integrations/integrating-with-docker-hub.mdx b/src/content/integrations/integrating-with-docker-hub.mdx index 40b30002..add7871e 100644 --- a/src/content/integrations/integrating-with-docker-hub.mdx +++ b/src/content/integrations/integrating-with-docker-hub.mdx @@ -8,7 +8,6 @@ import cloudsmithRepoAddCredentialsImage from './images/docker-hub/cloudsmithRep Retrieve Container Images from Docker Hub using Cloudsmith - [Docker Hub](https://hub.docker.com/) is the official registry (provided by [Docker, Inc.](https://www.docker.com/)) that allows you to find and share Docker-format container images. > It's the world's largest repository of container images with an array of content sources including container community developers, open source projects, and independent software vendors (ISV) building and distributing their code in containers. @@ -34,7 +33,7 @@ Here's how you can integrate the Docker Hub Registry into your Cloudsmith accoun -**Note:** For Docker Hub, Username & Password are required, not optional. +**Note**: For Docker Hub, Username & Password are required, not optional. 3. **Configure SSL Certificate Verification** Ensure SSL certificates are verified for added security, especially for public sources. diff --git a/src/content/integrations/integrating-with-github-actions.mdx b/src/content/integrations/integrating-with-github-actions.mdx index a5bd2a98..b57c4b81 100644 --- a/src/content/integrations/integrating-with-github-actions.mdx +++ b/src/content/integrations/integrating-with-github-actions.mdx @@ -39,7 +39,7 @@ The Cloudsmith GitHub Action allows you to use the Cloudsmith CLI to upload/push ## Adding your API Key to GitHub -Retrieve your [Cloudsmith API Key](/getting-started/api-key). +Retrieve your [Cloudsmith API Key](/about-cloudsmith/api-key). You will need to add a secret to your GitHub repository named `CLOUDSMITH_API_KEY`, with the value of your API-Key. Secrets are added through your GitHub repository settings, please see the [Creating and Storing Encrypted Secrets](https://help.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets) documentation on GitHub for further details. diff --git a/src/content/integrations/integrating-with-gitlab-cicd.mdx b/src/content/integrations/integrating-with-gitlab-cicd.mdx index 0f947ed1..0088bd28 100644 --- a/src/content/integrations/integrating-with-gitlab-cicd.mdx +++ b/src/content/integrations/integrating-with-gitlab-cicd.mdx @@ -16,7 +16,7 @@ In either case, you will need to add your Cloudsmith API Key to your GitLab CI/C ## Adding your API Key to GitLab -Retrieve your [Cloudsmith API Key](/getting-started/api-key). +Retrieve your [Cloudsmith API Key](/about-cloudsmith/api-key). ### API Key use with the Cloudsmith CLI diff --git a/src/content/integrations/integrating-with-harness.mdx b/src/content/integrations/integrating-with-harness.mdx index 3f5695e0..ee0d66b4 100644 --- a/src/content/integrations/integrating-with-harness.mdx +++ b/src/content/integrations/integrating-with-harness.mdx @@ -25,7 +25,7 @@ Harness includes a built-in Secrets Manager (Harness Vault) and also supports ma ### Cloudsmith API Key -You can obtain your [Cloudsmith API Key](/getting-started/api-key) from using the Cloudsmith CLI or via the [API Settings](https://app.cloudsmith.com/settings/api-keys) page when logged in to the Cloudsmith Website. +You can obtain your [Cloudsmith API Key](/about-cloudsmith/api-key) from using the Cloudsmith CLI or via the [API Settings](https://app.cloudsmith.com/settings/api-keys) page when logged in to the Cloudsmith Website. ### Cloudsmith Entitlement Token diff --git a/src/content/integrations/integrating-with-teamcity.mdx b/src/content/integrations/integrating-with-teamcity.mdx index c80edbe3..3c3b70a2 100644 --- a/src/content/integrations/integrating-with-teamcity.mdx +++ b/src/content/integrations/integrating-with-teamcity.mdx @@ -92,7 +92,7 @@ Go to Project Build Configuration in TeamCity and add the following build steps: 2. **Project settings VCS root**: Set as per your preference. 3. **Settings format**: Choose either from Kotlin or XML. 4. **Settings path in VCS**: .teamcity - 5. **Allow editing project settings via UI:** Enable. + 5. **Allow editing project settings via UI**: Enable. 6. **Store passwords and API tokens outside of VCS**: Enable. 3. Apply the changes to ensure your build configuration is tracked in the version control system (VCS). 4. Allow it to complete and then hit Commit current project settings button and TeamCity will commit the build configuration to your VCS. diff --git a/src/content/logs-and-observability/access-log-exports-to-s3.mdx b/src/content/logs-and-observability/access-log-exports-to-s3.mdx index 80e0da46..56a2eef3 100644 --- a/src/content/logs-and-observability/access-log-exports-to-s3.mdx +++ b/src/content/logs-and-observability/access-log-exports-to-s3.mdx @@ -153,46 +153,46 @@ It is possible to include or exclude the following: Some of the data provided includes: -- **Edge Location:** Nearest CDN Edge Node Location (e.g., "LHR61-C2") -- **EULA ID:** Unique identifier for EULA accepted (if any) -- **EULA Number:** Revision of EULA accepted (if any) -- **IP Address:** IP of the client -- **Host:** Hostname for the request (e.g. your download domain) -- **Method:** HTTP Method (e.g. "GET") -- **Geo/IP Fields:** E.g., "City," "Continent", e.g. enriched based on IP (we pay for this) -- **Package Identifier:** Unique identifier for downloaded package (if any) -- **Package Name:** Name for the downloaded package (if any) -- **Package Version:** Version for downloaded package (if any) -- **Protocol:** HTTP Protocol Used (e.g. "https/1.3") -- **Referer:** HTTP Referrer -- **Request ID:** Globally unique identifier for the request -- **Status:** HTTP Status Code (e.g. "200") -- **Time Taken:** Time taken to service request, in seconds -- **Token ID:** Unique identifier for entitlement token used (if any) -- **Token Name:** Name for entitlement token used (if any) -- **URI:** Uniform Resource Identifier, i.e. path, for the request -- **User Agent:** HTTP User Agent sent by the client -- **User ID:** Unique identifier for the client user (if any) -- **User Name:** Name for the client user (if any) +- **Edge Location**: Nearest CDN Edge Node Location (e.g., "LHR61-C2") +- **EULA ID**: Unique identifier for EULA accepted (if any) +- **EULA Number**: Revision of EULA accepted (if any) +- **IP Address**: IP of the client +- **Host**: Hostname for the request (e.g. your download domain) +- **Method**: HTTP Method (e.g. "GET") +- **Geo/IP Fields**: E.g., "City," "Continent", e.g. enriched based on IP (we pay for this) +- **Package Identifier**: Unique identifier for downloaded package (if any) +- **Package Name**: Name for the downloaded package (if any) +- **Package Version**: Version for downloaded package (if any) +- **Protocol**: HTTP Protocol Used (e.g. "https/1.3") +- **Referer**: HTTP Referrer +- **Request ID**: Globally unique identifier for the request +- **Status**: HTTP Status Code (e.g. "200") +- **Time Taken**: Time taken to service request, in seconds +- **Token ID**: Unique identifier for entitlement token used (if any) +- **Token Name**: Name for entitlement token used (if any) +- **URI**: Uniform Resource Identifier, i.e. path, for the request +- **User Agent**: HTTP User Agent sent by the client +- **User ID**: Unique identifier for the client user (if any) +- **User Name**: Name for the client user (if any) ## Audit Logs -- **Actor:** The user or system that performed the action. -- **Actor IP Address:** The IP address of the actor. -- **Actor Kind:** The type of actor, such as "user" or "system". -- **Actor Location:** The location of the actor, as determined by their IP address. -- **Actor Slug Perm:** A unique identifier for the actor, used for permissions. -- **Actor URL:** The URL of the actor's profile. -- **Context:** The context in which the event occurred, such as "web" or "api". -- **Event:** The type of event that occurred. -- **Event At:** The date and time the event occurred. -- **Object:** The object that was affected by the event. -- **Object Kind:** The type of object, such as "user" or "file". -- **Object Slug Perm:** A unique identifier for the object, used for permissions. -- **Target:** The target of the event, such as the user who was affected. -- **Target Kind:** The type of target, such as "user" or "file". -- **Target Slug Perm:** A unique identifier for the target, used for permissions. -- **UUID:** A unique identifier for the event. +- **Actor**: The user or system that performed the action. +- **Actor IP Address**: The IP address of the actor. +- **Actor Kind**: The type of actor, such as "user" or "system". +- **Actor Location**: The location of the actor, as determined by their IP address. +- **Actor Slug Perm**: A unique identifier for the actor, used for permissions. +- **Actor URL**: The URL of the actor's profile. +- **Context**: The context in which the event occurred, such as "web" or "api". +- **Event**: The type of event that occurred. +- **Event At**: The date and time the event occurred. +- **Object**: The object that was affected by the event. +- **Object Kind**: The type of object, such as "user" or "file". +- **Object Slug Perm**: A unique identifier for the object, used for permissions. +- **Target**: The target of the event, such as the user who was affected. +- **Target Kind**: The type of target, such as "user" or "file". +- **Target Slug Perm**: A unique identifier for the target, used for permissions. +- **UUID**: A unique identifier for the event. # Format Examples diff --git a/src/content/logs-and-observability/analyzing-s3-download-logs.mdx b/src/content/logs-and-observability/analyzing-s3-download-logs.mdx index 952aed35..abb93478 100644 --- a/src/content/logs-and-observability/analyzing-s3-download-logs.mdx +++ b/src/content/logs-and-observability/analyzing-s3-download-logs.mdx @@ -77,11 +77,11 @@ LIMIT 10 Here are some examples of the types of insights that can be gained from analyzing client logs: -**Most popular packages:** By counting the number of downloads for each package, you can identify the most popular packages and prioritize their development and marketing. +**Most popular packages**: By counting the number of downloads for each package, you can identify the most popular packages and prioritize their development and marketing. -**Download trends by country:** By filtering the data by country, you can identify where your product is most popular and adjust your marketing efforts accordingly. +**Download trends by country**: By filtering the data by country, you can identify where your product is most popular and adjust your marketing efforts accordingly. -**Usage by package versions:** By filtering the data by package version, you can identify which versions are most widely used and prioritize bug fixes and feature improvements. +**Usage by package versions**: By filtering the data by package version, you can identify which versions are most widely used and prioritize bug fixes and feature improvements. ## Aggregation and export diff --git a/src/content/logs-and-observability/client-statistics.mdx b/src/content/logs-and-observability/client-statistics.mdx deleted file mode 100644 index e5487df2..00000000 --- a/src/content/logs-and-observability/client-statistics.mdx +++ /dev/null @@ -1,145 +0,0 @@ -import { BlockImage, Note } from '@/components' -import overview from './images/client-statistics/client-statistics-overview.gif' -import overview_usage from './images/client-statistics/overview_usage.png' -import delivery_summary from './images/client-statistics/delivery_summary.png' -import package_downloads from './images/client-statistics/package_downloads.png' -import artifact_data from './images/client-statistics/artifact_data.png' -import img5b18a8e_metrics_packages from './images/client-statistics/5b18a8e-metrics-packages.png' - -# Client Statistics - -To access this feature, click on **Usage** on the top right corner of your Workspace/Repository Overview page. - - -📘 Due to the addition of new features, some of the legacy graphs displayed in this section will be deprecated: -- Package delivery -- Packages -- Container images -- Open source delivery - -All of the information displayed in those can be retrieved from the new graphs explained below. - - -The Client Statistics page shows usage information of all access to your Workspace or Repositories. It includes the next areas: -- Overview of usage -- Delivery Summary -- Package Downloads -- Artifact Data - - - -### Overview of usage - -The total amount accumulated during the Current Billing Cycle for: -- Package Delivery. -- Artifact Data. -- Packages. -- Container images. -- Open Source Delivery. - -When applicable, it also includes a comparative with the previous comparable cycle. - - - - -### Delivery Summary - -Displays a list of all of the package bandwidth for the selected time scope. The results can be grouped by package or repository, and display the trend compared with the previous comparable time scope. - - -All of the data available in this chart is sourced from the [Client Logs](./client-logs) feature. -Click on any of the entries in the list to view its own data in the Client Logs. - - - - -### Package Downloads - -The "Package downloads" chart presents data related to package consumption, enabling monitoring and analysis of download trends over defined periods. It displays metrics such as total downloads and bytes transferred, contributing to an understanding of artifact distribution and utilization. - - - - -The chart displays package download activity. Users can select various aggregate types, including "Bytes Downloaded Sum" for data transfer volume, or other metrics like download counts. -Basically, aggregate allows you to decide_how you want to quantify or summarize the package download activity_. Here you can find a detailed list of options available: -- **Bytes Downloaded Average** -- **Bytes Downloaded Sum** -- **Unique IP Address Count** -- **Request Count** -- **Time Taken** (Avg, Max, P50, P75, P90, P95, P99, Sum) - -#### **Time Period Selection:** - -- **Period:** Preconfigured options are available for historical data analysis (e.g., "Previous 12 months"). -- **Date Selection:** A configurable date range picker (e.g., "10 Jun 2024 - 10 Jun 2025") allows for specific data window definition. -- **Interval:** Data can be viewed by different time intervals, such as "Month" or other available options. In order words, this is the _bucket size for which the "Aggregate" calculation is performed_. - -#### **Filtering Options:** A set of filters allows for refinement of displayed data based on specific criteria - -- **Package format:** Filters by package type (e.g., npm, Maven, Docker). -- **Repository type:** Filters by repository classification (e.g., private, public). -- **Repository:** Filters data for a specific repository. -- **IP address:** Filters usage originating from specific IP addresses. -- **User type:** Differentiates between user classifications. -- **User:** Filters by individual user download activity. -- **Entitlement token:** Filters usage associated with specific access tokens. - -- Other filters available for **plot Configuration:** - - **Group by:** Allows data aggregation based on selected criteria (e.g., package format, repository). - - **Plot Type:** Options include "Interval" (data per period) and "Accumulated" (cumulative data). - - **Scale:** Selection between "Linear" and "Log" scales for data display. - -- **Reset Filters:** A "Reset Filters" function is available to restore default filter settings. - -### **Purpose** - -This chart serves to provide data for: - -* Monitoring bandwidth consumption, and impact on billing. -* Identifying package download frequencies. -* Tracking user-specific download activities, although Client Logs might be better suited for this goal. -* Evaluating the impact of different repositories or package formats. -* Reviewing access patterns via entitlement tokens. - -### Artifact Data - -Total amount of Artifact data stored within the Workspace/Repository. - - - -This will increase with time as more artifacts are stored within your Workspace. [Retention Rules](/artifact-management/retention-rules) can help to automate storage management. - - -## Statistics via the CLI - -You can query the number of active (has been downloaded) and inactive (has not been downloaded) packages via the Cloudsmith CLI with the `cloudsmith metrics packages` command: - -```shell -cloudsmith metrics packages OWNER/REPOSITORY -``` - -Example: - -```shell -cloudsmith metrics packages demo/examples-repo -``` - - - -You can also query package activity during a specific time range using the `--start` and `--finish` parameters and ISO 8601 formatted datetimes. - -Example: - -```shell -cloudsmith metrics packages demo/examples-repo --start=2019-01-01T00:00:00Z --finish=2019-12-31T00:00:00Z -``` - -### Specific Packages - -You can query one or more specific packages by adding the `--packages` flag with package identifiers as a comma-separated list (See [Package Identification](/artifact-management/identifying-a-package) for more information). - -Example: - -```shell -cloudsmith metrics packages demo/examples-repo --packages=ZGCV58VqT8Sl -``` \ No newline at end of file diff --git a/src/content/logs-and-observability/exports-to-azure.mdx b/src/content/logs-and-observability/exports-to-azure.mdx index 1d8dfaf7..7bcf489a 100644 --- a/src/content/logs-and-observability/exports-to-azure.mdx +++ b/src/content/logs-and-observability/exports-to-azure.mdx @@ -113,46 +113,46 @@ It is possible to include or exclude the following: Some of the data provided includes: -- **Edge Location:** Nearest CDN Edge Node Location (e.g., "LHR61-C2") -- **EULA ID:** Unique identifier for EULA accepted (if any) -- **EULA Number:** Revision of EULA accepted (if any) -- **IP Address:** IP of the client -- **Host:** Hostname for the request (e.g. your download domain) -- **Method:** HTTP Method (e.g. "GET") -- **Geo/IP Fields:** E.g., "City," "Continent", e.g. enriched based on IP (we pay for this) -- **Package Identifier:** Unique identifier for downloaded package (if any) -- **Package Name:** Name for the downloaded package (if any) -- **Package Version:** Version for downloaded package (if any) -- **Protocol:** HTTP Protocol Used (e.g. "https/1.3") -- **Referer:** HTTP Referrer -- **Request ID:** Globally unique identifier for the request -- **Status:** HTTP Status Code (e.g. "200") -- **Time Taken:** Time taken to service request, in seconds -- **Token ID:** Unique identifier for entitlement token used (if any) -- **Token Name:** Name for entitlement token used (if any) -- **URI:** Uniform Resource Identifier, i.e. path, for the request +- **Edge Location**: Nearest CDN Edge Node Location (e.g., "LHR61-C2") +- **EULA ID**: Unique identifier for EULA accepted (if any) +- **EULA Number**: Revision of EULA accepted (if any) +- **IP Address**: IP of the client +- **Host**: Hostname for the request (e.g. your download domain) +- **Method**: HTTP Method (e.g. "GET") +- **Geo/IP Fields**: E.g., "City," "Continent", e.g. enriched based on IP (we pay for this) +- **Package Identifier**: Unique identifier for downloaded package (if any) +- **Package Name**: Name for the downloaded package (if any) +- **Package Version**: Version for downloaded package (if any) +- **Protocol**: HTTP Protocol Used (e.g. "https/1.3") +- **Referer**: HTTP Referrer +- **Request ID**: Globally unique identifier for the request +- **Status**: HTTP Status Code (e.g. "200") +- **Time Taken**: Time taken to service request, in seconds +- **Token ID**: Unique identifier for entitlement token used (if any) +- **Token Name**: Name for entitlement token used (if any) +- **URI**: Uniform Resource Identifier, i.e. path, for the request - **User Agent: ** HTTP User Agent sent by the client - **User ID: ** Unique identifier for the client user (if any) -- **User Name:** Name for the client user (if any) +- **User Name**: Name for the client user (if any) ## Audit Logs -- **Actor:** The user or system that performed the action. -- **Actor IP Address:** The IP address of the actor. -- **Actor Kind:** The type of actor, such as "user" or "system". -- **Actor Location:** The location of the actor, as determined by their IP address. -- **Actor Slug Perm:** A unique identifier for the actor, used for permissions. -- **Actor URL:** The URL of the actor's profile. -- **Context:** The context in which the event occurred, such as "web" or "api". -- **Event:** The type of event that occurred. -- **Event At:** The date and time the event occurred. -- **Object:** The object that was affected by the event. -- **Object Kind:** The type of object, such as "user" or "file". -- **Object Slug Perm:** A unique identifier for the object, used for permissions. -- **Target:** The target of the event, such as the user who was affected. -- **Target Kind:** The type of target, such as "user" or "file". -- **Target Slug Perm:** A unique identifier for the target, used for permissions. -- **UUID:** A unique identifier for the event. +- **Actor**: The user or system that performed the action. +- **Actor IP Address**: The IP address of the actor. +- **Actor Kind**: The type of actor, such as "user" or "system". +- **Actor Location**: The location of the actor, as determined by their IP address. +- **Actor Slug Perm**: A unique identifier for the actor, used for permissions. +- **Actor URL**: The URL of the actor's profile. +- **Context**: The context in which the event occurred, such as "web" or "api". +- **Event**: The type of event that occurred. +- **Event At**: The date and time the event occurred. +- **Object**: The object that was affected by the event. +- **Object Kind**: The type of object, such as "user" or "file". +- **Object Slug Perm**: A unique identifier for the object, used for permissions. +- **Target**: The target of the event, such as the user who was affected. +- **Target Kind**: The type of target, such as "user" or "file". +- **Target Slug Perm**: A unique identifier for the target, used for permissions. +- **UUID**: A unique identifier for the event. # Format Examples diff --git a/src/content/logs-and-observability/images/client-statistics/255b8e3-client-statistics.png b/src/content/logs-and-observability/images/client-statistics/255b8e3-client-statistics.png deleted file mode 100644 index 88364acc1a13d585eb9a11aa9b6734066daa828f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231826 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�vz+4xh0q-+-stIdu5An!-vbwyYCk|**= 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 diff --git a/src/content/logs-and-observability/images/client-statistics/5b18a8e-metrics-packages.png b/src/content/logs-and-observability/images/usage/5b18a8e-metrics-packages.png similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/5b18a8e-metrics-packages.png rename to src/content/logs-and-observability/images/usage/5b18a8e-metrics-packages.png diff --git a/src/content/logs-and-observability/images/client-statistics/artifact_data.png b/src/content/logs-and-observability/images/usage/artifact_data.png similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/artifact_data.png rename to src/content/logs-and-observability/images/usage/artifact_data.png diff --git a/src/content/logs-and-observability/images/client-statistics/delivery_summary.png b/src/content/logs-and-observability/images/usage/delivery_summary.png similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/delivery_summary.png rename to src/content/logs-and-observability/images/usage/delivery_summary.png diff --git a/src/content/logs-and-observability/images/client-statistics/client-statistics-overview.gif b/src/content/logs-and-observability/images/usage/overview.gif similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/client-statistics-overview.gif rename to src/content/logs-and-observability/images/usage/overview.gif diff --git a/src/content/logs-and-observability/images/client-statistics/overview_usage.png b/src/content/logs-and-observability/images/usage/overview_usage.png similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/overview_usage.png rename to src/content/logs-and-observability/images/usage/overview_usage.png diff --git a/src/content/logs-and-observability/images/client-statistics/package_downloads.png b/src/content/logs-and-observability/images/usage/package_downloads.png similarity index 100% rename from src/content/logs-and-observability/images/client-statistics/package_downloads.png rename to src/content/logs-and-observability/images/usage/package_downloads.png diff --git a/src/content/logs-and-observability/index.mdx b/src/content/logs-and-observability/index.mdx index 0de8bb0b..b1d24a27 100644 --- a/src/content/logs-and-observability/index.mdx +++ b/src/content/logs-and-observability/index.mdx @@ -4,8 +4,8 @@ Cloudsmith's observability features provide the tools to understand how your art - [Client Logs](/logs-and-observability/client-logs): these logs are the foundational data layer, capturing the granular, real-time interactions with your repository. They record every request, download, and deployment, providing a detailed view from the perspective of the developer machines and CI/CD pipelines that consume your artifacts. They are invaluable to understand package consumption patterns. -- [Client Stats](/logs-and-observability/client-statistics): analyzes and aggregates client logs information to provide insights and a general overview of your usage data. - - [Audit Logs](/logs-and-observability/audit-logs): Provides a critical security and compliance perspective of your Workspace. This feature tracks significant events related to governance of your Workspaces and repositories, such as user authentications, permission changes, or modifications to repository settings. This creates an immutable record of "_who did what, and when_" which is fundamental for security forensics and meeting regulatory requirements. +- [Usage](/logs-and-observability/usage): analyzes and aggregates client logs information to provide insights and a general overview of your usage data. + Together, these logging mechanisms offer a comprehensive view of your artifact ecosystem. While this section also touches on advanced capabilities like exporting this data for long-term retention or specialized analysis, the core principle is to provide you with the foundational visibility needed to secure and manage your software supply chain effectively. \ No newline at end of file diff --git a/src/content/logs-and-observability/usage.mdx b/src/content/logs-and-observability/usage.mdx new file mode 100644 index 00000000..07ffa9da --- /dev/null +++ b/src/content/logs-and-observability/usage.mdx @@ -0,0 +1,134 @@ +import { BlockImage, Note } from '@/components' + +import overview from './images/usage/overview.gif' +import overview_usage from './images/usage/overview_usage.png' +import delivery_summary from './images/usage/delivery_summary.png' +import package_downloads from './images/usage/package_downloads.png' +import artifact_data from './images/usage/artifact_data.png' +import img5b18a8e_metrics_packages from './images/usage/5b18a8e-metrics-packages.png' + +# Usage + +To access this feature, click on **Usage** on the top right corner of your Workspace/Repository Overview page. + +The Client Statistics page shows usage information of all access to your Workspace or Repositories. It includes the next areas: +- Overview of usage +- Delivery Summary +- Package Delivery +- Artifact data + +{/* TODO update with new gif, legacy charts were recently removed */} + + +## Overview of usage + +The total amount accumulated during the **Current Billing Cycle** for: +- Package Delivery. +- Artifact data. +- Packages. +- Container images. +- Open Source delivery. + +When applicable, it also includes a comparative (percentage variation) with the previous comparable cycle. + + + +## Delivery Summary + +Displays a list of all of the package bandwidth for the selected time scope. The results can be grouped by package or repository, and display the trend compared with the previous comparable time scope. + +All of the data available in this chart is sourced from the [Client Logs](./client-logs) feature. +Click on any of the entries in the list to view its own data in the Client Logs. + + + +## Package Delivery + +The "Package Delivery" chart presents data related to package consumption, enabling monitoring and analysis of download trends over defined periods. It displays metrics such as total downloads and bytes transferred, contributing to an understanding of artifact distribution and utilization. + + + +This section can be displayed as a chart or a table. In both cases, it displays the same information: package download activity. Users can select various aggregate types, including "Bytes Downloaded Sum" for data transfer volume, or other metrics like download counts. +Basically, aggregate allows you to decide _how you want to quantify or summarize the package download activity_. Here you can find a detailed list of options available: +- **Bytes Downloaded Average**. +- **Bytes Downloaded Sum**. +- **Unique IP Address Count**. +- **Request Count**. +- **Time Taken** (Avg, Max, P50, P75, P90, P95, P99, Sum). + +### Time Period Selection + +- **Period**: Pre-configured options are available for historical data analysis (e.g., "Previous 12 months"). +- **Date Selection**: A configurable date range picker (e.g., "10 Jun 2024 - 10 Jun 2025") allows for specific data window definition. +- **Interval**: Data can be viewed by different time intervals, such as "Month" or other available options. In order words, this is the _bucket size for which the "Aggregate" calculation is performed_. + +### Filtering Options + +These filters allow you yo refine displayed data based on specific criteria: + +- **Package format**: Filters by package type (e.g., npm, Maven, Docker). +- **Repository type**: Filters by repository classification (e.g., private, public). +- **Repository**: Filters data for a specific repository. +- **IP address**: Filters usage originating from specific IP addresses. +- **User type**: Differentiates between user classifications. +- **User**: Filters by individual user download activity. +- **Entitlement token**: Filters usage associated with specific access tokens. + +- Other filters available for **plot Configuration**: + - **Group by**: Allows data aggregation based on selected criteria (e.g., package format, repository). + - **Plot Type**: Options include "Interval" (data per period) and "Accumulated" (cumulative data). + - **Scale**: Selection between "Linear" and "Log" scales for data display. + +- **Reset Filters**: A "Reset Filters" function is available to restore default filter settings. + +### **Purpose** + +This chart serves to provide data for: + +* Monitoring bandwidth consumption, and impact on billing. +* Identifying package download frequencies. +* Tracking user-specific download activities, although **Client Logs** might be better suited for this goal. +* Evaluating the impact of different repositories or package formats. +* Reviewing access patterns via entitlement tokens. + +## Artifact Data + +Total amount of Artifact data stored within the Workspace/Repository. + + + +This will increase with time as more artifacts are stored within your Workspace. [Retention Rules](/artifact-management/retention-rules) can help to automate storage management. + +## Usage via the CLI + +You can query the number of active (has been downloaded) and inactive (has not been downloaded) packages via the Cloudsmith CLI with the `cloudsmith metrics packages` command: + +```shell +cloudsmith metrics packages OWNER/REPOSITORY +``` + +Example: + +```shell +cloudsmith metrics packages demo/examples-repo +``` + + + +You can also query package activity during a specific time range using the `--start` and `--finish` parameters and ISO 8601 formatted datetimes. + +Example: + +```shell +cloudsmith metrics packages demo/examples-repo --start=2019-01-01T00:00:00Z --finish=2019-12-31T00:00:00Z +``` + +### Specific Packages + +You can query one or more specific packages by adding the `--packages` flag with package identifiers as a comma-separated list (See [Package Identification](/artifact-management/identifying-a-package) for more information). + +Example: + +```shell +cloudsmith metrics packages demo/examples-repo --packages=ZGCV58VqT8Sl +``` \ No newline at end of file diff --git a/src/content/menu.json b/src/content/menu.json index 7c6d999f..bc6eddbd 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -1,28 +1,28 @@ { "documentation": { "title": "Documentation", - "path": "/getting-started", + "path": "/about-cloudsmith", "icon": "action/documentation", "children": [ { - "title": "Getting Started", - "path": "/getting-started", + "title": "About Cloudsmith", + "path": "/about-cloudsmith", "children": [ { "title": "Key Concepts", - "path": "/getting-started/key-concepts" + "path": "/about-cloudsmith/key-concepts" }, { "title": "Common Use Cases", - "path": "/getting-started/common-use-cases" + "path": "/about-cloudsmith/common-use-cases" }, { "title": "Sign Up", - "path": "/getting-started/sign-up" + "path": "/about-cloudsmith/sign-up" }, { "title": "Log In", - "path": "/getting-started/sign-in" + "path": "/about-cloudsmith/sign-in" } ] }, @@ -284,14 +284,14 @@ "title": "Client Logs", "path": "/logs-and-observability/client-logs" }, - { - "title": "Client Statistics", - "path": "/logs-and-observability/client-statistics" - }, { "title": "Audit Logs", "path": "/logs-and-observability/audit-logs" }, + { + "title": "Usage", + "path": "/logs-and-observability/usage" + }, { "title": "Exporting Logs to Azure", "path": "/logs-and-observability/exports-to-azure" @@ -350,11 +350,11 @@ }, { "title": "Developer Tools", - "path": "/getting-started#developer-tools", + "path": "/about-cloudsmith#developer-tools", "children": [ { "title": "Generating an API Key", - "path": "/getting-started/api-key" + "path": "/about-cloudsmith/api-key" }, { "title": "Cloudsmith CLI", @@ -365,7 +365,11 @@ "path": "/api" }, { - "title": "API bindings", + "title": "VS Code Extension", + "path": "/developer-tools/vscode" + }, + { + "title": "API Bindings", "path": "/developer-tools/api-bindings" }, { @@ -440,7 +444,7 @@ }, "guides": { "title": "Guides", - "path": "/guides", + "path": "/guides/getting-started", "icon": "action/guide", "children": [ { @@ -448,12 +452,12 @@ "path": "/guides/getting-started" }, { - "title": "Test Guide", - "path": "/guides/test-guide" + "title": "Managing Permissions in Cloudsmith", + "path": "/guides/managing-permissions" }, - { - "title": "Getting started (legacy)", - "path": "/guides/setting-up-your-cloudsmith-account-and-workspace" + { + "title": "Dependency Firewall", + "path": "/guides/dependency-firewall" } ] }, @@ -469,6 +473,10 @@ "title": "Introduction", "path": "/api/introduction" }, + { + "title": "Rate Limits", + "path": "/api/rate-limits" + }, { "title": "Endpoints / Versioning", "path": "/does-not-exist" diff --git a/src/content/migrating-to-cloudsmith/import-debian.mdx b/src/content/migrating-to-cloudsmith/import-debian.mdx index 8e373808..aea1b770 100644 --- a/src/content/migrating-to-cloudsmith/import-debian.mdx +++ b/src/content/migrating-to-cloudsmith/import-debian.mdx @@ -2,7 +2,7 @@ Bulk import your Debian packages to Cloudsmith using a script. There are a few prerequisites that need to be set up prior to importing the packages in order for the script to work, and this can be changed to automate according to your setup. -**Setup:** +**Setup**: 1. [Install the Cloudsmith CLI ](/developer-tools/cli#installation) 2. Create a folder to place the script and content into @@ -11,7 +11,7 @@ Bulk import your Debian packages to Cloudsmith using a script. There are a few p For example, if your distro is `debian/any-version`, the folder should be named `debian.any-version`. In full context: `//`. -**Example folder structure:** +**Example folder structure**: ```text folder_structure deb_import/ diff --git a/src/content/migrating-to-cloudsmith/import-rpm.mdx b/src/content/migrating-to-cloudsmith/import-rpm.mdx index a8a3f78a..cf17edd0 100644 --- a/src/content/migrating-to-cloudsmith/import-rpm.mdx +++ b/src/content/migrating-to-cloudsmith/import-rpm.mdx @@ -2,7 +2,7 @@ Bulk import your RPM packages to Cloudsmith using a script. There are a few prerequisites that need to be set up prior to importing the packages in order for the script to work, and this can be changed to automate according to your setup. -**Setup:** +**Setup**: 1. [Install the Cloudsmith CLI ](/developer-tools/cli#installation) 2. Create a folder to place the script and content into @@ -11,7 +11,7 @@ Bulk import your RPM packages to Cloudsmith using a script. There are a few prer For example, if your distro is `el/any-version`, the folder should be named `el.any-version`. In full context: `//`. -**Example folder structure:** +**Example folder structure**: ```text rpm_import/ diff --git a/src/content/migrating-to-cloudsmith/index.mdx b/src/content/migrating-to-cloudsmith/index.mdx index c077815f..61d7f07f 100644 --- a/src/content/migrating-to-cloudsmith/index.mdx +++ b/src/content/migrating-to-cloudsmith/index.mdx @@ -31,7 +31,7 @@ Importing your packages into Cloudsmith should be a stress-free process; you wil -- Create an [organization](/getting-started/workspaces) and at least one [repository](/repositories) on your Cloudsmith account. +- Create an [organization](/workspaces) and at least one [repository](/repositories) on your Cloudsmith account. - Install the [Cloudsmith CLI](/developer-tools/cli) and export your API token. - Do a bulk import of your packages per package format using the Cloudsmith CLI. For a build import from a folder, follow the instructions [here](/migrating-to-cloudsmith/import-files-from-a-folder). - We have specific instructions for certain package types : diff --git a/src/content/open-source-hosting-policy.mdx b/src/content/open-source-hosting-policy.mdx new file mode 100644 index 00000000..40baf2de --- /dev/null +++ b/src/content/open-source-hosting-policy.mdx @@ -0,0 +1,97 @@ +import { Note, BlockImage, Tag } from '@/components' + +# Open-Source Hosting Policy + +Whether you use Cloudsmith for private or public distribution, free or paid, you always have the option of creating open-source repositories. An open-source repository works a little bit different from others, with the following differences: + +- Usage for open-source repositories is tracked _separately_ from your public/private repositories. +- You don't need to sign up for a specific open-source plan; you create an open-source repository. +- You get _at least_ 50GB of artifact data + 200GB of package delivery for _free_, across all open-source repositories. +- You get some features on the OSS repository that are normally reserved for paid _Pro_ plan users, such as geo/IP restrictions, access logs, and statistics. +- You can request more features, artifact data, or package delivery in return for sponsorship (more details later). + +Sounds good. Right? + +So how do you qualify for open-source repositories? Read on! + +## Rules + +To qualify for an open-source repository, we have a few simple rules for you: + +1. The primary project you're distributing for must be [free and open-source by definition](https://en.wikipedia.org/wiki/The_Open_Source_Definition). +2. You must have significant control and/or responsibility for the project; i.e. you're a maintainer. +3. The project must not be a minor fork; i.e. it is either the primary project or a **major** fork of one. +4. The main artifacts being served by the repository are for the project and not dependencies only. +5. You must adequately and fairly attribute Cloudsmith as the source of free hosting (see below). +6. A paid plan or significant sponsorship may be more appropriate if you're a commercial, for-profit entity. +7. A Cloudsmith org can contain multiple OSS projects, but a project must belong to one org only. + +If you need clarity on any of these, please feel free to [contact us](https://cloudsmith.com/company/contact-us) to ask. We'll be delighted to help! + +We currently pre-authorize open-source repositories and then check them later on. In other words, feel free to create the open-source repositories you need today, and as long as you're following the rules above, you'll be able to use them immediately. + +If your repository doesn't fit within our rules, this is usually something simple that can be fixed, such as using the wrong license. For more severe cases, we may have to suspend the open-source repository (e.g., doesn't have attribution, or is for a fork, etc.) + +In the case of suspension, we'll contact you and let you know the steps forward. We take suspension as seriously as we would do with any other user, paid or not. If this occurs, please know that we do so thoughtfully and have likely tried to contact you. + + +Although we require distributors to be the primary project, or a major fork of one, there's an exception to the rule: If you get the blessing from the primary maintainers to be the distributor, then you can bypass the rule. Typically though, we advise that forks either try to integrate their changes into the main project instead. + + +## Attribution + +Want to meet the attribution rule? That's easy! + +Just include the next snippet: + +``` +Static Badge + + +Package repository hosting is graciously provided by [Cloudsmith](https://cloudsmith.com). +Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that +enables your organization to create, store and share packages in any format, to any place, with total +confidence. +``` + +... to render a badge such as the following: + +Static Badge + +
      +
      + +Package repository hosting is graciously provided by [Cloudsmith](https://cloudsmith.com). Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that enables your organization to create, store and share packages in any format, to any place, with total confidence. + +*** + +Feel free to shake it up a little. As long as it contains a link back to [cloudsmith.com](https://cloudsmith.com) or [https://app.cloudsmith.io](https://app.cloudsmith.com), and addresses that Cloudsmith provided free hosting, you're good to go. + +You can see other examples of badges on [Shields](https://shields.io). + + +We'd also _really_ _REALLY_ appreciate it if you tweeted to your followers that you're now using Cloudsmith for package management, and tag us in. For example: **"AcmeCorp is now using @cloudsmith for open-source package management and distribution; check it out!"**. Replacing _AcmeCorp_ with your own company or project name. You could also add a link to your new repository; be proud and show it off. + + +## Commercial Entities + +Suppose you're a commercial, for-profit entity, especially one with significant funding or that's post-revenue. In that case, it may be more appropriate to proceed with a paid plan or sponsorship (as below). You can still avail yourself of the base open-source usage we offer for everyone, but beyond that, we'd recommend a commercial relationship where we can work together. If you're for-profit, it's in your best interest to keep vendors, such as ourselves, going; in return, we can provide the best possible solution and full commercial support. + +## Sponsorship + +If you need to vary the rules a little (e.g., a repository full of dependencies), need more ([Ultra or Enterprise plans](https://cloudsmith.com/pricing)) features, or need more GBs of artifact data / package delivery? We can do that for you with sponsorship that's a pinch more formal (but only a pinch). + +Our primary rule for sponsorship is that you're a "significant" open-source project. By significant, there isn't a hard and fast rule, but typically it means you have some level of notability. + +This typically means a community of users in the thousands or beyond, a website with several hundred thousand genuine hits per month, or over a thousand followers on sites like Twitter. + +If you feel like you fit, just [let us know, and we can work it out with you](https://cloudsmith.com/company/contact-us), a sponsorship usually takes the form of providing more significant linkbacks on your site, blog, and/or social media. Essentially it is helping us with marketing in return for free hosting and support. + +Nothing too demanding; just quid pro quo. Please help us; help you! + +Some examples of open-source projects we've sponsored formally: + +- [HoneyDB](https://honeydb.io) +- [Shields](http://shields.io) +- [Pony Language](https://www.ponylang.io) +- [CloudPosse](https://github.com/cloudposse/packages) \ No newline at end of file diff --git a/src/content/policy-management/api-key-policy.mdx b/src/content/policy-management/api-key-policy.mdx index a42bb02b..d7f86572 100644 --- a/src/content/policy-management/api-key-policy.mdx +++ b/src/content/policy-management/api-key-policy.mdx @@ -39,7 +39,7 @@ Once the policy is enabled, permission will be revoked for any API key older tha If a user attempts to utilize an API key that violates the policy, they will receive a "permission denied" error message -To regain access, the user should update their [API Key](/getting-started/api-key) by clicking "Refresh" within the API settings page. +To regain access, the user should update their [API Key](/about-cloudsmith/api-key) by clicking "Refresh" within the API settings page. diff --git a/src/content/policy-management/geoip-rules.mdx b/src/content/policy-management/geoip-rules.mdx index f30b27a4..99bd1405 100644 --- a/src/content/policy-management/geoip-rules.mdx +++ b/src/content/policy-management/geoip-rules.mdx @@ -18,7 +18,7 @@ You could, for example, use these restrictions to only allow access from your or - Geo-based restrictions are also applied before IP-based restrictions. - The first rule matching the incoming traffic is applied. -To enable IP restrictions for uploads please see [API-Key](/getting-started/api-key) +To enable IP restrictions for uploads please see [API-Key](/about-cloudsmith/api-key) diff --git a/src/content/policy-management/license-policy.mdx b/src/content/policy-management/license-policy.mdx index 5fdb0961..0d365f29 100644 --- a/src/content/policy-management/license-policy.mdx +++ b/src/content/policy-management/license-policy.mdx @@ -30,8 +30,8 @@ Cloudsmith will automatically match licenses for the following package formats: |[Conan](/formats/conan-repository)| ✅ | |[Conda](/formats/conda-repository)| ✅ | |[CRAN](/formats/cran-repository)| ✅ | -|[Dart](/formats/dart-repository)| ❌ | -|[Debian](/formats/debian-repository)| ✅ | +|[Dart](/formats/dart-repository)| ✅ | +|[Debian](/formats/debian-repository)| ❌ | |[Docker](/formats/docker-registry)| ❌ | |[Go](/formats/go-registry)| ✅ | |[Helm](/formats/helm-chart-repository)| ✅ | diff --git a/src/content/policy-management/security-policy.mdx b/src/content/policy-management/security-policy.mdx index 716cd500..ae73b19f 100644 --- a/src/content/policy-management/security-policy.mdx +++ b/src/content/policy-management/security-policy.mdx @@ -51,24 +51,24 @@ Rolling windows are used to backup critical information such as relational datab When you sign up for a paid account on Cloudsmith, we do not store your critical card information on our servers (such as the full card number or the CVC). Your credit card information is processed securely by our payment processor, [Stripe](https://stripe.com). -## Responsible Disclosure Policy (Bug Bounty Programme) +## Responsible Disclosure Policy (Bug Bounty Program) -See the [Bug Bounty Programme](https://help.cloudsmith.io/docs/bug-bounty-programme) for details on bug bounties. +See the [Bug Bounty Program](/bug-bounty-program) for details on bug bounties. ## Incident Response For security incidents that occur, Cloudsmith follows a defined incident response. The following is a summarised version of the official incident response procedures utilized by Cloudsmith: -1. **Investigation:** The team either receives a report of any unusual or suspicious activity or discovers it via active monitoring and investigates whether it is an issue and, if so, what level of severity and impact. If an issue is confirmed, has the potential to impact customers, and/or involves an infrastructure breach, the response will proceed to **Escalation**. Otherwise, a ticket is raised and handled outside of incident response. +1. **Investigation**: The team either receives a report of any unusual or suspicious activity or discovers it via active monitoring and investigates whether it is an issue and, if so, what level of severity and impact. If an issue is confirmed, has the potential to impact customers, and/or involves an infrastructure breach, the response will proceed to **Escalation**. Otherwise, a ticket is raised and handled outside of incident response. -2. **Escalation:** The issue is escalated from the team's investigatory member to the other team members responsible for security, including the security lead. The team self-mobilizes into two sub-teams; one for mitigation and another for remediation; both reporting to the security lead, who assumes the role of the incident commander. The response moves to a simultaneous phase of **Mitigation**, **Notification**, and **Remediation**. +2. **Escalation**: The issue is escalated from the team's investigatory member to the other team members responsible for security, including the security lead. The team self-mobilizes into two sub-teams; one for mitigation and another for remediation; both reporting to the security lead, who assumes the role of the incident commander. The response moves to a simultaneous phase of **Mitigation**, **Notification**, and **Remediation**. - 1. **Mitigation:** The mitigation team moves to prevent further damage (e.g., shutting down services, blocking at the WAF, etc.) and monitors the system to assess impact. If possible, the issue is stopped at the source and minimized. The incident commander is informed of progress every 15 minutes. The analysis from the mitigation team is used for the root cause analysis and to determine which specific customers may be impacted. + 1. **Mitigation**: The mitigation team moves to prevent further damage (e.g., shutting down services, blocking at the WAF, etc.) and monitors the system to assess impact. If possible, the issue is stopped at the source and minimized. The incident commander is informed of progress every 15 minutes. The analysis from the mitigation team is used for the root cause analysis and to determine which specific customers may be impacted. - 2. **Notification:** The incident commander works with a comms officer to notify affected parties if known at this stage. If the mitigation involves stopping services, which impacts users, then the notification may be site-wide. Suppose the urgency is high, and it is known that customers are directly affected. In that case, the incident commander may choose to communicate with the customers immediately at this stage, with a known level of detail. Otherwise, notification is left until **Closure**. + 2. **Notification**: The incident commander works with a comms officer to notify affected parties if known at this stage. If the mitigation involves stopping services, which impacts users, then the notification may be site-wide. Suppose the urgency is high, and it is known that customers are directly affected. In that case, the incident commander may choose to communicate with the customers immediately at this stage, with a known level of detail. Otherwise, notification is left until **Closure**. - 3. **Remediation:** The remediation team investigates the root cause for the security incident (e.g., an exploit allowing remote-code execution) and works on a permanent fix. The incident commander is informed of progress every 15 minutes, including an estimated time-to-fix. The goal is to remediate the issue before any further mitigation is necessary. When complete, the response proceeds to **Closure**. + 3. **Remediation**: The remediation team investigates the root cause for the security incident (e.g., an exploit allowing remote-code execution) and works on a permanent fix. The incident commander is informed of progress every 15 minutes, including an estimated time-to-fix. The goal is to remediate the issue before any further mitigation is necessary. When complete, the response proceeds to **Closure**. -3. **Closure:** Once the incident is confirmed to be mitigated and remediated, the final stages of the incident response are to measure the actual level of impact and who was impacted by it. The sub-teams rejoin as a whole team for this stage. The incident commander works with the comms officer to finalize notifications for impacted users, plus details of what occurred and why. The final step, conducted at a near-term future date, is to consider how it could be prevented via the **Retrospective**, but at this stage, the actual incident response is closed. +3. **Closure**: Once the incident is confirmed to be mitigated and remediated, the final stages of the incident response are to measure the actual level of impact and who was impacted by it. The sub-teams rejoin as a whole team for this stage. The incident commander works with the comms officer to finalize notifications for impacted users, plus details of what occurred and why. The final step, conducted at a near-term future date, is to consider how it could be prevented via the **Retrospective**, but at this stage, the actual incident response is closed. -4. **Retrospective:** At a later point, the incident is analyzed again, including the timeline from the exploit to the RCA and the fix. The team discusses and agrees on actions (if necessary), why it had occurred, what went well (or not well), and how it could be improved next time. Depending on the severity and the impact of the incident, this may also be published as a follow-up to the previous notifications. +4. **Retrospective**: At a later point, the incident is analyzed again, including the timeline from the exploit to the RCA and the fix. The team discusses and agrees on actions (if necessary), why it had occurred, what went well (or not well), and how it could be improved next time. Depending on the severity and the impact of the incident, this may also be published as a follow-up to the previous notifications. diff --git a/src/content/policy-management/vulnerability-policy.mdx b/src/content/policy-management/vulnerability-policy.mdx index bbbaff4d..84f5b04f 100644 --- a/src/content/policy-management/vulnerability-policy.mdx +++ b/src/content/policy-management/vulnerability-policy.mdx @@ -43,7 +43,6 @@ Vulnerability scanning and vulnerability policies are supported for the followin |[Maven](/formats/maven-repository)|✅| |[npm](/formats/npm-registry)|✅| |[NuGet](/formats/nuget-feed)|✅| -|[P2](/formats/p2-repository)|❌| |[Python](/formats/python-repository)|✅| |[RPM](/formats/redhat-repository)|❌| |[Ruby](/formats/ruby-repository)|✅| diff --git a/src/content/repositories/index.mdx b/src/content/repositories/index.mdx index 2acb0f1c..79669eec 100644 --- a/src/content/repositories/index.mdx +++ b/src/content/repositories/index.mdx @@ -25,7 +25,7 @@ Use the top menu items to access the controls available: |[Package Groups](/artifact-management/package-groups)|A list of grouped packages by name (ignoring version/distro info)| |[Audit Logs](/logs-and-observability/audit-logs) | A log of repository events| |[Client Logs](/logs-and-observability/client-logs)| View access logs for this repository| -|[Client Statistics](/logs-and-observability/client-statistics)|See all the statistics gathered about your packages - downloads, bandwidth usage, etc.| +|[Client Statistics](/logs-and-observability/usage)|See all the statistics gathered about your packages - downloads, bandwidth usage, etc.| |[License Compliance](/policy-management/license-compliance)|View and edit all licenses for packages in the repository| |[Security Scanning](/policy-management/vulnerability-policy)|Security Scanning for artifacts and Docker images| |[Signing Keys](/supply-chain-security/signing-keys)|GPG and RSA signing keys| diff --git a/src/content/repositories/upstreams/index.mdx b/src/content/repositories/upstreams/index.mdx index e094b4a9..ff5c6f81 100644 --- a/src/content/repositories/upstreams/index.mdx +++ b/src/content/repositories/upstreams/index.mdx @@ -57,24 +57,24 @@ A good approach when determining what priority to apply to upstreams is to ensur |Format|

      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

    p&h<@nHF%z4d*1s`vV-Oe57wVwH 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 -4k+%Yw+ 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�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 + +## Installation + +You can install the extension from the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Cloudsmith.cloudsmith-vsc) or by using the `.vsix` file from [a release](https://github.com/cloudsmith-io/cloudsmith-vscode-extension/releases). We recommend installing via the Marketplace for ease of use and automatic updates. + +### From the VS Code Marketplace (Recommended) + +1. Open the **Extensions** view in VS Code (or press `Ctrl+Shift+X`). +2. Search for `cloudsmith` in the search bar. +3. Select the Cloudsmith extension published by Cloudsmith and click **Install**. + +### From a .vsix File + +You can also install the extension manually from a `.vsix` file, which is available on the [GitHub repository releases page](https://github.com/cloudsmith-io/cloudsmith-vscode-extension/releases). + +1. In the **Extensions** view, click the **Views and More Actions...** (`...`) button. +2. Select **Install from VSIX...** and choose the downloaded `cloudsmith-x.x.x.vsix` file. + +Alternatively, open your terminal and run: + +```bash +code --install-extension cloudsmith-x.x.x.vsix +``` + +## Configuration + +### Authentication + +After installation, connect the extension to your Cloudsmith account using an [API Key](/about-cloudsmith/api-key) or a [Service Account Token](/accounts-and-teams/service-accounts) (Entitlement tokens are not supported). + +1. Navigate to the Cloudsmith view in the VS Code Activity Bar. +2. Click the **key icon** located in the view's menu. +3. Enter your Personal API Key or Service Account Token into the input box that appears and press `Enter`. +4. Click the **connect/refresh icon** to load your workspaces and repositories. + + + +### Settings + +You can configure the extension's behavior by navigating to **File > Preferences > Settings** and searching for `Cloudsmith`: + +- **Show Packages by Group**: If enabled, the explorer will display packages as [Package Groups](https://help.cloudsmith.io/docs/package-groups). By default, individual packages are shown. +- **Inspect Output Target**: Choose where the `Inspect Package` command sends its output: `Output` window or a `New Document`. +- **Maximum Packages Per Repository**: Set the maximum number of packages to display per repository. The value can be between 1 and 30. The default (and maximum) is 30. +- **Use Legacy Web App**: If enabled, URLs opened via the `Open Package in Cloudsmith` command will point to the legacy Cloudsmith web app ([https://cloudsmith.io/](https://cloudsmith.io/)). + +## Using the Cloudsmith VSCode plugin + +The extension adds a **Cloudsmith Explorer** view to VS Code. This view provides a tree-based navigator to explore your Cloudsmith assets, including workspaces, repositories, and packages. + +Selecting a package or package group in the explorer will display a selection of its most important details directly in the tree view. You can right-click on any detail (e.g., Name, Version) to copy its value to the clipboard. + +This is a subset of the full data available via the Cloudsmith API. For the complete dataset, use the `Inspect Package` command. + +| Field | Description | +| :-------------------- | :----------------------------------------------------------------------------------- | +| **Status** | Indicates the current state of the package (e.g., Completed, Failed, Deleted, deprecated, unlisted). | +| **Name** | The human-readable title or name of the package. | +| **Slug** | A URL-friendly version of the package name, typically lowercase with hyphens for spaces. | +| **Slug Perm** | A permanent, unique slug that does not change, even if the package name is updated. | +| **Number of downloads** | The total count of how many times the package has been downloaded. | +| **Version** | The specific release version number, often following semantic versioning (e.g., `1.2.3`). | +| **Tags** | Keywords or labels used to categorize the package and make it discoverable. | +| **Uploaded at date/time**| The timestamp indicating the exact date and time the package version was published. | + + +when the **Package Groups** option is enabled, the next fields are available for each of the package groups: **Count of packages in group**, **Size**, **Number of downloads**, and **Last pushed date/time**. + + +Right-clicking on a package or package group in the explorer opens a context menu with several commands: +- **Inspect Package**: this command retrieves the raw JSON data for the selected package or group. By default, the output is sent to the VS Code `Output` window. You can change this behavior in the extension settings to send the output to a new, untitled text document instead. +- **Open Package in Cloudsmith**: this command opens the selected package's page directly in the Cloudsmith web application using your default browser. diff --git a/src/icons/icon-registry.tsx b/src/icons/icon-registry.tsx index 52c0382b..ec4691b1 100644 --- a/src/icons/icon-registry.tsx +++ b/src/icons/icon-registry.tsx @@ -82,6 +82,7 @@ import { IntegrationTeamCityIcon } from './svgs/integration/TeamCity'; import { IntegrationTerraformIcon } from './svgs/integration/Terraform'; import { IntegrationTravisCIIcon } from './svgs/integration/TravisCI'; import { IntegrationZapierIcon } from './svgs/integration/Zapier'; +import { IntegrationVSCodeIcon } from './svgs/integration/VSCode'; export const iconRegistry = createIconRegistry({ menu: MenuIcon, @@ -180,4 +181,5 @@ export const iconRegistry = createIconRegistry({ 'integration/terraform': IntegrationTerraformIcon, 'integration/travis': IntegrationTravisCIIcon, 'integration/zapier': IntegrationZapierIcon, + 'integration/vscode': IntegrationVSCodeIcon, }); diff --git a/src/icons/svgs/integration/VSCode.tsx b/src/icons/svgs/integration/VSCode.tsx new file mode 100644 index 00000000..c3c51090 --- /dev/null +++ b/src/icons/svgs/integration/VSCode.tsx @@ -0,0 +1,30 @@ +import { createIcon, SpecificIconProps } from '../../util/create-icon'; + +export const IntegrationVSCodeIcon = createIcon( + 'integration/vscode', + ({ width = 100, height = 100, ...props }) => ({ + ...props, + width, + height, + viewBox: '0 0 100 100', + fill: 'none', + children: ( + <> + + + + + + + + + + + + + + + + ), + }), +); diff --git a/src/snippets/integrationsGroupSnippet.mdx b/src/snippets/integrationsGroupSnippet.mdx index 8202d025..ef5bd85c 100644 --- a/src/snippets/integrationsGroupSnippet.mdx +++ b/src/snippets/integrationsGroupSnippet.mdx @@ -413,6 +413,27 @@ Cloudsmith supports the following integrations: +## IDs + +

    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 dTl19{>`u0uZPqb#F*w*uK~`0!T + + + --- @@ -31,31 +39,54 @@ Learn more about [**Supported formats**](/formats). -## Developers - -Cloudsmith is built by developers, for developers. We understand the workflows and processes that developers use and need, and we try to ensure that what we build brings value to our customers, and generally makes their lives easier. - -We believe in what we have built. We love to talk to other developers about what we have created, how it can fit into their development processes, and how we can help. If you have questions or would like to chat, please just [contact us](https://cloudsmith.com/company/contact-us). +## Developer tools -### REST API +Cloudsmith is built by developers, for developers. We understand the workflows and processes that developers use and need, and we try to ensure that what we build brings value to our customers, and generally makes their lives easier. -Retrieve information, upload packages, or take actions programmatically through our API. -- [REST API Reference](/api) -- [API Bindings](/getting-started/api-bindings) +We maintain a set of tools to programmatically manage your workspaces, repositories, and artifacts. Along with other elements within Cloudsmith that helps you manage your organization: like teams, user accounts, service accounts, or tokens to conveniently automate configuration through scripts or any of the existing tooling you already use. -### Cloudsmith CLI - -The Cloudsmith Command Line Interface (CLI) allows users, machines and other services to access and integrate smoothly with Cloudsmith without requiring explicit plugins or tools. - -Learn how to [install the CLI](/getting-started/cli). - -### Webhooks - -Stay informed by receiving notifications when particular actions take place within Cloudsmith. -- [Webhooks Guide](/logs-and-observability/webhooks) -- [Origin IP Addresses]() \ No newline at end of file + + + + + + +

    +We believe in what we have built. We love to talk to other developers about what we have created, how it can fit into their development processes, and how we can help. If you have questions or would like to chat, please just [contact us](https://cloudsmith.com/company/contact-us). diff --git a/src/content/getting-started/key-concepts.mdx b/src/content/getting-started/key-concepts.mdx index 6ae549a2..61c4cb10 100644 --- a/src/content/getting-started/key-concepts.mdx +++ b/src/content/getting-started/key-concepts.mdx @@ -8,11 +8,11 @@ title: Key Concepts ## Package Management -Package management is the process of handling the many and varied dependencies and artifacts for your servers, applications, and developers. These are the archives, binaries, libraries, tools, scripts, modules, snippets, metadata, assets and even datasets that power your processes, products, and solutions. +Package management is the process of handling the many and varied dependencies and artifacts for your servers, applications, and developers. These are the archives, binaries, libraries, tools, scripts, modules, snippets, metadata, assets, and even datasets that power your processes, products, and solutions. A binary package manager centralises these dependencies and artifacts, acting as a glue layer within the DevOps toolchain to provide easier interaction between development, operations, build, and release. -Package management reduces the friction between different functions within DevOps, and the process of delivering from developer to customer is accelerated. +Package management reduces the friction between different functions within DevOps, and accelerates the process of delivering from developer to customer. ## What is Cloudsmith? diff --git a/src/content/getting-started/profile.mdx b/src/content/getting-started/profile.mdx deleted file mode 100644 index 13174472..00000000 --- a/src/content/getting-started/profile.mdx +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Your Cloudsmith profile" ---- - -import { BlockImage } from '@/components' -import img_add_email from './images/email-management/0131309709c31931626ca531bde71ddbeafcffc25389994f1418b8a9b8134d98-add-email.png' - -# Your Cloudsmith profile - -# Email Management - -It's often the case that one ends up juggling multiple email accounts and using them simultaneously to access different services. This is often the case if you belong to multiple workspaces, and each provides you with an email address that is specific to it. To help manage and facilitate this, you can now add multiple email addresses to your Cloudsmith User Account. Once an email is verified, you can log in with it. You can also specify your primary email address, which we'll email when contacting you. - - - -In addition to that, we're proud to say that we're fully compliant with the latest privacy laws in the EU (the GDPR, which you've likely heard about more often than you'd like to). As such, you can now manage your email communication preferences and choose whether you want to opt-in or opt-out for emails. - diff --git a/src/content/getting-started/repository-packages.mdx b/src/content/getting-started/repository-packages.mdx deleted file mode 100644 index 6d71335f..00000000 --- a/src/content/getting-started/repository-packages.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Repository Packages ---- - -# Repository Packages - -Packages are a logical grouping of files containing software and metadata about the software and its dependencies. Packages are typically versioned to provide a better and more manageable understanding of what software is being deployed. - -As complexity grows; particularly with popular formats such as Maven and npm it becomes important to manage packages through a package management system such as Cloudsmith. - -Cloudsmith supports packages (and containers) of many types, supporting native ingress and egress, to allow you full visibility of packages deployed in your development and production environments. - -With Cloudsmith, you can automate the publishing and delivery of packages through native interface (e.g using "maven publish"), or through the Cloudsmith CLI, API or manually through the UI. - -## Package Actions - -| Action | Description | -| :------------------------------------ | :------------------------------------------------------------------------- | -| [Upload](/artifact-management/package-upload) | publish from your development environment or CI pipeline | -| [Download](/artifact-management/download-a-package) | download packages and dependencies to any environment | -| [Copy](/artifact-management/copy-a-package) | copy a package from one repository to another | -| [Move](/artifact-management/package-move) | move a package from one repository to another | -| [Delete](/artifact-management/delete-a-package) | delete a package from a repository | -| [Resynchronize](/artifact-management/resync-a-package) | republish (delete/add) a package (usually to retry a package sync failure) | - -> Promote Packages -> Cloudsmith allows you to "promote" packages between repositories through either a [move](/artifact-management/package-move) or [copy](/artifact-management/copy-a-package) function, preventing unnecessary uploads/downloads, for an accelerated pipeline. - - - -## What package types are supported? - -Our mission is to support the developer community with a best-in-class package management solution that doesn't just cater to the most used formats for development and deployment but brings the same level of control, management, and visibility for every format we add. - -[Supported Formats](/package-formats) diff --git a/src/content/getting-started/sign-in.mdx b/src/content/getting-started/sign-in.mdx new file mode 100644 index 00000000..0db752bb --- /dev/null +++ b/src/content/getting-started/sign-in.mdx @@ -0,0 +1,37 @@ + +import { Note, BlockImage } from '@/components' + +import device from './images/device.png' + +# Log In + +Learn how to access your Cloudsmith [Workspaces](/workspaces). + +## With User and password + +Browse to [https://app.cloudsmith.com/login](https://app.cloudsmith.com/login). +And, once you are there, enter your e-mail address and password. + +You'll be presented with your main Workspace overview page. + +## With SAML + +Browse to [https://app.cloudsmith.com/login/saml](https://app.cloudsmith.com/login/saml) (or alternatively from the main login page click on **Login using SAML**). + +And, once you are there, enter your workspace name. Click **Continue**. + +Complete any required MFA steps required by your administrator. + + + + + The first time that you access Cloudsmith from a new device - as it is the case now - you might need to verify the device. + + Click in the link provided in the email to verify your new device. + + + + + + + diff --git a/src/content/getting-started/sign-up.mdx b/src/content/getting-started/sign-up.mdx new file mode 100644 index 00000000..ca9c8c96 --- /dev/null +++ b/src/content/getting-started/sign-up.mdx @@ -0,0 +1,25 @@ + +import { Note, BlockImage } from '@/components' + +import signup from './images/signup.png' + +Are you looking for a Cloudsmith trial? + +# Sign Up + +Browse to [https://app.cloudsmith.com/signup](https://app.cloudsmith.com/signup). + + + +Once you are there: +1. Enter a valid e-mail address. Click **Continue**. +2. Enter your **Name** and **Surname**, and define a **Password**. +3. Review our service terms and conditions, the data usage and privacy policy, and - if agreed - mark the checkbox. +4. Click **Continue**. +5. Complete the verification step, and click in **Start your free trial**. +6. Check your mail inbox, we’ve sent a verification email. +7. Once received, click in the provided link to confirm your registration. + +Now you can [sign-in](/getting-started/sign-in). + + diff --git a/src/content/getting-started/what-is-package-management.mdx b/src/content/getting-started/what-is-package-management.mdx deleted file mode 100644 index 9b4e76b9..00000000 --- a/src/content/getting-started/what-is-package-management.mdx +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Getting Started ---- - -# What is Package Management - -Package management is the process of handling the many and varied dependencies and artifacts for your servers, applications, and developers. These are the archives, binaries, libraries, tools, scripts, modules, snippets, metadata, assets and even datasets that power your processes, products, and solutions. - -A binary package manager centralises these dependencies and artifacts, acting as a glue layer within the DevOps toolchain to provide easier interaction between development, operations, build, and release. - -Package management reduces the friction between different functions within DevOps, and the process of delivering from developer to customer is accelerated. - -## What is Cloudsmith? - -A single source of truth for your software assets. All your packages, in any format, are in one location and accessible across the organization. Cloudsmith is package management the way it should be done, supporting modern DevOps practices and accelerating software delivery pipelines. - -Our mission is to provide package management that leverages the cloud's best capabilities and specifically build it around customers that want better software dependencies, better software distribution, and better automation of their DevOps pipelines and platforms. We believe that modern infrastructure and applications require modern tooling and that package management is the quintessential modern tool for DevOps. - -## Control - -Cloudsmith provides well-defined controls (such as Role-Based Access Controls) for getting packages in and out, as well as controlling promotions, rollbacks, and deployments; so you can lock down who can do what, where, and when. - -## Visibility - -Cloudsmith provides you with a world view to see the attributes (i.e. names, versions, types, metadata) and state of play across all of your packages, regardless of type/source; so you can see and discover all there is know about the packages you use. - -## Universality - -Cloudsmith "speaks" the native protocol for a large number of packaging technologies (e.g. Python + Ruby + Maven/Java, etc.), as well provide APIs for easy/agnostic manipulation; so you have immediate compatibility with all of your tools. - -## Security - -Cloudsmith is built to be secure by default without having to define and set it up (e.g. encrypted-in-transit, at-rest, automated GPG/RSA signing, sane permissions, etc.); so you can shift security to the left and incorporate it as early as possible. - -## Provenance - -Cloudsmith provides traceability for current and previous versions of packages (i.e. source of package, dependencies, environment state, etc.); so you can know and prove the origin of the software that you use. - -## Auditability - -Cloudsmith provides you with access logs, metrics/statistics, and accountability for uploads and downloads in the system; so that you can ensure the right people are accessing the right things in the right way. - -## Speed - -Cloudsmith provides ultra-fast and worldwide distribution for packages as a standard feature with "at edge" distribution; so that you can get your packages to where they need to go at high-velocity. - -## Isolation - -Cloudsmith provides an additional layer in front of public services to ensure you can still get your packages when the public service is down; so you can remain up and working when they're down. - -## Collaboration - -Cloudsmith allows you to synchronize workflow and process with colleagues, other teams, and outside collaborators; so you can build community and collaboration with colleagues. - -## Total Cost of Ownership - -Cloudsmith is cheaper than planning it, coding it, maintaining it, upgrading it, and worrying about it, yourself; so you can concentrate on building and deploying your awesome products instead. diff --git a/src/content/getting-started/workspace-overview.mdx b/src/content/getting-started/workspace-overview.mdx deleted file mode 100644 index b802165c..00000000 --- a/src/content/getting-started/workspace-overview.mdx +++ /dev/null @@ -1,172 +0,0 @@ -import { Note, BlockImage } from '@/components' -import img_create_new_workspace from './images/workspaces/cfdd1f15b797468042b95b6e4616402426e5f08720e503039b3b86a269487648-create-new-workspace.png' -import img_create_workspace_button from './images/workspaces/adb1abd30fd7eb115d376c7ebde10f7ec7f21eb24c58564544e3c9342fd5889a-create-workspace-button.png' -import img_create_a_new_workspace_form from './images/workspaces/a80d50085cb632806e49b1d8266dfcbde01afb8bc1108381db48d6eb4bf4f4f3-create-a-new-workspace-form.png' -import img_settings_workspaces from './images/workspaces/7ea55d80fcf7a86db156b47aafb9c5e0eff26cabb5bb832fafbd7c0fd2ade07f-settings-workspaces.png' -import img_workspace_profile from './images/workspaces/ebfd1af9bdfbb8a0015e8e885c01164fa68055d41a1ededa538c5fd55f77eb0d-workspace-profile.png' -import img_billing_settings from './images/workspaces/f68019bfd870d2451ab22cd5291ee99120e96b7a6931401e164727d0faacdb88-billing-settings.png' -import img_global_privileges from './images/workspaces/13a08bb0b4e09840757898328a717c25a2e978d68a1daff7816c0f44a06cf311-global-privileges.png' -import img_object_privileges from './images/workspaces/2437eb9334abde4fdaf268840bff7b39ea4894e795f7c01d3d094f20592229ac-object-privileges.png' -import img_teams from './images/workspaces/5a7210ce89a4ad40fc961f1500a76a7fa469f363f3ac7d7a07fbe2e7dd41a636-teams.png' -import img_auth_settings from './images/workspaces/0eae5024250d241c5d1bba1228990f707e72251fc86740061f1f0e6d19803f12-auth-settings.png' -import img_saml from './images/workspaces/2db51e96490046173aab8e5e306522f177c8f5d61e6a80a06946e649e5c0eba1-saml.png' -import img_saml_group_sync from './images/workspaces/75df13493e3495a67167702377ad5f544757f9b59c95bdaa9d34b5e665e5c0bf-saml-group-sync.png' -import img_scim from './images/workspaces/0d3164ccada96c7e05cfef347a7446d83389c218249a8916848a7099f769b781-scim.png' -import img_custom_domains from './images/workspaces/0f67b9df1936ad70829df5e29411d625d3b5487ff7ce4a6c44b00960d575d6ac-custom-domains.png' -import img_usage_limits from './images/workspaces/4ffbcf8f4da7c4c67d9dd347744fe35e63cdc9595711d2215e19346ad077c10e-usage-limits.png' - -# Workspaces - -Creating a _Workspace_ in Cloudsmith allows you to configure access for teams, individuals and machines that map to your company's organizational structure. Building security and resilience in managing teams and workflows is essential in today's ecosystem. This is a quick start guide to the powerful permission system within Cloudsmith and how you can get started. - -## Create a Workspace - -To create a new Workspace: - -1. Navigate to "Workspaces" in the global menu -2. Click "Workspaces" -3. Click "Create Workspace" - - - - - -You are now presented with the "Create a new workspace" form. You are required to enter a name for your Workspace (don't worry, we will check your workspace name is unique for you before creating it). - - - -To configure the settings for the Workspace, just click on the Settings menu item: - - - -## Workspace Settings - -The menu on the left is where you can modify/configure Workspace settings, and has the following sections: - -- Workspace -- Billing -- Privileges -- Accounts and Teams -- Authentication -- Custom domains -- Usage limits -- Manage policies - -*** - -### Workspace - -The Workspace profile settings are where you configure the Workspace name, avatar and contact email addresses (including billing email address if different from the primary email address): - - - -From within the Workspace profile settings, you have the ability to rename your organization's slug/identifier, and if you really need too, you can delete an organization (caution: this is a permanent action and cannot be undone). - - - If you rename the Workspace, then the URI that is used to connect to any repositories will change. This change will affect any users that currently use the repositories as the URI would no longer be valid. - - -### Billing - -The Workspace Billing settings are where you add or change your payment source, view your invoices and select / modify your current plan. - - - -### Privileges - -The Workspace Privileges settings are where you set global privileges and default object privileges. - -#### Global Privileges - -Global privileges settings are where you configure the permissions for current Workspace members to: - -- Create new teams in the organization -- Invite members to the organization -- Invite collaborators to the organization -- Allow members to view other members' email addresses -- Create new package repositories (with admin permissions in the new repository) - - - -#### Default Object Privileges - -Default object privileges settings are where you configure the default privileges for objects within a package repository: - - - -| | | -| :---- | :-------------------------------------------------- | -| Admin | Members have full control over repositories | -| Write | Members can upload and download from the repository | -| Read | Members can download from the repository | -| None | Members have no repository access | - -### Accounts and Teams - -Workspace Accounts and Teams settings is used to control the default visibility of teams: - - - -- Hidden - Non-Members are not able to view the team -- Visible - Non-Members are able to view the team - -### Authentication - -Workspace Authentication settings is where you can configure and modify the authentication settings for your users, including: - -- Set up and enforce SAML authentication -- Configure and modify SAML Group Sync -- Configure and modify SCIM -- Enforce two-factor authentication -- Create and manage OIDC provider settings - - - -#### SAML - -Workspace SAML settings is where you can enable and enforce SAML authentication. To enable SAML Authentication, you just need to either provide a URL to remote fetch your SAML XML Metadata, or provide the SAML XML Metadata directly inline using the form. - - - -#### SAML Group Sync - -SAML Group Sync is where you can configure automatic mapping of your SAML Groups to Cloudsmith Teams. Please see the [SAML Group Sync](/access-control/single-sign-on#saml-group-sync) documentation for further details. - - - -#### SCIM - -SCIM is where you can enable SCIM provisioning and de-provisioning and obtain your username and password to configure SCIM in your chosen Identity Provider. Please see the [Single Sign-On with Okta](/access-control/single-sign-on-with-okta) documentation for an example of how you can configure SCIM for an Identity Provider. - - - -#### 2FA - -Workspace 2FA is where you can enable Two-Factor Authentication. This will force members to set up Two-Factor Authentication for additional security. - -### Custom Domains - -Custom domains let you utilize branded domains for any endpoint. Custom Domains settings are where you can view what custom domains have been configured for your Workspace account. - - - -### Usage Limits - -The Usage Limits settings are where you can configure additional usage of artifact data and package delivery for the Workspace. - - - - - Setting a limit of 0GB will disable any overage - - -### Manage policies - -Cloudsmith's Policy Management lets your protect your workspace by defining policies that suit your business. Manage Policies settings is where you can configure and manage your workspace policies. Policy types include: - -- License policies -- Vulnerability policies -- Authentication policies -- Package deny policies - -Please see [Policy Management](/policy-management/policy-management) documentation for more details on each policy type. diff --git a/src/content/guides/dependency_firewall.mdx b/src/content/guides/dependency_firewall.mdx new file mode 100644 index 00000000..2e8b5042 --- /dev/null +++ b/src/content/guides/dependency_firewall.mdx @@ -0,0 +1,317 @@ +# DOCS: Guide: Building a dependency firewall + + +{/* GOALS +Highlight key cloudsmith functionality. including; +- security scanning, +- deny policies, +- block-until-scanned, +- vulnerability policies + +Super important to: +- keep it simple +- relate to the product features, strenghs, where do we do it better? +- add examples to each topic!! clarity. +- try to make it as much hands-on as possible +*/} + +{/* + +OPEN QUSTIONS +- what about transitive dependencies? can we catch it all? If not, which alternatives we suggest to customers? + + +*/} + +{/* INTRO / PROBLEM STATEMENT + + Why/Purpose +1. set the context for the problem, what things can happen when you don't have a dependency firewall? +2. Define a clear list of negative consequences. +*/} + +## Intro: _The Hidden Risks in Your Software Supply Chain: Why Dependency Control is No Longer Optional_ + +In today's fast-paced development landscape, the ability to leverage open-source and third-party packages is a key component of shipping fast. Teams can assemble sophisticated applications at unprecedented speeds, standing on the shoulders of a global community of developers. However, this reliance on external code introduces a complex and often underestimated set of risks. + +Imagine a bustling construction site where materials arrive from countless suppliers, without any kind of suppervision or trazability. While this might accelerate the initial building phase, it also dramatically increases the chances of incorporating substandard, insecure, or even dangerously flawed components. Similarly, software development teams frequently pull in dozens, if not hundreds, of external dependencies without rigorous scrutiny. This can unknowingly expose their organizations to a myriad of potential problems: crippling security vulnerabilities hidden within a transitive dependency, restrictive licensing terms that create legal nightmares, or deprecated packages that lead to operational instability and ballooning maintenance costs. + +The pressure to deliver quickly can often overshadow the critical need for due diligence, leaving companies vulnerable. As software supply chain attacks become increasingly sophisticated and common, and as regulatory landscapes tighten, the laissez-faire approach to dependency management is no longer sustainable. Businesses are now grappling with the urgent need to gain visibility and control over what enters their development pipelines, paving the way for solutions designed to safeguard their software and their reputation. + +If this challenges resonate in you, keep reading. In this guide, we'll cover how you can build a **dependency firewall** with Cloudsmith. A dependency Firewall consists of a set of features that allow you to exercise and implement controls over what packages can be consumed by developers and build processes. In the next sections, you'll be creating a layer of protection between your systems and threats imported from public open source repositories. + +## Who's this guide for? + +If you develop or use 3rd party software, this guide is for you. This content might also be helpful for Security and DevOps teams. +No matter if you are a Cloudsmith customer or not, you can [sign-up for a trial account](https://app.cloudsmith.com/signup?next=%2F) and follow this guide to understand the basics of setting up your own dependency firewall. + +## Building a Dependency Firewall + +Here's an overview of the different areas we'll cover: +1. Control of Dependencies +2. Upstream Proxying and Caching +3. Artifact Advisories + 3.1. Vulnerability Policies + 3.2. Package Deny Policies + 3.3. Block Until Scanned + 3.4. Licenses +4. Policies + + + +--- + +### 1. Control of dependencies + +For some organizations, there's a common ausence of visibility over OSS software usage in any of the stages of their Software Development Life Cycle (SDLC). Everything is allowed to ship new features fast, leading to a point in which it is almost impossible to track which packages have been running, with the consequent increase in risk. The first step to take control is to increase visibility: you can't control what you don't see. + +Let's start cloning a sample project: + +``` +git clone +cd +code . +``` + +It contains a microservices app composed of a node frontend, python backend, and a mariadb database, all of them prepared to be deployed in a Kubernetes cluster. + +Although there two sample apps together don't sum up more than 100 lines of code, the number of dependencies required to execute them is surprising. For example, browse to the frontend app directory and use `npx howfat` to list information about dependencies in use: + +```bash +cd frontend +npx howfat -r tree +``` + +This tool provides a glance of the number of dependencies, files, and total size of a project including it's dependencies and transitive dependencies. In this case, for an app with no more than 25 lines of code, there's a total of 88 different 3rd party additions to the codebase. + +Without any kind of supply chain management solution, tracking the usage of dependencies across different teams, stacks, and environments might be a challenging endeavour. In the next step we'll see how to use Cloudsmith to observe and control the software you run. + +#### 1.1. Single source of truth for your all your artifacts + +Cloudsmith is your single pane of glass for all kind of artifacts. With an extensive [support of 30 different package formats](https://docs.cloudsmith.com/formats), Cloudsmith provides an easy to manage but yet advanced platform that support all the native tooling your developers use. + +Let's [create a repository](https://docs.cloudsmith.com/repositories/create-a-repository) for our microservices stack: +1. Browse to your Cloudsmith workspace and click on **+ New Repository**. +2. Type a name (for example: `dev-env`), +3. select a region (default to `Dublin`), +4. and click on **+ Create Repository**. + +Our new repo is created! + +Depending on your use case or how you want to distribute your software, you have different visibility options for your repositories: +- Public +- Private +- or Open Source Software OSS. + +By default, new repositories are private. You can browse to the Settings in your repository ([https://app.cloudsmith.com/demo-docs-awesome-repo/settings](https://app.cloudsmith.com/demo-docs/awesome-repo/settings)) and select **Make repository public**. Private repositories can be accessed via Entitlement Tokens, to have a higher level of control over who access your software. But, for this example, let's make it public. + +{/* Now we'll get some hands-on practice pushing and pulling artifacts from this repo. But first, let's define some variables in our terminal to reuse during this demo guide: + +```bash +export CLOUDSMITH_USERNAME= # Available in user settings +export CLOUDSMITH_API_TOKEN= # Available in user settings +export CLOUDSMITH_WORKSPACE_NAME= +export CLOUDSMITH_REPOSITORY= +export CLOUDSMITH_REPOSITORY_IS_PRIVATE=yes + +#download and setup cloudsmith-cli + +``` */} + +Now that our repository is created, let's configure our native tooling to push and pull packages directly from our Cloudsmith repository. +We can also use the cloudsmith CLI to manage artifacts from different formats, or perform actions against any of our repositories. + +{/* TODO, try to automate this via API to hide a bit what we are doing and avoid going to the old UI */} + +📘 npm and pypi redirects +To continue with this guide, browse to your repo settings in the old UI ([https://cloudsmith.io/~demo-docs/repos/awesome-repo/settings/](https://cloudsmith.io/~/repos//settings/)) and disable the next two options: +- Proxy Python Packages? +- Proxy Npm Packages? + + +{/* TODO: better use the file config instead of adding the registry option on every command */} +For our NodeJS modules, we can use `npm` and just point it to: `https://npm.cloudsmith.io/WORKSPACE/REPOSITORY/` (learn more about the different configuration options in the general [NodeJS docs](https://help.cloudsmith.io/docs/npm-registry)). For example, we can install all required dependencies for this project using `npn`: + +```bash +npm install --registry https://npm.cloudsmith.io/demo-docs/no-upstream-npm --loglevel verbose +``` + +```logs +npm verbose pkgid axios@^1.4.0 +npm error code E404 +npm error 404 Not Found - GET https://npm.cloudsmith.io/demo-docs/no-upstream-npm/axios - Not found. +``` + +The package is not found. Let's try with the Python app, we can run: + +```bash +cd ../backend +pip install --index-url https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/ -r requirements.txt -vvv; +``` + +We get a similar error: + +```logs +Could not fetch URL https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/: 404 Client Error: Not Found for url: https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/ - skipping +Skipping link: not a file: https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/flask/ +Given no hashes to check 0 links for project 'flask': discarding no candidates +ERROR: Could not find a version that satisfies the requirement Flask==2.0.1 (from versions: none) +``` + +This is good! What is going on? We have not configured any upstream for our repository, hence those dependencies from https://www.npmjs.com/ and https://www.pypi.com/ are not available to use them. In the next section we'll learn about Upstreams and how to [configure](https://docs.cloudsmith.com/repositories/upstreams) them. + +### 2. Upstream Proxying and Caching + +Upstreams refer to the original source or maintainer of a piece of software, code, or a package. This can be public registries or private repositories from any vendor. With Cloudsmith, you can proxy them all to control de software your developers consume. + +Having a repository without access to public package sources might be a valid use case, as we'll explore later (see Package Promotion strategies). But for most cases, having access to popular upstreams like Pypi or npm is a common choice for any repository. With Cloudsmith, you can have all the power and flexibility of open source packages in public upstreams without sacrificing artifact control and visibility. + +#### Enabling Upstreams within your repository + +To connect your repository to different Upstreams, you only need to enable each of them. Browse to your repository and click in **Upstreams** tab. Then, use the quick configure wizard and just click in the Upstreams required for this project: +- NPMJS.com +- Pypi Official + +See the upstream configured, the status icon provides information about the progress: "Upstream is caching proxied packages to this repository". Once enabled, both are available to use. Retry the previous commands: + +```bash +cd ../frontend +npm install --registry https://npm.cloudsmith.io/demo-docs/no-upstream-npm +cd ../backend +pip install --index-url https://dl.cloudsmith.io/public/demo-docs/no-upstream-npm/python/simple/ -r requirements.txt +``` + +Now it worked. Cloudsmith found all the artifacts required from your project. Browse to your repository overview page and take a look at the list of dependencies used. + + + +📘 With Cloudsmith, you can't only proxy public repositories, but also cache their assets. Public repositories don't provide any guarantees that a package that was available today will still be there tomorrow. The repositories themselves also don't offer SLAs and may suffer downtime. Another positive side-effect of dependecy caching is that once we have cached the dependency, it will always be the same one. This is not guaranteed in a public repo, as they can manipulate the versioning by deleting and reuploading any of the packages available. + +Adding to this, you'll get another benefit from storing your dependencies in Cloudsmith. You are safe from outages. If the upstream registry is down, you'll still have access to your assets via Cloudsmith registries. + + +--- + +We can also use this repo to upload any kind of asset: from _NodeJS_, to Python_, _Golang_, or_Docker containers_. +Let's see a couple of examples. With python (pip3 required): + +```bash +cd ../backend +pip3 download adorable +cloudsmith push python demo-docs/awesome-repo adorable-0.1.5-py3-none-any.whl +``` + +📘 Cloudsmith provides full controls to define who can view or make changes to your repos. Learn more about permissions and entitlements [here](/repositories/access-controls). + +{/* Now, you can upload any other artifact you might want to test. Explore all the formats supported, and play with those more familiar to you. Alternatively, use this project https://github.com/cloudsmith-io/cloudsmith-examples to populate your new repository with alternative examples: + +```bash +git clone https://github.com/cloudsmith-io/cloudsmith-examples.git +cd cloudsmith-examples +./bin/run-examples +``` +Once it's running, browse again to the repository and see the first packages being uploaded: Maven, Debian, npm, Rust, and other different assets are being created in your repo. Cloudsmith is your control plane for universal artifact management. Al different formats supported in one location. + +Now that we pushed some artifacts to the repo, let's try to pull some of them to our local machine. Cloudsmith support all the native tooling you use for your artifacts. For each of them, contextual instructions are provided within the product. Also, instructions to learn how to configure your CLI tools or projects to pull images directly from Cloudsmith. + +*/} + + +📘 An important part of building a Dependency Firewall is blocking any source of artifacts that we don't allow within our org. There are different approaches to tackle this: +- **Network Controls**: Implement firewall rules, proxy configurations, and egress filtering to block direct access to external public repositories like Docker Hub, Maven Central, PyPI, or public Helm chart repositories. Allow only traffic to your internal artifact repository. +- **Configuration management**: For example, configure the Docker daemon on developer machines and build servers to use your internal registry as a mirror. This way, if an image is requested, Docker will first check your internal registry. If not found, it will still try the public registry unless you block it at the network level. + +For example: + +```json +{ + "registry-mirrors": ["https://my-internal-registry.company.com"] +} +``` + +Reach out to our [Support team](https://support.cloudsmith.com/) to learn more about all of the alternatives we provide. + + + +{/* Ensure your teams are only pulling from Cloudsmith - which means setting up your teams and pipelines to point at Cloudsmith. + Talk about teams, accounts, services, workspace members. */} + +{/* Add example to push to the repo the app we just build, native + docker */} + +Now, we not only block dependencies from other external repositories, but also have full visibility about all the dependencies being used by our applications. What about enforcing more advances criteria to guarantee that no known vulnerbale software is used? + + +### 3. Artifact Advisories + +Advisories, what are they? + + +#### 3.1. Malware +#### 3.2. Vulnerabilities + + +Recurrent scans. New vulnerabilities are discovered every single day. + +#### 3.1. Malware + +buscar ejemplo de imagen con malware. + + + +### 4. Policies + +EPM +Improving your security posture is a long-run effort that goes beyond visibility and control: it requires stablishing and enforcing policies across your whole organization. + +There's a multitude of security solutions that are great providing new findings, but fall short taking action. + + + +### 5. Bonus tracks + +#### Actively blocking external no-compliant repositories + +5. Package Deny Rules +6. Package Quarantine +7. Block Until Scanned + +#### Observability and Logging + +As part of the visibility features, Cloudsmith provides different observability functions to understand how dependencies are being used within your organization. Browse to your repo and click Logs. + +The Client Logs are presented. Here you can see an overview of all of the different artifact files downloaded within your organization. This will give you insights about when, how, and by whom your packages are being used. + +Most importantly, Cloudsmith provide an Audit logs panel to track the actions of every single organizational member. Every package that is uploaded or deleted, entitlement tokens creation, logings, creation of new upstreams and every single action within your repository are registered so you can have a full audit of what happened. + +Cloudsmith is the **single source of truth** for all your package formats. + +Observability and Logging: + +Talk here about the different features available: +- client logs: observe how packages are being consumed +- package logs: +- audit logs: + +{/* DON'T INCLUDE #### Retention Rules */} + +------------ + +Defense in depth: multiple layers, onion. Not only checking incoming vulnerabilities, but also the result of our pipelines. Talk about GH integration. + + + + + +4. Licenses + +License Compliance Risks: Open source software can contain a dizzying variety of licenses. Inadvertently introducing new types of OSS licensing can create a threat to legal compliance and alter the legal status of your software, exposing you to litigation. + + + + +what are the (different) approaches you could use to implement the firewall & pros/cons +- promotion workflow +{/* help required here */} +- strict dependency blocking +{/* this workflow is clear */} +aqui estaria bien comparar cada una de las alternativas y ver como se comportan la una con la otra. pros y contras de las mismas. diff --git a/src/content/homepage.json b/src/content/homepage.json index 2c0f018e..c7b19122 100644 --- a/src/content/homepage.json +++ b/src/content/homepage.json @@ -29,6 +29,13 @@ "linkText": "Read the doc", "icon": "utility/documentation" }, + { + "title": "Supported Formats", + "description": "Cloudsmith is a single solution for all of your software assets.", + "href": "/formats/", + "linkText": "Go to formats", + "icon": "utility/documentation" + }, { "title": "Quickstart guide", "description": "This guide will take you through the basic steps to help you get your Cloudsmith account up and running quickly.", @@ -36,14 +43,6 @@ "linkText": "Go to guide", "icon": "utility/guide" } - , - { - "title": "Evaluating Cloudsmith", - "description": "If you're considering Cloudsmith, we've compiled a guide covering steps typically taken by customers during an evaluation.", - "href": "/guides/evaluating-cloudsmith/", - "linkText": "Go to guide", - "icon": "utility/guide" - } ] }, { @@ -68,10 +67,10 @@ "icon": "utility/documentation" }, { - "title": "Setting permissions", - "description": "Anim ipsum eiusmod occaecat duis ullamco reprehenderit sint do sunt irure veniam ullamco mollit in. Veniam Lorem amet culpa ullamco voluptate ad anim esse officia.", - "href": "/accounts-and-teams/permissions", - "linkText": "Read the doc", + "title": "Workspace privileges", + "description": "Learn how to apply the principle of least privilege to secure your supply chain.", + "href": "/workspaces/privileges", + "linkText": "Privileges", "icon": "utility/documentation" } ] diff --git a/src/content/logs-and-observability/images/microsoft-teams/cloudsmithWebhooksExample.png b/src/content/integrations/images/microsoft-teams/cloudsmithWebhooksExample.png similarity index 100% rename from src/content/logs-and-observability/images/microsoft-teams/cloudsmithWebhooksExample.png rename to src/content/integrations/images/microsoft-teams/cloudsmithWebhooksExample.png diff --git a/src/content/logs-and-observability/images/slack/9af567f-ready.png b/src/content/integrations/images/slack/9af567f-ready.png similarity index 100% rename from src/content/logs-and-observability/images/slack/9af567f-ready.png rename to src/content/integrations/images/slack/9af567f-ready.png diff --git a/src/content/integrations/integrating-with-azure-devops.mdx b/src/content/integrations/integrating-with-azure-devops.mdx index f8809016..789d0205 100644 --- a/src/content/integrations/integrating-with-azure-devops.mdx +++ b/src/content/integrations/integrating-with-azure-devops.mdx @@ -16,7 +16,7 @@ Integrate Cloudsmith with Azure DevOps to automate the management of your artifa Before getting started, you need to have the following prerequisites: - An Azure DevOps account with pipeline permissions, which can be set up by following the steps in the [Azure DevOps documentation](https://learn.microsoft.com/en-us/azure/devops/user-guide/sign-up-invite-teammates?view=azure-devops&tabs=microsoft-account). -- A Cloudsmith account, which can be set up by following the steps in the [Cloudsmith documentation](https://help.cloudsmith.io/docs/welcome-to-cloudsmith-docs). +- A Cloudsmith account, which can be set up by following the steps in the [Cloudsmith documentation](/getting-started). - Azure Entra (formerly Azure Active Directory) App registration capabilities if using OIDC. ## Integration Features diff --git a/src/content/integrations/integrating-with-codefresh.mdx b/src/content/integrations/integrating-with-codefresh.mdx index 6a50ec4a..f918f3d5 100644 --- a/src/content/integrations/integrating-with-codefresh.mdx +++ b/src/content/integrations/integrating-with-codefresh.mdx @@ -55,7 +55,7 @@ Codefresh does not support OIDC for Docker integrations natively. You can use OI Set up **Codefresh as an OIDC provider** for Cloudsmith. This allows your Codefresh pipelines to request Cloudsmith API tokens dynamically, without manual credential management. 1. **Create a [Service Account](/accounts-and-teams/service-accounts)** in Cloudsmith (required for OIDC to work with Cloudsmith). -2. **Configure [OpenID Connect](/access-control/openid-connect) in Cloudsmith**: +2. **Configure [OpenID Connect](/authentication/openid-connect) in Cloudsmith**: - Provider URL: `https://oidc.codefresh.io` - Claims: For example add your **Codefresh account ID** to restrict access. For more information on claims consult the [Codefresh documentation](https://codefresh.io/docs/docs/integrations/oidc-pipelines/#claims--conditions). - Assign the **service account** you created earlier. @@ -74,7 +74,7 @@ obtain_id_token: type: obtain-oidc-id-token ``` -For more details, refer to the [Cloudsmith OIDC documentation](/access-control/openid-connect) and [Codefresh OIDC documentation](https://codefresh.io/docs/docs/integrations/oidc-pipelines/). +For more details, refer to the [Cloudsmith OIDC documentation](/authentication/openid-connect) and [Codefresh OIDC documentation](https://codefresh.io/docs/docs/integrations/oidc-pipelines/). #### Example Pipeline: Publish a Python Package to Cloudsmith @@ -171,6 +171,6 @@ Cloudsmith Documentation: - [Helm Chart Repository](/formats/helm-chart-repository) - [Docker Registry](/formats/docker-registry) -- [OpenID Connect](/access-control/openid-connect) +- [OpenID Connect](/authentication/openid-connect) - [ArgoCD](/integrations/argocd) - [Octopus Deploy](/integrations/integrating-octopus-deploy) diff --git a/src/content/integrations/integrating-with-dependabot.mdx b/src/content/integrations/integrating-with-dependabot.mdx index 6bfaa8cd..6d18f55e 100644 --- a/src/content/integrations/integrating-with-dependabot.mdx +++ b/src/content/integrations/integrating-with-dependabot.mdx @@ -52,7 +52,7 @@ Open the ./github/dependabot.yml file and configure it as follows: - `type`: The type of repository e.g. maven-repository or - `url` The URL of the Cloudsmith repository. - `username` and `password`: Cloudsmith supports authentication using username and password. These credentials should be stored in the `Dependabot` tab of your repositories `Secrets and variables`settings (see above for more details). - - `replaces-base`. This setting is optional and works hand in hand with Cloudsmith upstream [Upstream Proxying](/tbc/upstream-proxying-and-caching). If the `replaces-base` setting is set to `true`, Dependabot will use the specified Cloudsmith URL as the primary source for dependencies instead of the default public repository for that package ecosystem. This means you should configure a corresponding Cloudsmith upstream to ensure Dependabot checks Cloudsmith first for dependencies. + - `replaces-base`. This setting is optional and works hand in hand with Cloudsmith upstream [Upstream Proxying](/repositories/upstreams). If the `replaces-base` setting is set to `true`, Dependabot will use the specified Cloudsmith URL as the primary source for dependencies instead of the default public repository for that package ecosystem. This means you should configure a corresponding Cloudsmith upstream to ensure Dependabot checks Cloudsmith first for dependencies. - Within the updates blocks, where you can use `registries: "*"` to tell Dependabot to use any or all of the registries you defined at the top level. - `directory` specify the directory where your package manifest is located. This is usually the root directory of your project. - `schedule`Configure the schedule to define how often Dependabot should check for updates. You can set the interval to daily, weekly, or monthly. diff --git a/src/content/integrations/integrating-with-github-actions.mdx b/src/content/integrations/integrating-with-github-actions.mdx index 6a4bd818..9f759e65 100644 --- a/src/content/integrations/integrating-with-github-actions.mdx +++ b/src/content/integrations/integrating-with-github-actions.mdx @@ -45,7 +45,7 @@ You will need to add a secret to your GitHub repository named `CLOUDSMITH_API_KE Pass your `CLOUDSMITH_API_KEY` secret to the Action as per the examples. -When using [OIDC](/access-control/openid-connect) with GitHub Actions, save the JWT token to an environment variable called `CLOUDSMITH_API_KEY` and **do not** include `api-key` in the `.yaml` push action - the API key will be taken from the environment variable instead. +When using [OIDC](/authentication/openid-connect) with GitHub Actions, save the JWT token to an environment variable called `CLOUDSMITH_API_KEY` and **do not** include `api-key` in the `.yaml` push action - the API key will be taken from the environment variable instead. diff --git a/src/content/logs-and-observability/integrating-with-microsoft-teams.mdx b/src/content/integrations/integrating-with-microsoft-teams.mdx similarity index 99% rename from src/content/logs-and-observability/integrating-with-microsoft-teams.mdx rename to src/content/integrations/integrating-with-microsoft-teams.mdx index cd0eeeee..67895566 100644 --- a/src/content/logs-and-observability/integrating-with-microsoft-teams.mdx +++ b/src/content/integrations/integrating-with-microsoft-teams.mdx @@ -61,6 +61,7 @@ https://outlook.office.com/webhook/0f7eb16f-f6de-csm1-8272-3028fbf63fdb@1e93d1ef ] } ``` + Upload a package and enjoy the awesome automated Microsoft Teams posts! diff --git a/src/content/logs-and-observability/integrating-with-slack.mdx b/src/content/integrations/integrating-with-slack.mdx similarity index 100% rename from src/content/logs-and-observability/integrating-with-slack.mdx rename to src/content/integrations/integrating-with-slack.mdx diff --git a/src/content/logs-and-observability/audit-logs.mdx b/src/content/logs-and-observability/audit-logs.mdx index f9055350..107a06de 100644 --- a/src/content/logs-and-observability/audit-logs.mdx +++ b/src/content/logs-and-observability/audit-logs.mdx @@ -4,7 +4,7 @@ import imgiPad_Pro_1 from './images/audit-logs/4e9356d46f85b38b0939a0b3a5a19fbe4 # Audit Logs -Audit Logs provide a log of events across your organization, such as [creating](/repositories/create-a-repository)/[deleting](ref:repos_delete) a repository or modifications to repository settings/configuration. +Audit Logs provide a log of events across your organization, such as [creating](/repositories/create-a-repository)/[deleting](/repositories/repository-settings#dangerous-actions) a repository or modifications to repository settings/configuration. diff --git a/src/content/logs-and-observability/index.mdx b/src/content/logs-and-observability/index.mdx index c5780ea3..4a429856 100644 --- a/src/content/logs-and-observability/index.mdx +++ b/src/content/logs-and-observability/index.mdx @@ -1,3 +1,11 @@ -# Observability and Logging +# Logs and Observability -Placeholder \ No newline at end of file +Cloudsmith's observability features provide the tools to understand how your artifacts are being accessed, used, and managed. This section covers the key data sources that enable deep visibility into your artifact management lifecycle. + +- [**Client Logs**](/logs-and-observability/client-logs): these logs are the foundational data layer, capturing the granular, real-time interactions with your repository. They record every request, download, and deployment, providing a detailed view from the perspective of the developer machines and CI/CD pipelines that consume your artifacts. They are invaluable to understand package consumption patterns. + +- [**Client Stats**](/logs-and-observability/client-statistics): analyzes and aggregates client logs information to provide insights and a general overview of your usage data. + +- [**Audit Logs**](/logs-and-observability/audit-logs): Provides a critical security and compliance perspective of your Workspace. This feature tracks significant events related to governance of your Workspaces and repositories, such as user authentications, permission changes, or modifications to repository settings. This creates an immutable record of "_who did what, and when_" which is fundamental for security forensics and meeting regulatory requirements. + +Together, these logging mechanisms offer a comprehensive view of your artifact ecosystem. While this section also touches on advanced capabilities like exporting this data for long-term retention or specialized analysis, the core principle is to provide you with the foundational visibility needed to secure and manage your software supply chain effectively. \ No newline at end of file diff --git a/src/content/logs-and-observability/repo-audit-logs.mdx b/src/content/logs-and-observability/repo-audit-logs.mdx deleted file mode 100644 index d2b9b55d..00000000 --- a/src/content/logs-and-observability/repo-audit-logs.mdx +++ /dev/null @@ -1,11 +0,0 @@ -import { BlockImage } from '@/components' -import img from './images/repo-audit-logs/1e87b6f90c7bcabb9be54803142924dcd0acfb5f51e69d4adcf56965440f5628-Screenshot_2024-10-18_at_22.32.21.png' - -# Audit Logs - ---- -The Repository Audit Log is a timeline view of non-package (but typically administrative) actions that have occurred within the repository, such as creating/modifying repository [Retention Rules](/artifact-management/retention-lifecycle) or creation of an [Entitlement Token](/software-distribution/entitlement-tokens). - - - -Please see our documentation on organizational [Audit Logs](/logs-and-observability/repo-audit-logs) for further details on Audit Log contents and searching/filtering Audit logs. diff --git a/src/content/menu.json b/src/content/menu.json index 2544b8f8..74552715 100644 --- a/src/content/menu.json +++ b/src/content/menu.json @@ -5,7 +5,7 @@ "icon": "action/documentation", "children": [ { - "title": "Getting started", + "title": "About Cloudsmith", "path": "/getting-started", "children": [ { @@ -23,18 +23,56 @@ { "title": "Signing-in", "path": "/getting-started/sign-in" - }, - { - "title": "Your new workspace", - "path": "/getting-started/workspace-overview" - }, - { - "title": "Your profile", - "path": "/getting-started/profile" }, { - "title": "Joining a workspace", - "path": "/getting-started/joining-a-workspace" + "title": "Migrating to Cloudsmith", + "path": "/migrating-to-cloudsmith", + "children": [ + { + "title": "Migrating from JFrog Artifactory", + "path": "/migrating-to-cloudsmith/export-from-jfrog-artifactory" + }, + { + "title": "Migrating from Nexus Sonatype", + "path": "/migrating-to-cloudsmith/export-from-nexus-sonatype" + }, + { + "title": "Exporting NuGet", + "path": "/migrating-to-cloudsmith/exporting-nuget" + }, + { + "title": "Import files from a folder", + "path": "/migrating-to-cloudsmith/import-files-from-a-folder" + }, + { + "title": "Import Maven", + "path": "/migrating-to-cloudsmith/import-maven" + }, + { + "title": "Import npm", + "path": "/migrating-to-cloudsmith/import-npm" + }, + { + "title": "Import NuGet", + "path": "/migrating-to-cloudsmith/import-nuget" + }, + { + "title": "Import Docker", + "path": "/migrating-to-cloudsmith/import-docker" + }, + { + "title": "Import Python", + "path": "/migrating-to-cloudsmith/import-python" + }, + { + "title": "Import Debian", + "path": "/migrating-to-cloudsmith/import-debian" + }, + { + "title": "Import RPM", + "path": "/migrating-to-cloudsmith/import-rpm" + } + ] }, { "title": "Generating an API key", @@ -46,416 +84,265 @@ }, { "title": "Using the Cloudsmith CLI", - "path": "/getting-started/cli" + "path": "/developer-tools/cli" }, { "title": "API bindings", "path": "/getting-started/api-bindings" - }, - { - "title": "Custom domains", - "path": "/getting-started/custom-domains" - } + } ] }, { "title": "Supported formats", - "path": "/formats/", - "children": [ - { - "title": "Alpine", - "path": "/formats/alpine-repository" - }, - { - "title": "Cargo", - "path": "/formats/cargo-registry" - }, - { - "title": "Chocolatey", - "path": "/formats/chocolatey-repository" - }, - { - "title": "Cocoapods", - "path": "/formats/cocoapods-repository" - }, - { - "title": "Composer", - "path": "/formats/composer-repository" - }, - { - "title": "Conan", - "path": "/formats/conan-repository" - }, - { - "title": "Conda", - "path": "/formats/conda-repository" - }, - { - "title": "CRAN", - "path": "/formats/cran-repository" - }, - { - "title": "Dart", - "path": "/formats/dart-repository" - }, - { - "title": "Debian", - "path": "/formats/debian-repository" - }, - { - "title": "Docker", - "path": "/formats/docker-registry" - }, - { - "title": "Go Registry", - "path": "/formats/go-registry" - }, - { - "title": "Gradle", - "path": "/formats/gradle-repository" - }, - { - "title": "Helm Chart", - "path": "/formats/helm-chart-repository" - }, - { - "title": "Hex", - "path": "/formats/hex-repository" - }, - { - "title": "LuaRocks", - "path": "/formats/luarocks-repository" - }, - { - "title": "Maven", - "path": "/formats/maven-repository" - }, - { - "title": "NPM", - "path": "/formats/npm-registry" - }, - { - "title": "NuGet Feed", - "path": "/formats/nuget-feed", - "children": [ - { - "title": "NuGet Symbol Server", - "path": "/formats/nuget-symbol-server" - } - ] - }, - { - "title": "PowerShell Modules", - "path": "/formats/powershell-modules-repository" - }, - { - "title": "Python", - "path": "/formats/python-repository" - }, - { - "title": "Raw", - "path": "/formats/raw-repository" - }, - { - "title": "RedHat", - "path": "/formats/redhat-repository" - }, - { - "title": "Ruby", - "path": "/formats/ruby-repository" - }, - { - "title": "sbt", - "path": "/formats/sbt-repository" - }, - { - "title": "Swift", - "path": "/formats/swift-registry" - }, - { - "title": "Terraform Modules", - "path": "/formats/terraform-modules-repository" - }, - { - "title": "Unity", - "path": "/formats/unity-registry" - }, - { - "title": "Vagrant", - "path": "/formats/vagrant-repository" - }, - { - "title": "OCI", - "path": "/formats/oci-repository" - } - ] + "path": "/formats/" }, { - "title": "Workspaces", - "path": "/workspaces/" - }, - { - "title": "Repositories", - "path": "/repositories", - "children": [ - { - "title": "Create a repository", - "path": "/repositories/create-a-repository" - }, - { - "title": "Repository settings", - "path": "/repositories/repository-settings" - }, - { - "title": "Custom storage regions", - "path": "/repositories/custom-storage-regions" - } - ] - }, - { - "title": "Artifact management", - "path": "/artifact-management", + "title": "Workspaces", + "path": "/workspaces", "children": [ - { - "title": "Uploading packages", - "path": "/artifact-management/package-upload" - }, - { - "title": "Downloading package", - "path": "/artifact-management/download-a-package" - }, - { - "title": "Identifying packages", - "path": "/artifact-management/identifying-a-package" - }, { - "title": "Tagging packages", - "path": "/artifact-management/package-tags" + "title": "Create a Workspace", + "path": "/workspaces/workspace-create" }, { - "title": "Searching and filtering", - "path": "/artifact-management/search-filter-sort-packages" - }, - { - "title": "Quarantining a package", - "path": "/artifact-management/package-quarantine" - }, - { - "title": "Private Package Sharing", - "path": "/artifact-management/sharing-a-private-package" - }, - { - "title": "Copying a package", - "path": "/artifact-management/copy-a-package" - }, - { - "title": "Resync a package", - "path": "/artifact-management/resync-a-package" - }, - { - "title": "Deleting a package", - "path": "/artifact-management/delete-a-package" - }, - { - "title": "Moving a package", - "path": "/artifact-management/package-move" + "title": "Joining a workspace", + "path": "/workspaces/joining-a-workspace" }, { - "title": "Retention Rules", - "path": "/artifact-management/retention-rules" + "title": "Settings", + "path": "/workspaces/workspace-settings" }, { - "title": "Block Until Scan", - "path": "/artifact-management/block-until-scan" + "title": "Privileges", + "path": "/workspaces/privileges" }, { - "title": "Package Groups", - "path": "/artifact-management/package-groups" - } - ] - }, - { - "title": "Upstream proxying", - "path": "/upstream-proxying-and-caching", - "children": [ - { - "title": "Upstream prioritisation", - "path": "/upstream-proxying-and-caching/upstream-priorities" - }, - { - "title": "Failure scenarios", - "path": "/upstream-proxying-and-caching/failure-scenarios" - } - ] - }, - { - "title": "Teams and accounts", - "path": "/accounts-and-teams", + "title": "Authentication", + "path": "/authentication/", "children": [ { - "title": "Access controls", - "path": "/accounts-and-teams/access-controls" - }, - { - "title": "Member accounts", - "path": "/accounts-and-teams/invite-users" - }, - { - "title": "Service accounts", - "path": "/accounts-and-teams/service-accounts" - }, - { - "title": "Permissions", - "path": "/accounts-and-teams/permissions" - }, - { - "title": "Teams", - "path": "/accounts-and-teams/teams" - } - ] - }, - { - "title": "Access control", - "path": "/access-control/", - "children": [ - { - "title": "Single Sign-On", - "path": "/access-control/single-sign-on", + "title": "SAML", + "path": "/authentication/single-sign-on", "children": [ { "title": "SSO with Azure AD", - "path": "/access-control/single-sign-on-with-azure-ad" + "path": "/authentication/single-sign-on-with-azure-ad" }, { "title": "SSO with Google", - "path": "/access-control/single-sign-on-with-google-g-suite" + "path": "/authentication/single-sign-on-with-google-g-suite" }, { "title": "SSO with JumpCloud", - "path": "/access-control/single-sign-on-with-jumpcloud" + "path": "/authentication/single-sign-on-with-jumpcloud" }, { "title": "SSO with PingIdentity", - "path": "/access-control/single-sign-on-with-pingidentity" + "path": "/authentication/single-sign-on-with-pingidentity" }, { "title": "SSO with Okta", - "path": "/access-control/single-sign-on-with-okta" + "path": "/authentication/single-sign-on-with-okta" }, { "title": "SSO with OneLogin", - "path": "/access-control/single-sign-on-with-onelogin" + "path": "/authentication/single-sign-on-with-onelogin" } ] }, { "title": "SCIM", - "path": "/access-control/scim", + "path": "/authentication/scim", "children": [ { "title": "SCIM with JumpCloud", - "path": "/access-control/scim-with-jumpcloud" + "path": "/authentication/scim-with-jumpcloud" }, { "title": "SCIM with Google", - "path": "/access-control/scim-with-google" + "path": "/authentication/scim-with-google" }, { "title": "SCIM with PingFederate", - "path": "/access-control/scim-with-pingfederate" + "path": "/authentication/scim-with-pingfederate" }, { - "title": "SCIM with OneLogin", - "path": "/access-control/scim-with-onelogin" - }, - { - "title": "SCIM with Okta", - "path": "/access-control/scim-with-okta" - }, - { - "title": "SCIM with Microsoft", - "path": "/access-control/scim-with-microsoft-entra-id" - } - - ] + "title": "SCIM with OneLogin", + "path": "/authentication/scim-with-onelogin" + }, + { + "title": "SCIM with Okta", + "path": "/authentication/scim-with-okta" + }, + { + "title": "SCIM with Microsoft", + "path": "/authentication/scim-with-microsoft-entra-id" + } + ] + }, + { + "title": "2FA", + "path": "/authentication/two-factor-authentication" }, { "title": "OpenID Connect", - "path": "/access-control/openid-connect", + "path": "/authentication/openid-connect", "children": [ { "title": "Setup GitHub Actions to authenticate to Cloudsmith using OIDC", - "path": "/access-control/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions" + "path": "/authentication/setup-cloudsmith-to-authenticate-with-oidc-in-github-actions" } ] - }, - { - "title": "2FA", - "path": "/access-control/two-factor-authentication" } ] + } + ] + }, + { + "title": "Repositories", + "path": "/repositories", + "children": [ + { + "title": "Create a Repository", + "path": "/repositories/create-a-repository" }, { - "title": "Supply chain security", - "path": "/supply-chain-security", - "children": [ - { - "title": "Continuous security", - "path": "/supply-chain-security/continuous-security" - }, + "title": "Settings", + "path": "/repositories/repository-settings" + }, { - "title": "Malware scanning", - "path": "/supply-chain-security/malware-scanning" - }, + "title": "Privileges", + "path": "/repositories/repository-privileges" + }, { - "title": "Package signing", - "path": "/supply-chain-security/signing-keys" - } - ] + "title": "Custom storage regions", + "path": "/repositories/custom-storage-regions" }, + { + "title": "Upstreams", + "path": "/repositories/upstreams", + "children": [ + { + "title": "Upstream prioritisation", + "path": "/repositories/upstreams/upstream-priorities" + }, + { + "title": "Failure scenarios", + "path": "/repositories/upstreams/failure-scenarios" + } + ] + } + ] + }, { - "title": "Policy management", - "path": "/policy-management/", + "title": "Teams and Accounts", + "path": "/accounts-and-teams", "children": [ { - "title":"Classic policies", - "children":[ + "title": "Teams", + "path": "/accounts-and-teams/teams" + }, { - "title": "Vulnerability Policy", - "path": "/policy-management/vulnerability-policy" + "title": "Member accounts", + "path": "/accounts-and-teams/invite-users" }, - { - "title": "Deny Policy", - "path": "/policy-management/deny-policy" + { + "title": "Service accounts", + "path": "/accounts-and-teams/service-accounts" }, { - "title": "API Key Policy", - "path": "/policy-management/api-key-policy" - }, + "title": "About privileges", + "path": "/accounts-and-teams/about-privileges" + } + ] + }, + { + "title": "Artifact management", + "path": "/artifact-management", + "children": [ + { + "title": "Package Actions", + "path": "/artifact-management#package-actions" + }, { - "title": "License Policy", - "path": "/policy-management/license-policy" + "title": "Package Search Syntax", + "path": "/artifact-management/search-filter-sort-packages" }, { - "title": "Geo/IP Rules", - "path": "/policy-management/geoip-rules" + "title": "Retention Rules", + "path": "/artifact-management/retention-rules" }, { - "title": "License Compliance", - "path": "/policy-management/license-compliance" + "title": "Package Groups", + "path": "/artifact-management/package-groups" } - ] + ] + }, + { + "title": "Supply chain security", + "path": "/supply-chain-security", + "children": [ + { + "title": "Block Until Scan", + "path": "/policy-management/block-until-scan" }, { - "title": "Enterprise Policies" + "title": "Policies", + "path": "/policy-management/", + "children": [ + { + "title": "Vulnerability Policy", + "path": "/policy-management/vulnerability-policy" + }, + { + "title": "Deny Policy", + "path": "/policy-management/deny-policy" + }, + { + "title": "API Key Policy", + "path": "/policy-management/api-key-policy" + }, + { + "title": "License Policy", + "path": "/policy-management/license-policy" + }, + { + "title": "Geo/IP Rules", + "path": "/policy-management/geoip-rules" + }, + { + "title": "License Compliance", + "path": "/policy-management/license-compliance" + } + ] }, { - "title": "Getting started", - "path": "/" + "title": "Enterprise Policy Management", + "path": "/supply-chain-security/epm", + "children":[ + { + "title": "Getting started", + "path": "/supply-chain-security/epm/getting-started" + }, + { + "title": "Continuous security", + "path": "/supply-chain-security/epm" + }, + { + "title": "Rego Recipes", + "path": "/supply-chain-security/epm/rego" + } + ] + + }, { - "title": "Rego Recipes", - "path": "/" + "title": "Malware scanning", + "path": "/supply-chain-security/malware-scanning" + }, + { + "title": "Package signing", + "path": "/supply-chain-security/signing-keys" } ] }, @@ -468,12 +355,12 @@ "path": "/logs-and-observability/client-logs" }, { - "title": "Audit logs", - "path": "/logs-and-observability/audit-logs" + "title": "Client stats", + "path": "/logs-and-observability/client-statistics" }, { - "title": "Repository Audit Logs", - "path": "/logs-and-observability/repo-audit-logs" + "title": "Audit logs", + "path": "/logs-and-observability/audit-logs" }, { "title": "Exporting logs to Azure", @@ -486,18 +373,6 @@ { "title": "Analyzing logs with Athena", "path": "/logs-and-observability/analyzing-s3-download-logs" - }, - { - "title": "Using Webhooks", - "path": "/logs-and-observability/webhooks" - }, - { - "title": "Integrating with Slack", - "path": "/logs-and-observability/integrating-with-slack" - }, - { - "title": "Integrating with Teams", - "path": "/logs-and-observability/integrating-with-microsoft-teams" } ] }, @@ -631,6 +506,10 @@ "title": "Jenkins", "path": "/integrations/integrating-with-jenkins" }, + { + "title": "Integrating with Teams", + "path": "/integrations/integrating-with-microsoft-teams" + }, { "title": "Octopus Deploy", "path": "/integrations/integrating-with-octopus-deploy" @@ -651,6 +530,10 @@ "title": "Semaphore CI", "path": "/integrations/integrating-with-semaphore-ci" }, + { + "title": "Integrating with Slack", + "path": "/integrations/integrating-with-slack" + }, { "title": "Terraform Provider", "path": "/integrations/integrating-with-terraform" @@ -669,60 +552,31 @@ ] }, { - "title": "Migrating to Cloudsmith", - "path": "/migrating-to-cloudsmith", + "title": "Developer tools", + "path": "/getting-started#developer-tools", "children": [ { - "title": "Migrating from JFrog Artifactory", - "path": "/migrating-to-cloudsmith/export-from-jfrog-artifactory" - }, - { - "title": "Migrating from Nexus Sonatype", - "path": "/migrating-to-cloudsmith/export-from-nexus-sonatype" - }, - { - "title": "Exporting NuGet", - "path": "/migrating-to-cloudsmith/exporting-nuget" - }, - { - "title": "Import files from a folder", - "path": "/migrating-to-cloudsmith/import-files-from-a-folder" - }, - { - "title": "Import Maven", - "path": "/migrating-to-cloudsmith/import-maven" + "title": "Cloudsmith CLI", + "path": "/developer-tools/cli" }, { - "title": "Import npm", - "path": "/migrating-to-cloudsmith/import-npm" + "title": "API Reference", + "path": "/api" }, { - "title": "Import NuGet", - "path": "/migrating-to-cloudsmith/import-nuget" + "title": "Webhooks", + "path": "/developer-tools/webhooks" }, { - "title": "Import Docker", - "path": "/migrating-to-cloudsmith/import-docker" - }, - { - "title": "Import Python", - "path": "/migrating-to-cloudsmith/import-python" - }, - { - "title": "Import Debian", - "path": "/migrating-to-cloudsmith/import-debian" + "title": "Terraform Provider", + "path": "/developer-tools/terraform-provider" }, { - "title": "Import RPM", - "path": "/migrating-to-cloudsmith/import-rpm" + "title": "Developer Community", + "path": "/developer-tools/developer-community" } ] }, - - { - "title": "Developer community", - "path": "/developer-community" - }, { "title": "Contact us", "path": "https://cloudsmith.com/company/contact-us" diff --git a/src/content/migrating-to-cloudsmith/export-from-jfrog-artifactory.mdx b/src/content/migrating-to-cloudsmith/export-from-jfrog-artifactory.mdx index afcad19d..ba705cf7 100644 --- a/src/content/migrating-to-cloudsmith/export-from-jfrog-artifactory.mdx +++ b/src/content/migrating-to-cloudsmith/export-from-jfrog-artifactory.mdx @@ -1,6 +1,6 @@ # Export from JFrog Artifactory -Migrating from JFrog Artifactory requires you to migrate hosted repositories only, since any proxy repositories configured in Artifactory can just be set up with the same configuration in Cloudsmith Repository Manager, and all data will be retrieved from the upstream repositories again. All the upstream repositories supported by Cloudsmith are listed [here](). +Migrating from JFrog Artifactory requires you to migrate hosted repositories only, since any proxy repositories configured in Artifactory can just be set up with the same configuration in Cloudsmith Repository Manager, and all data will be retrieved from the upstream repositories again. All the upstream repositories supported by Cloudsmith are listed [here](/formats). Hosted repositories will have to be migrated from Artifactory to Cloudsmith. diff --git a/src/content/migrating-to-cloudsmith/export-from-nexus-sonatype.mdx b/src/content/migrating-to-cloudsmith/export-from-nexus-sonatype.mdx index dcd85bf0..3ff49a4f 100644 --- a/src/content/migrating-to-cloudsmith/export-from-nexus-sonatype.mdx +++ b/src/content/migrating-to-cloudsmith/export-from-nexus-sonatype.mdx @@ -4,7 +4,7 @@ title: Export from Nexus Sonatype # Export from Nexus Sonatype -Migrating from Nexus requires you to migrate hosted repositories only, since any proxy repositories configured in Nexus can just be set up with the same configuration in Cloudsmith Repository Manager, and all data will be retrieved from the upstream repositories again. All the upstream repositories supported by Cloudsmith are listed [here](/tbc/upstream-proxying-and-caching). +Migrating from Nexus requires you to migrate hosted repositories only, since any proxy repositories configured in Nexus can just be set up with the same configuration in Cloudsmith Repository Manager, and all data will be retrieved from the upstream repositories again. All the upstream repositories supported by Cloudsmith are listed [here](/repositories/upstreams). Hosted repositories will have to be migrated from Nexus to Cloudsmith. diff --git a/src/content/migrating-to-cloudsmith/index.mdx b/src/content/migrating-to-cloudsmith/index.mdx index 04949046..75151d6f 100644 --- a/src/content/migrating-to-cloudsmith/index.mdx +++ b/src/content/migrating-to-cloudsmith/index.mdx @@ -48,8 +48,8 @@ Importing your packages into Cloudsmith should be a stress-free process; you wil If you are migrating packages and setting up Cloudsmith for the first time, you may need to consider other tasks when getting started, including: - Update your build tools and configurations to push/pull to the new Cloudsmith endpoints. You may have a configuration file for every package format in your code base, you will find information on how to set up Cloudsmith for each format [here](/package-formats). -- Setup your [Single Sign-On](/access-control/single-sign-on) and [Group Mapping](/access-control/single-sign-on#saml-group-sync) instructions if this is your preferred way to log in to your users. -- Setup your [upstreams](/tbc/upstream-proxying-and-caching), which will set up Cloudsmith to fetch and cache your 3rd party dependencies hosted on public repositories like NuGet Gallery, RubyGems.org or Maven Central. +- Setup your [Single Sign-On](/authentication/single-sign-on) and [Group Mapping](/authentication/single-sign-on#saml-group-sync) instructions if this is your preferred way to log in to your users. +- Setup your [upstreams](/repositories/upstreams), which will set up Cloudsmith to fetch and cache your 3rd party dependencies hosted on public repositories like NuGet Gallery, RubyGems.org or Maven Central. - Setup [signing keys](/policy-management/signing-keys). - Setup your [service accounts](/accounts-and-teams/service-accounts). - Setup your [logs export to s3](/logs-and-observability/access-log-exports-to-s3). diff --git a/src/content/artifact-management/block-until-scan.mdx b/src/content/policy-management/block-until-scan.mdx similarity index 93% rename from src/content/artifact-management/block-until-scan.mdx rename to src/content/policy-management/block-until-scan.mdx index fc1fc349..bc1bb301 100644 --- a/src/content/artifact-management/block-until-scan.mdx +++ b/src/content/policy-management/block-until-scan.mdx @@ -23,7 +23,7 @@ Please note that Block Until Scan is a global setting that affects **all reposit ### Requirements: - **Active Security Policies**: At least one active classic policy with a _quarantine_ action enabled is required. Without such a policy, the system would have no criteria to evaluate incoming packages. -- **Upstream Configuration ('Proxy and Caching' mode)**: the repository must have an upstream configured with ['Proxy and Caching'](https://docs.cloudsmith.com/tbc/upstream-proxying-and-caching#supported-formats) mode enabled. Block Until Scan is explicitly applied to packages undergoing the caching and evaluation pipeline within Cloudsmith. +- **Upstream Configuration ('Proxy and Caching' mode)**: the repository must have an upstream configured with ['Proxy and Caching'](https://docs.cloudsmith.com/repositories/upstreams#supported-formats) mode enabled. Block Until Scan is explicitly applied to packages undergoing the caching and evaluation pipeline within Cloudsmith. ### Steps to Validate Block Until Scan @@ -31,7 +31,7 @@ To verify the functionality of Block Until Scan, follow these steps: #### 1. Configure an Upstream -[Configure a repository](/tbc/upstream-proxying-and-caching) with an upstream in 'Proxy and Caching' mode. For example, enable a Python upstream with PyPI. +[Configure a repository](/repositories/upstreams) with an upstream in 'Proxy and Caching' mode. For example, enable a Python upstream with PyPI. 📘 Note that incoming packages from sources different to an upstream are also subjected to Block Until Scan. Downloads won't be allowed until all security checks have been completed. diff --git a/src/content/accounts-and-teams/images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png b/src/content/repositories/images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png similarity index 100% rename from src/content/accounts-and-teams/images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png rename to src/content/repositories/images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png diff --git a/src/content/repositories/index.mdx b/src/content/repositories/index.mdx index b0971440..887750f7 100644 --- a/src/content/repositories/index.mdx +++ b/src/content/repositories/index.mdx @@ -23,19 +23,19 @@ Use the top menu items to access the controls available: |:---|:---| |[Packages](/package-formats)|A list of all uploaded packages and artifacts.| |[Package Groups](/artifact-management/package-groups)|A list of grouped packages by name (ignoring version/distro info)| -|[Audit Logs](/logs-and-observability/repo-audit-logs) (Beta)|A log of repository events| -|[Client Logs](/logs-and-observability/download-logs)|View access logs for this repository| +|[Audit Logs](/logs-and-observability/audit-logs) | A log of repository events| +|[Client Logs](/logs-and-observability/client-logs)| View access logs for this repository| |[Client Statistics](/logs-and-observability/client-statistics)|See all the statistics gathered about your packages - downloads, bandwidth usage, etc.| |[License Compliance](/policy-management/license-compliance)|View and edit all licenses for packages in the repository| -|[Package Logs](/logs-and-observability/package-logs)|View logs of package events for this repository| |[Security Scanning](/policy-management/security-scanning)|Security Scanning for artifacts and Docker images| |[Signing Keys](/policy-management/signing-keys)|GPG and RSA signing keys| |[Main Settings](/repositories/repository-settings)|Change the Name, Permissions, Visibility and if needed, delete the repository.| |[Access Controls](/access-controls)|Manage teams and user access to this repository| |[Custom Domains](/getting-started/custom-domains)|Setup domain configuration to support your named endpoint. [Contact us](/contact-us) for help!| |[Entitlement Tokens](/software-distribution/entitlement-tokens)|Manage entitlement tokens for external, read-only access to private repositories.| -|[EULA Enforcement](/software-distribution/eula)|Manage End-User License Agreement enforcement| -|[Geo/IP Rules](/policy-management/geoip-rules)|Manage download permissions by IP and/or Geographic area| -|[Retention Rules](/artifact-management/retention-lifecycle)|Manage the size of your repositories with retention settings| -|[Upstream Proxying](/tbc/upstream-proxying-and-caching)|Configure upstream sources for this repository| -|[Webhooks](/logs-and-observability/webhooks)|Create and configure webhooks to allow external tools/systems to see your Cloudsmith events| +|[EULA Enforcement](/software-distribution/eula) | Manage End-User License Agreement enforcement| +|[Geo/IP Rules](/policy-management/geoip-rules) | Manage download permissions by IP and/or Geographic area| +|[Retention Rules](/artifact-management/retention-rules) | Manage the size of your repositories with retention settings| +|[Upstream Proxying](/repositories/upstreams)|Configure upstream sources for this repository| +|[Webhooks](/developer-tools/webhooks)|Create and configure webhooks to allow external tools/systems to see your Cloudsmith events| +{/* |[Package Logs](/logs-and-observability/package-logs)|View logs of package events for this repository| */} diff --git a/src/content/repositories/repository-privileges.mdx b/src/content/repositories/repository-privileges.mdx new file mode 100644 index 00000000..ea46fb21 --- /dev/null +++ b/src/content/repositories/repository-privileges.mdx @@ -0,0 +1,84 @@ +import { BlockImage, Video, Note } from '@/components' +import img_repo_access_controls from './images/access-controls/7777990f16d3b240b854f7a0cef6d1978cc5ad2c2308f935b28ed338db2db3e5-repo-access-controls.png' + + +{/* */} + +# Per-repository privileges + +There are three different repository settings defining user's access to artifacts andepository settings: + +- [**Repository Privileges**](#repository-privileges): Defines the minimum level of privilege required for a user to perform specific actions. This setting is override by _User/Self_ privileges when the user is the ownser of a package. +- [**Self Privileges**](#self-privileges): Defines which actions users can always do with their own packages, no matter what are the privileges defined at other privilege levels (workspace, repository, team). +- [**Access control**](#access-control): Defines the default level of privilege assigned to all workspace members (no collaborators) for this repository. + +Before we dig deeper into each of them, here we can find the different levels of access that you can assign to users, services and members of teams in a repository: + +| Privilege | Description | +| :-------- | :----------------- | +| **Admin** | Can manage entitlements, privileges, and settings, in addition to those permissions granted by Write and Read access. | +| **Write** | Can upload packages and edit existing packages, in addition to those permissions granted by Read access. | +| **Read** | Can view and download packages. | + +📘 Note that this privileges can be fine tuned per action (see [Repository privileges](#repository-privileges)). + +📘 Public repositories are open by definition, hence there's no level of privileges or belonging to the workspace required to have read access to its assets. + +## Repository privileges + +With this options, you can define the **minimun level of privileges granted** required to perform certain actions within a repository: + +| Action | Minimum Privilege | +| :--- | :--- | +| Copy packages | Admin, Write, Read | +| Move packages | Admin, Write, Read | +| Delete packages | Admin, Write | +| Resync packages | Admin, Write | +| Scan packages | Admin, Write, Read | +| Replace packages | Admin, Write | +| View statistics packages| Admin, Write, Read | +| Manage entitlements | Admin, Write, Read | +| See/Use entitlements | Admin, Write, Read | + +## Self privileges + +With this option, we can define which of the following actions can always be performed by users with their own packages, no matter which other permissions are stablised per workspace, repository, team, or user: + - Scan + - Copy + - Move + - Delete + - Resync + +Additionally, we can enable/disable user entitlements for a private repository. This setting allows users to use and manage their own entitlement token for the repository. + +## Access Control + +Access Controls allows you to configure the default level of privilege assigned to all workspace members (no collaborators) for this repository: +- Admin +- Write +- Read +- None + + + +### Privileges for Specific Users, Services and Teams + +Additionally, you can increase the level of repository privileges for specific: +- Users +- Services +- Teams + +## Effective privilege + +The effective privilege for an account (User or Service) is the greatest privilege granted to them via: + +- Assignment to them directly, via [Privileges for Specific Users/Services](#privileges-for-specific-users,-services-and-teams). +- Derived from their team membership via [Privileges for Specific Teams](#privileges-for-specific-users,-services-and-teams). +- By default on the repository, via [Default Privileges](#access-control). +- By default on the workspace, via the org-wide "Default Object Privileges" (see [Workspace Settings](/getting-started/workspaces#default-object-privileges)). + +When granting a Team or User access to a repository, you can select from the following privilege levels. + +## External User Access + +To allow external (non-Cloudsmith) users access to a private repository, please see our [Entitlement Tokens](/software-distribution/entitlement-tokens) documentation. diff --git a/src/content/upstream-proxying-and-caching/failure-scenarios.mdx b/src/content/repositories/upstreams/failure-scenarios.mdx similarity index 100% rename from src/content/upstream-proxying-and-caching/failure-scenarios.mdx rename to src/content/repositories/upstreams/failure-scenarios.mdx diff --git a/src/content/tbc/images/upstream-proxying-and-caching/cargo.png b/src/content/repositories/upstreams/images/cargo.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/cargo.png rename to src/content/repositories/upstreams/images/cargo.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/composer.png b/src/content/repositories/upstreams/images/composer.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/composer.png rename to src/content/repositories/upstreams/images/composer.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/cran.png b/src/content/repositories/upstreams/images/cran.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/cran.png rename to src/content/repositories/upstreams/images/cran.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/dart.png b/src/content/repositories/upstreams/images/dart.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/dart.png rename to src/content/repositories/upstreams/images/dart.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/debian.png b/src/content/repositories/upstreams/images/debian.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/debian.png rename to src/content/repositories/upstreams/images/debian.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/docker.png b/src/content/repositories/upstreams/images/docker.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/docker.png rename to src/content/repositories/upstreams/images/docker.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/edit_upstream.png b/src/content/repositories/upstreams/images/edit_upstream.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/edit_upstream.png rename to src/content/repositories/upstreams/images/edit_upstream.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/go.png b/src/content/repositories/upstreams/images/go.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/go.png rename to src/content/repositories/upstreams/images/go.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/helm.png b/src/content/repositories/upstreams/images/helm.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/helm.png rename to src/content/repositories/upstreams/images/helm.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/hex.png b/src/content/repositories/upstreams/images/hex.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/hex.png rename to src/content/repositories/upstreams/images/hex.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/maven.png b/src/content/repositories/upstreams/images/maven.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/maven.png rename to src/content/repositories/upstreams/images/maven.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/npm.png b/src/content/repositories/upstreams/images/npm.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/npm.png rename to src/content/repositories/upstreams/images/npm.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/nuget.png b/src/content/repositories/upstreams/images/nuget.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/nuget.png rename to src/content/repositories/upstreams/images/nuget.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/python.png b/src/content/repositories/upstreams/images/python.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/python.png rename to src/content/repositories/upstreams/images/python.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/quick_configure.png b/src/content/repositories/upstreams/images/quick_configure.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/quick_configure.png rename to src/content/repositories/upstreams/images/quick_configure.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/rpm.png b/src/content/repositories/upstreams/images/rpm.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/rpm.png rename to src/content/repositories/upstreams/images/rpm.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/ruby.png b/src/content/repositories/upstreams/images/ruby.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/ruby.png rename to src/content/repositories/upstreams/images/ruby.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/swift.png b/src/content/repositories/upstreams/images/swift.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/swift.png rename to src/content/repositories/upstreams/images/swift.png diff --git a/src/content/tbc/images/upstream-proxying-and-caching/upstream_formats.png b/src/content/repositories/upstreams/images/upstream_formats.png similarity index 100% rename from src/content/tbc/images/upstream-proxying-and-caching/upstream_formats.png rename to src/content/repositories/upstreams/images/upstream_formats.png diff --git a/src/content/tbc/upstream-proxying-and-caching.mdx b/src/content/repositories/upstreams/index.mdx similarity index 96% rename from src/content/tbc/upstream-proxying-and-caching.mdx rename to src/content/repositories/upstreams/index.mdx index 981699a8..ec3b5904 100644 --- a/src/content/tbc/upstream-proxying-and-caching.mdx +++ b/src/content/repositories/upstreams/index.mdx @@ -1,25 +1,25 @@ import { Note, BlockImage } from '@/components' -import quick_configure from './images/upstream-proxying-and-caching/quick_configure.png' -import upstream_formats from './images/upstream-proxying-and-caching/upstream_formats.png' -import edit_upstream from './images/upstream-proxying-and-caching/edit_upstream.png' - -import cargo from './images/upstream-proxying-and-caching/cargo.png' -import composer from './images/upstream-proxying-and-caching/composer.png' -import cran from './images/upstream-proxying-and-caching/cran.png' -import dart from './images/upstream-proxying-and-caching/dart.png' -import debian from './images/upstream-proxying-and-caching/debian.png' -import docker from './images/upstream-proxying-and-caching/docker.png' -import go from './images/upstream-proxying-and-caching/go.png' -import hex from './images/upstream-proxying-and-caching/hex.png' -import helm from './images/upstream-proxying-and-caching/helm.png' -import maven from './images/upstream-proxying-and-caching/maven.png' -import npm from './images/upstream-proxying-and-caching/npm.png' -import nuget from './images/upstream-proxying-and-caching/nuget.png' -import python from './images/upstream-proxying-and-caching/python.png' -import rpm from './images/upstream-proxying-and-caching/rpm.png' -import ruby from './images/upstream-proxying-and-caching/ruby.png' -import swift from './images/upstream-proxying-and-caching/swift.png' +import quick_configure from './images/quick_configure.png' +import upstream_formats from './images/upstream_formats.png' +import edit_upstream from './images/edit_upstream.png' + +import cargo from './images/cargo.png' +import composer from './images/composer.png' +import cran from './images/cran.png' +import dart from './images/dart.png' +import debian from './images/debian.png' +import docker from './images/docker.png' +import go from './images/go.png' +import hex from './images/hex.png' +import helm from './images/helm.png' +import maven from './images/maven.png' +import npm from './images/npm.png' +import nuget from './images/nuget.png' +import python from './images/python.png' +import rpm from './images/rpm.png' +import ruby from './images/ruby.png' +import swift from './images/swift.png' # Upstream Proxying and Caching @@ -76,7 +76,7 @@ A good approach when determining what priority to apply to upstreams is to ensur |[Swift](/formats/swift-registry)|N/A| ✅ | ✅ | ✅ |

    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 mRXs6 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�kCT5BLQ@{o5z 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 >=f9k$;@r|F>-eHZ_Ai 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 diff --git a/src/content/getting-started/images/workspaces/7ea55d80fcf7a86db156b47aafb9c5e0eff26cabb5bb832fafbd7c0fd2ade07f-settings-workspaces.png b/src/content/getting-started/images/workspaces/7ea55d80fcf7a86db156b47aafb9c5e0eff26cabb5bb832fafbd7c0fd2ade07f-settings-workspaces.png deleted file mode 100644 index 9acb173b171bcbd083954656ae752dda4feb8266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 371267 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%0APYA!7lxy%|B>ZM9yQ~hjYFV=Xq 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%0A$H^pskC2p9z< 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

O_LQ@`(`)32Y+uUcFqUbIT-6V$8Ocd&fUj zF@^gS(8fuHQ%?Djw!U2{Kh3vweo4s4CB~!5y+UZA2sy~YrAc&vU+T0;J$=S{`r}s_ zE{tn`@Y`IDfpYBJ3Vv)lvB@nt*??+=%YNtpx%5tG*D6|YEUGwf$zvCeesZ}A;FHWx zJAmCH_|P3p?QakArhsWWf(koPQrY)t$5Yc=Ht&tR2gg{_n&RRVEQ{EINC8N`f%8u! z!b%Bn%%DQgc=Iw6s%zUjh>pvN1)gVv27v1r~JMefkhf5G>?XaxTj9Tz$RlzbqiiDU~ch0wO=v@}?q% z+y%+a3NxusuIE(MTd{?1KbMxk?%zu4SdMI|JP(cLEM<4A(pYT{4RoJr?wgextVC*& z@+v%Ru&fMkqA)k>7bNh(%1XtcuGpmyUl(YZL^mukW0jE7-~zH}Wlnu%gbz36PMQuoO@S$owb;@1lSgr7->MT(y<%8vW^!W%%+3x`!$-iD4=!;)ALCOYfo zeu~$7vUcwAmD_Pw(acfzq}W(FSo^MOlbH&V`~M**a2g_(?*|5!=eQzWLf zNnjYVdjUAkswAN{expbfyPh9`sRhBi0jSkVVEWcxKd{t4@Y6BAt8$m{Wl%_DDozH7 z;@6QIZDs#if#m^$L1nm0tZeQ9c;$J2>&>NWVGF+T^P+FqVLU3@W|QGT;)QReXSH;| zsSCrQ*Co;vX$R^#)8jGMQ`8|Cr_+2>j5>BS8o36<8PSZ9M#DO1@4eg-bzcASr{u1Bw(vM1ynHlcsxvlQmuy^GB zr;%+w-``FU5KyM(68uN80pQAAtPErER@Mga8{0=x$9W^*qExE95O%|6>9U5^t}S84 zhAZ|ux1LJxMQeSepKlqiG3|n)&Q~Lxi-?CTbH%KqU+^d`$FGM)Vx$QWb|C;482wk$ zjs1^i-n|n-?exHpKQ@uh!xgP+$wFI|i;vJVZ72YbCkU$s2jSfFBNp=%`~eQq;|lrA zDY1^!?GQ+?pMvgN= z$2s)#mIU=!njVW+(#1b9lpR9%pk&8aIifwhQ*7tSsDgtj<>+3nHs>KCfS6$t0Nk>&SykJB5=wHn(g?Bl`^JEUL8m03t+<+@>E9 zD2<*t_Etus>iVZ1F{>{wP>yN?^&hK-Cwv+OMdXzdL%pnd48XBiqRBmgm)p-o2eipUHh1m-L9-zJOPY#ah2 zxyyu(A>_lX|8i^e6UyAH(nvLR`k|_uk1Iz#Yt+qJCOnWv@^K7L&X-#2M@P;cb}c-a z)u3tLEaw`P3(Zi1XK9tK+XVM!d?G%q8Zkp(g_@5LC+mp);^{IVd%2C*^Vl!SvW1EI`$wyd4Vm>L0+vFaubbdDN{4D&%DG^5j zp~IVD;I_&a>V)MFv7Ysmx93}=(81I-j{ZX6b~z;vF>@I`ucK0pF7YXSE;-?$3#Iy8 zhTKfD&~}{wG)dvkW%Qcs--jS@DlGBYv4icIz#-pvxGwl^)uZ7$Bo4=XHYK?*C8t znI=fC>0ij?EX)oXaUS1~IfBHr-OsXu`d-2eK67ebtp#MblOe_v-1+xveKN0bO+;Lrdz0FC0%!91W2Xv{6=)QNIz2SNX%LkLM zjpP*cmP1i7zBDj?{A5<+8xg4gZ>D)QHZlivLzG0&;K1u^`7{V6c8mHM-QB8hvA)TG z+k!_a*k1ZV%RvHNXGkHn;1j1)PUBAOE3B)q<7Nb2k=r7{^WW1iS&QTVqy!YzoJ>W~ z5Z>aD6JZgj6$4p<^pZ4Xw+*hmF-kB|Ike1%Dr_{htS`~%{NC-W#P|M`@Hbz?wl9~6 zy46p54I;to`GW3p z=->r)R^X!P;D^Qn$!0JsAgaHm`LyC5pa-l`! zDkIekkIHfWeUi=^!T)5MPmZzC_Dq^LYYzY4OmkTg-k1gt!(jh2L5aHC`EN7I6p93P z@E}RcTx6Hb@YHxKL>XXZM|L?-wR-*_OirB#4{-XfWbK77SrmQxnM>g@e4{ud?>V%{ z#5Q=o)zSFicDV{kDHA6D`oT!|fc!ss=7xNU_JWDMDOKZDJ#mw=R@?cZtX2~assTw}S3+gvB1C7FMeXUp_)zg~Siou7u_|<^wn@vxVXOPkje^v!D+K zy@7ii!XDd%YA~XveKm{Z6B69n`f&T_tNaV}h+UeBot2_NY~K_*g5>~*4 z(ASsUXsyJf)%u+;nLOW$?)mI8DY;XR&qvA$9#Zh3j6qHON)@wTkv+Z;C1Ih;!!z4; zkd;$$1S|`FrK{c|tX4=VcsvE3u+F&!`~HM&3H<)k@GNU0iRBtjtoZP0X-wHdB-klq z8<9HwG!$X-A#dpPw80?1Ta5P;?RW)Kk5Q#5{g_Uy-KJ9}_;(s503&*Qly7G|Bhve$ zK`JOa#h)Y5!wgHmh}Bpq)mZ&pV3lpHdX(T&bfjcBHt~q~d9M`m+6Xi-2uN$U}bah6qa-4TcS!tY{2gf_;aIY`d&6lc~F zm>%;@HrsFVBdJ`OlsN?Sk2@2weQTAg`_}eVR)YAylgi$o*miq?r8zivx}*Q&f{^$x z7ep<5oG8#yIOIl~72plM#Bl>Pl(!_Fn$(YFsFKf_BjjLeNjP4#qsIEwoa`Ew(g#-Z zKE1>pOk}CpFgGi8@KtAEXjZ0shB>Y#Y%=j7)XKl4K#zQX`6yL-oRfK3Y{R5^91!(? zveWXGhF2(>)ClCbVMGv*_|Y)l8f{Dm+am)et9b4C&$|5Jp=5{y0?%aHq}Zwft2`$00)3t3Zs z6E5`1pughe&uAhjQp)Dp34kQ!BfMMj(PK?QsaksVN_{uT-ZL4J5DC>Ub_-+tx{|?P z)btAc@2nE~k3ccdT}T`0>4Ts&c%?H2swXkoL2|T_py9vC!dS*Vx}y*!z;2^kS558z z@{bnnmMTUsjjPIR{BS|sis@2nf!z9VOfECiDbGeD*~?8vtFNMD#idUAm8+!7p-pJP z!Wtr8AvD>Dio91?HqUsH2xl)Q0SUF=3sRd1RxEZf*Q!k9w#%8BZvjpO(x=4)m18tA zL#={?JEqcrv!e89+PDVz!>%z4ILTSh*9)nH$=kigz`;$x~M`CN$kNUD8oC z6DoHzsgnzoU+aS`Yx1IiIu)w6aN~ShJO8%UuM}E(zlrb!cYC|@MVC>WlN4-eeCPcn zHDmq%V}Qt?QMvm*)#CtEO7Ixp!)btbxf&#!F;PHTr^>zo#2rCA^1nZSU_(7}s zuQipQ=e`#z-=k~W@C+xUCPEzwy>CA74sNSGSCBM*Z|vLl`Q|n1sKM&(!`*jz6Nwcg zP}7K6-TwEl)*x;|y$ii1=%ZKSBa+;jqAOhITAt^jM^ss=9$fKN#wDwXUP$NdV!V%I zfWNQkfP?QLXF6dCiP%;5#Z?>1odv76oK=J&GPDfS_H`?CuCVoRUsGzUCbb;x!#A(k z9cz-m>adnNflE=_y_0^@P!OkTvTkTAKW@3wB0UG zkF>I1JYY+k^N}y~Qt(fZ*OmDFvSmO!HOM<)HjdryZusGCU0na2nnB3C7Ih4-I+K2q zs#_t)(toZQ<3MB4gtWqNAlGp)z6s=o+||KeGd=-w7#G;+CRX<;a{Ori>PZ;n2@y5se#5)F_#N9@fWA`~Bdi~PlRVJZ-VEdZ%7 zlLPtOD!B+9r1`O#y-?x;0(`$}Q=aYOER3$8sLB1NbUL{$8wVkjNGh0}36{8)_UL}= zN=m_e$Y=13h+N-R4I1Ai$`|F3>cXdZikM(zTbUq-8SMO->?%e$B0;JXKlD^KK12KB zUjG|$VW>OS+Nm%7F)3uuVYyU)(qQ8n9J~}La;JD^8e<28=nmZ`AZelsd7bNfIYM@~ zIDj;5v&OrIEFZRp_485IGa{=ZG8EN3D`#~EDONh>I5q^}#E|n#TJ4L$_Rf@L(96Nb zTXd{c16^zS#}!AyixTdn61&sKIV1;B^0vx-oi5XPp2;DP)-D0|NT8qUt=qGZNqTax zf{z9FaD?CNn*&MuZD=bjj4QwZTt5Qvb$3_m9Ffu~#cr0Px}be%_EZS#w-X)NNLBqq!$D zVznR+GB*w4X>I$OdfHwgFp`sPN-Sr-|62!gi_VCcSoG|(> z@pNk~rwU!O|Gh-fX1snwtQkG&_e4E015CY9=DJf^QTL^#1+m)V^&^{&GtaV^jR!;i zN*vQv8xJV&$P${=8YbzG|0X07+t(z#MP)H8$k6;=5Kz(9EHF9M!5`7_-MscZPI_$- z-mT}p&Bb=)DYrN*O{98A%+eN~xtZaD#LBbV>`Gp0k&`9LYGVP6vV)_+9Z*DdTpApNri0|5txibn7-gK2Bj$$wa9?mb%0O0&h<(sKH_I)XjalRIv@5) zm~%%*BeS-z0_xz_n5TqqY5XZC%$&Lu{kPp#!m9#Ih|`!WD>mG`rY99ieRRb(Bj>qV zVXMe<-RPaa-Q}M3`LLpyP3gGc9{|X@l%`Fx zbv`T%k|r`}O!Sqx;9eRp-^qnpXptRww0`ln zW54ZWBuov@?J(&FkCkDV_sIVaD@5w8mw3wmB{C2rb%U z{pd+2>P%gzsV3R|8*sem&`zpvyD7;%{u*XTVH(qtHeyK0^l-U6<|eQ<)hI}x+{9>j z{cl}pb_5bSVO+fAmimlx7UzPu^PY$eIqsUvW1rLtN`Qb zNlr6e08NVOf2I;fU#SvhZnlhf9(K@yQR>n=kO78{YwM3aRf}KT0FBXW(61s)4Z(q!ASXJ zYwQXtEdOx=;5oV&fIb23#Ds2(i%?&rG<4Pf=`ocpzw<>xiIWN9j_-S~`D}(OIt=kO zd@z!a1C`+lE&O-hPC%r9k$C+pBgU?Oxdao7pS%S7FG5PEMrWgS8mIaT=mFefh@`Pq z|8WC^JbCbU1-R#e@4i%d0C1xjMF$orQAxu}cM;*3;0Z z_aIX}7P6%DSgx2m?L`BMvE$}t`yQIo$2;8}PPfm^n%W03V25ulp+>L*0VVj&Kx!mu z$J}s+Wt{hTP9s(|)=HWni!WBE28*?;gRBh*ifI`OIky5^hQ8sI|{K>Gh`0%%Zf z$pDyBhR;6n!u_V)Q+c>o1gQjBhjh5xIQzE#8StxDTRPXdA|bop!uQ@=8+l$Ogzsza z7M45Va>*?CsX+?xI)(?!!}`({STKNX2ddYDVm7S zh}44KO%12u8hmq!Gh0{;|BB_P@Wm`D+Fw0!YrEwVL1qRNtDslEPX;I{_>Q*DLExOR zF$ePA4h-Ik_Pna3`_`weK{8;sfwlCI5~g$9f)i%VeQNeYc-7X3?a~u2NooY7esP3J zQDk%!J?JzuR5E!`LI4r}+Z~MURbAp0X2^WU%ALCB{Fd)fi6h#=4-Bv~G-v+i;5Q&U z&d_Jcgj8^pdDkfTZ3@>RhTdr-mW{9p@jqcWRQU|_hVr<@yBRS@Y`5$Ax;0*@)VR00uy2;VAIC0EWHb}u(%ieV)eW#6O|1Bsh_$bw!f)= zp%pD<29+ne#Z|^j|0BdSLJ2ur-SwjfZ)Yqf?y`Tc8ID}!rQjjb zwN@=fLcP}ZH6LnV^aDiBOI0C_*{=V^O*{0h%LMpxCS#c4ElP@SAr^fNLC}?6CSc96 zu8ItkJA)lxdVa1hFm-5VwAUlk*sfXwF1hck`QN z*R@ly3tJUZl2Gf^FifZC<=$(d18l{en5bU=C^WqyUwW~+5|M%q;JnLb!8vwp!zJ4- z0#hq6LY<$SdXaTJ^S(ck$t8!|%zQvjopO{2J!`Cj9Eex{(#G|FW5U#ki z0JqOXzpx+ZSRMNq3zZ+Iz5huiT+u$eKd%+Ji72uJcskH(0lh+?I5F<>dfIIL z-|O&pZ`V-&=3c{dA2lciUfi7}wc!JZ%qqPrB|rmiRN&vF#C=|dTg zB0&gR1}iumapM;k&z5Eh+<6hYzXM%4%Z$P7(^S&AvxNOw!B?2V*q^ZKr3No)T2cVF zJX?u-1AjzU)+tDIs7d0SYh+>?vWHwuPWw4!CTCP#Qnso+WuMB>v}3-w7y<9H!Bhn4 zc!hN^pZ_A6o6wF>UzJe-@nTpFqwM_7X|)>6h;FfD!}^j;(e({Xwex z(TjVl!#?*pNk4K|*Bt$zPlb-jC`M_XX__-%%Z8n;Gp)9|U&~FqRBP4g_8czML#W|M zS0%x>sQ6&+owGlxlo?tS6sBs;(rng0IR&~q6nx9qxTgT>{%V$9wcjwy3{Eu=qLs=_hG!;6&!X57BB-n(lzP%OGF!O>u#C{amu8*E|F zcGmOt)V=A=lqy93s;B4kJQ(wJAC>6AXK{ugY zOMZeE%aE@AmYPal0OZ921PHi!jxwIy+Ha{lXsO3JH5Kg&^etN_=TVJcgWu1(#b_2?@X8OMhJu0ebXNy``inyQm z%Kh;fAvzoY2)&PU{Hz9rP#O1d&JG|>NSRXSdW~xkAu{JdvKl3@tH=e!MO+Q|l@*|< z5OleBB=BQXP?TU#fe21$bg;bFOI)|ZNsi7QjH}!kb&ia%*6l^P&1TcXnTg|t8@^-3 z^sfHow*Gh3J~B!^3Uv&jrZ?FsTbX66w-shDZ^E!@xdMh)h`-&Pqs`FfX&KS>$0UbR z=ZrG;99fOaXNQ8li4N4rCs0fHhvE>`{`^KMw2>mCF9PzhSB98i^W*vK_*GE@=8vK= z$@LX)9atF%s-(2r>Hj{L#n7Qri6BYqe)+(*sygv;Tylw+udW;eP^W#TCl4~d(~5gb z7KrG|?e$+$x3i5RhH6aCyPox|up}Hje`{|ii66eL<$p}|C^m38=MW2Wcru;7A7lmj z7~=$-;%m#bw&REM!pExp$e(OW;4DK857{d4ICjtQIDWFwH~%J~d54{wKAsUk`iPoO z#Uwso@{jaa5iZkuhnA$^#)9i&nn%u@<3{@$RX!VJek}B-*OVE_p~&7-wf&~qFRU>? z{n54CDQ*RIhMc6CK27^vMzNjFX!V}6KqR@Tv7K8S)XLwi#YU&09w#$9?x?oKn+b7X zuZ7kfPLs44Z9k89txU_uyLIp=p?Rz#zeC~FuElY-H0^bbLm6syb4U?c%JtmW$TV1_~(~1zpo{sUul+8-T zr`$W$xmOHagls*?LW>;ecxcAKNE&8$-ND?cI#e>l`^j}tsizI&?|J^g?cCujS3S;* z;w#7C$hGJMl18W5IXQ;OIUh|gSiF6^E~Y|Zxe_19$W{a24atO z#^V09%b>ri&v}mQBoFQaG}CXO`f=Vg>K*?`2lLm5ih$c=YQyc=3LgK<4?p(u5jhLx)1QG;Rl%B(HaSAoh2}jBwJZi^N z`SjW>Y6xLQ;JnY-4aYlaOVe>C0}m8ZdcFvybNT*Gm%r)Hf*55j%K4%ySNz6Q`pWbE zIiK@i=G%>aJrYgT0ry(`6A|5`DXosX9nl%S7o2|kAvn+(AMGq~r7ngEgdlDm?2xLC zbDUmePI#9I%nPhj*MSuSq^(S1Fk3i$)d*sHA}Jj})9Gd(S(kg3Mr(gg@P#aMoT8B<@x4%<{Zvw5|pv^?l6 z@pGKUM5`7#hxnHoSVKbVdaaS7=e5e}s7-c|(<G z&`JjdC6vc|5RvLmg0v&+@G<$4sac{PYEeaBDC4j=_EsvQFpN$aN4|{Lb73bElT>>G&-Q6w0AvjbB3GPmChY;MQAOv>{?jE#ocXx-v z-3xc;tL*39&v<+EL61J_ll}`F)Z$+Ansb4-+xVSN0JkU@T)*q(`zoUv=MtSvM$S&3 zy~#lhGEhcy|FG|&v$MLkdGJ!4>6WaacQ?<(-@DRPo?9%l z1^|fz)ep;^DF<>^8cKvv-fm;|aTIk^?X0{QmaUu~ebBph%Vo_txm}jf)=%y~X!iJn z-&*x-v_}ayhkYc{UWQ>0^jlCrUE`&y(G~N$)f+#}{TWAq z-9(WH48mXM^dXP}Y~2Z@Wm;cc<6LjOypd@NLS_9CI=uktfWCYZh$HeWbb8^2eE?)C@hR<=MMbC2vY zOreD7cCGKQZ&IIdI;bG%=LGn=veVMys1`l7Tt{s@GJ;Be7)K8C=*l=!X;)RD6D`=JP$s@y~jvK{5J!t7kvwS2&K!_xk8DY8ukwmZfM_Tswgy{yuObA>-ln_kokv7~j-}L)#sZC|FoGg(r_1zj176Q`gz81M%n2^*+R=`-e12xvraK5O- zNC&+2K7FnLILz;)43kZ6k=>r;o0bLLvj`*dFu0!r3Q{fLXoISiI1<`q2+L6>EZu^d zAA|W3exGE<*z=S-j3=KvcdTQ3wEHZIgZDyBo_hotXt6e2R{%0TpS`<)!77@_1{_W8 zO{}wt%jF~;!fNL$A=U6gJvyfVU2lGOk6KnS*YoP42l!Ih;2RPQ-2&h7st6l6J`&KM z!aUb9Ucp_R{f0q8`gLqxDTdWWg-;0Zw-Jn@-&{v)GmSLn+sHG{w|X&*kP9!SmMU5H zJUR+^>{3FSsBw!pfr1=+ckkYPoQ9!0W%|`$Qhtxy#*_@G-d?y9x}6-V*%y8=PV!?KUU((bd!TRZ_ZCXJU#4Nm43ceIV4?ER@y<`$ZZgvSKs}xBKs)~L1L3O zdD)r&OaQ}o@%(Bk;oUALP--lBgK_2d7WxA*7IHf*dA*mC|JFLvyBPRrmZ0o)9m4l; zy{s8{!mM#U_8L22*4fJVdxPO|gVct!^jZ>?AiR6{v!1GsNS-e5yT(d*h2(gd zWzfqD?*o9KSW^B8K=g8-`C`?Qe4W`nI^cm5#<2(HKY2ni!|t|18$g<7v55&iex`!> z1+1r)UE39DVPxffITJ#tb3c-%{cRMADq8=Ms<}VlBH9nrx{;iZ`bH>mT=1df3Y0*|Wg@ zNM4GX;-4Z`Z!H98tB84$JjHSb&kgD>9u3Fr3hvn(HtYrax*EaWFCETg?zeoVR_91m0EQ%dijp^1I00J6A*(l63Ka>f<|eg3a&P z$O-v<7;JPpl5>T`j20tGy!e`IkTVD61@|L+qaoDtWJBIJI{VfQ?tl-+#R{-W%-(ScVbiu);( zrYY0Rw@ER+!#G2LVFJDMo4B)TD3^#m*f#B^Y29?tZz-)dSK4I<@9eM#zIA+lJ8|k% z{6ah{C&)=_mDEkgRI3+QrP|ltQM4WvD;GnOkNAxY=xA%`{6BjONvkdefmQ*RXHpc= zcvi4(5BbBkE(ypP3fmT7yJDu3q|vwT)v)zG=cwf!#su+&cD_Uay&%qAUjms??8 zJ;zc-L29@m!`Rbgi0CtoX0VbCZ7*%x8^!f7oJ%*&@2g3W6L*^}o^Zmy)Yr`w74Hr|4`# z*A^1)f7cee(6t53(KioYi0u*87Oj1+1oBJ)c+cvn+%H)*jk-i%M#@~1R4-`1w%eRg zrZ4T`cT9TQwd8-s77?p2u9Tb7gG*p86@DZ+3v9N?$l!17MXXDpS%#R ziWE+TNq2IU09~$bF((+!F}TypD6!^4p)z7*2wB#|LA|Zh=0vb@-p5{>$u|Y8;uagd!FQDkTtyx?Gmgho;2WR0Y`pojAGvD6zreW9}b3fZU!w< z9(mG>h0u+K+Xu6r*i#3s(aA`O6bCw_U){AlmR6f7qk_LQ*=c;3^AROO)N!PLY{XUn z7^RX;b5LBfg>$-WDohTMc^8}@w7rAWZz)qydR3c8ecUp?eA))EP|~Br-BK++dlJV7 zYCO%Y-q!|tNg9x4b}xQavYL)4Z7^cO;E1pK@Rp&F$0;xCz&Mz;iiYbCO>8A_;w%Mxfk3qmZB;ykEI)wfS*rB8%1+4UP0 zMS?Bt7T`<~ue1dzLd~agBA%!HMr)hE8B2e zf0=8lAXYLxLX6YH=0yLfBEt4yRtwAViC3b<+H4sxPjRpnVjs^sTr?jA@j!j;lhSjO zpNRCg!R&Lj2mTDZTFlG?oAagF`Kh$1h|BQb_NE*>Rv;i7&3+R~yd`yh)f73`UqaKP z8*iRxQ04AR6D)z)C-!|C*;ZtE^uxcsyY5%{N*2rO4tSe@>FxXIuXM zGf5#~yX4hH-j=pCP}Hp<*nIGfz|bP#T5k_n7UZsO`@}?a*`#me+P+MeB;WpZV>Vr( zRXl^N?E5YQW^Aa3G+{IA4*$b~6fC>gaAm$A+Uikes;v4(n8Ug?H(48A!-X~sPBCq!v`^fXJQnZe406|M~L35Fj8%DV%Zr3(F8dYG?(r zlJru^fpl8TegU+dXjnhsi&TcTZMb|U49^wPuyA;fykRkOC1BM$8|OSO)&MJO$#<=C zL1&rQ8cWMgf4Qkth$LZOHW+INmmrqgcRRg%zk*-tS1j8-c^ws*bQth$t)~etPUZv< zdlpwP2fH<}+8^Eq>L-ih==b9Mf`-X=J{^tr+^6}5dm3XS@$bCid7QIGbuFL9`J{D) z6EY$mw2Zv_IvCxae0`bu!YF?Ed{5z%|GY#IxYi!hi} zFx*4x1NKxpYN`uS0=7~0x9qB;AM#i@OZt}yZ(}aPl@V8qd~KL$1q)fVzr0g_0CX3! zZ7%jY_HV0~+z%t9WAm=IKZG|h$d32}GNd<)*W~_Z+)-=~OS!s)I~*PtJ(PFo^EIQ^ zm?>$u-P9F-KrcJ8eIb8^eXJ0jmb-GOU5xb42#&Vbn${Y>*s=B@lxWqP3cav|J&wr? zqfa*iML)D@R{VK`net5TdO(j6d#b4AQ3tuueK1FCl?4@L1bcLKNB=Gtj&Rvh2GrSKZ#SZla9K);gtXN(O zSKr#M%|e^f7urqs<$GEfXG|cv@oUOLV_><#Orh6<@CoJ>LzV-bP_}j5M<3SDK)|nI zb2xMfBj#t(_rU&@10vfp8E3kc#UvN<6Unjt1wMMUrPvift=HfKw|U}DZQkSY3qPG! z{&?!LlIzXm6Nf9fsEhvcLr79V5&VTz9e8-}X8e2Uf|o)=+8qS$={&KpF8B=y@}qXYOr81QFkOy2K@+OwRp zDe?NB)|1f0!j}~GFGZhAgAPBK(4#V%1&g8^<2uTS)FX6pKgUSRzq)jALVi+qiciV& zE_L;skJ32cl}O%0FB1~9a8!=ygypz&d-~s$%RLP3%ZNT4?q!W5)OCdf?C2c66@Kc! zQG9A%8-U~b6_;(I7$U|M71?jlx6Bc_m}f+)nbC~9dhJw-;II%ZQda<-QAls=sW#|< zDpp>3|IR4dpfifPotL>AI`7T*KKCUcrLD|!GyJxIS~8!DwWs}QfYDV}}G+2WUDbRFsc5xi??IbrI7mYzMQqGcZvAag4u$3=!V1+Ss-lnKf3nYdkP!#`$ z>}#T*pP6XhlEzR#%03#l&8hRc^X=&0DVpYvaPP~N>F%XsAB{G23cf)MBf3S^0SAiU z#qqN?&-^eMirxL-{Uw@>qs*R8T@3&ydzi{_oZp;=;c+Hu^#=uChI^L+;`0s*C|*h zhiwdw2n=YyxcxCh_I^y8jg)MyJ@>vcgE74C6b@h4?RIE&>7w6A-7TPk-aipkoyI** zNUUUZ%BD3h-p=rlSviVySli!P9-(rNKk!7URL0nbv@lkHBtEFwG*FO>oImodj@TZm z>8CcOrcN#Wx#-5lyX(0e#>~idU5?XtZ;S0MS$hZpC!MmownTx3XPWc76}vR}rSv%) z@IGC*uJh9=v^Y`#>#sSkLLh>jxX8~a-`hb$yS{;f3n5sL!U;wJ?Thz!=@Y!K<;Znxhcevw)V%%N$*BXhz8q|@5}Y)lVe>1^<(36uI%W4&JOlsdoa zGO~#u+y@Zsw$8V1dBkJnKg5}gG~&1IiP+LnZx7g2&%C);9W0s6qB&J0t{lcW^{`fG zEYLZRE&m89`0iINld9AB$&A~tPsbD)Et_j&S9s-3-Obn{*Gm|;b2+$aCRNqb`TE-q zy(>L$;rvn))^gxDk)A#~s_2(v(<43J05p>_nFtD5**lur(Shep-iUDRmB&9H*CxI$ zit3~M6q^X(~f+;_^S?eM=AF%gKW*>hGgsI%tn1^8vF)xIVgK zZ&xMXz=?MB?LJip(uKJ{n8>DW5yTwQns~>uwqG-qcrX9}(I3kFMed6URR-8T=l&^R zxe48{fc7ZUKJ026{nn8lef@tX_a9%+xiTV4R4ah(PqVz4FB_?A^gZ{l;Q>!XFAG$! zpaA={sYL^dmc!gU8jRj`S|+aV$FV>~0{u&anuEQj4X;Cw3SDE`a}i1%Y2n`omF!1} zw%;4@&+pgm{7G}45KdS0?5+6d_l$)?IQc}hqBm)FBEOA3wniY*bf128xER;%&E($iR# z-8cllZpb6G_mMWjq3~RmNi?VqNhxWi>&WhHQ-1O?)>en}=bCzSH$v2(T1MCxUA z&Jju5a1+0&3q1x14?_v1!d&w$dRaLb91uCsu?dCd7Jjf!5(c425>DQ7 zRM)mdvpU5vkNP_weHWI&?&sHN!9<8AM5)jm%GP}+BhKQ<9<%d^Necqz%43*Ad_oc?x(=_Pa<1` zOV6rnxB5}kY9~Tgk0K8Jkhjfei{nAGQ%-B09)C`kT|+(M%alE@RYcA`GwpZvYw9B? zUD#ZufS{9*wRC-@ZzZ?(INe0BD<}HQv#TE777?do35ce$_rAFsXk{YUe%i(-+Dze| zo@ub&t5!kKKo0pIknR<8T4US!IE(yTS9r&Tswd;1Bx9V=Rw9wBm z?Jc=>D4KBhWJCJex2QeaM{ZzQzdBX-XzW?h%oWC9>l&9~{}Omf>5-E;gQP1XQtM97 zi*0bv(N}-^w)T0i=#Ct zgZB-^6eJ#N^_tjr-ayZ-RodS`m6FrgHr?B{exc2FJwSqa8he~%B?Q3$_&1Yod|dvK zyvDRCTpiw557bX5S5sam24IaItxmjm?S2W?_0Z0csmnJhg%<_Y0La$=))%Nv066L3wbl5JxNVi@NedgevLq79gk4Qj~KlNa$ z5Ur7}BED{i6an4$G{4gWFB`~(2&ehbZ}x&_DcrU*qg|RMsS^QLV+u;wsiKry z6y6xr{$Rh$;qRqibFKP5Iiv0Y!!vpvFU8@0`CRP*(}8q`OCqEMyB^Yul|+* zpZoYJeC0UoG6ctK9u<4PmJf#lllVmOzGMB?8d`MQ8W5v3N)Z@t8msU?8rsEh;fzfnH-TR zx^MC}7!K5e=FFGkne|`A)%i>Pfzah!xS>8ZjFib?JfY3MG#MreOg*!4cHQf~RXMH? z&X2WrbRl_rV9AN{#-hm);`iKRyz5TOH2a(ie4kbKFHUX`HuZ4@2A5z9py@k&YC^sz zk9QZsuV_RyJDQ$+S*KZ-9cW{fby*7o*fyv66znvrfkd6mEgR~ZqwRA3-YEHE-hD<4 za)?oNj#CfPD=!kMNi?k}q=M&&JX)3X)X=%EcgP%pY?A{C18|+Ta0s}r=dK?Hqmt+< z-R2oR!8$(o5(Qh_10-=9&PKaETsC25KKZEt4&p~>ImdFD_%2H<(i9oTIG&+}mS!#76l z)+8#rp1uQlqOC2`Hq)mJ(@*I}Z4XG6Q8VrO8{Z*wky|DDERwX|y-^x=sf)>7J;>b$?@vqwNG-rTjF7l)M_Gt!vnfE!?FmTCVm3re!}{*&ZqjG zVRZ^k^kK;Nss-e%1(_(dezgZ|wznlM8=xcWQYdfPmm{EVhE12s#NfWzefLY4#pPqS z(rpk~mVhE<);4t0(cMw#GQq_JV;sng?FJFE`SKSkH_O+s!7sX6Q@MZ9rzfZR{9Smz zXTGr`?)klL-1r`=C^J1BKSZR(Bq$XmgPU{y~8nR9& z&MaHJbn=7Ie3+A+(?;*4@QyAJZ8n7rPUQ)UUUax%J_Jo9!$9wWgH_d$Zyl{yd37kp zl=jCQ)J~t+28mJB?f!5)sj_}N78#ujVqDzPadX2#(Xt=lkwqULp7SJp<3#KMsw zI-3sGk8RJ_wt(l^*URfdpT|NUKJvEY+1Kjq7llC9s$g-pD4vQdwTQY^Hrn`9v{>hj zt|N$}Hh~Mi-IhE0k4v{vQfk~(c;y53*xDq)q@c{U-l)MEN}OJ>-K<#WrhS?2L)H-7;i#tAeFVG+bpAMb9k9ly?ES z3|5yCJ-L?2!j6Edj|DZdD1e;yYQQp>%5WA+cL(T|E%4^_{EMcQ zZi{3PhU;D}!A&qcXfLBxm-0=$2juR*{7Gw{ajCmn+gY zIANX0=OJwc$b+JqByCEc`e}oU^ADV9GHGiYQ2(Cn=}<_LW2 zTCi`dzI6MCK|#*bw}q~~Y9wIE~)F@o|`sH`H4T!|az>8o>nj2pYw zKnl=2*|5}}PMYTKnUlyp)~gqL;eVL(1|{0keoxj57IP1KbY*vTNW2EcwQEoZrh)sI z7I;HT9!2sviH{txBQ$GZ!|#<=c+X=SN371vmfbg_EVD?3&dxf>VWL!rx%fn8J7Gv&|F!y6YdSt5XFKnWmpR}BNEA|m9&f~p$(-XBI z<(=i$b>}P!w_p5+Ni2YI>y9Q;GTg2@u%ftShEz~cXm1y8G3z@)VD=d zo|!e91{r+GiH+EY+eP!wc@6?tUwneUa+jfq|MF%cGXDhqY?ee-UMfto!>GH>y2E7vE2o}}STjz51 z9md}99E#FYk*i_Jf1hGmsd|wH#r?NHPWTUU#z-eqRR3EbFF4tf10yP3v6}uA=CP+L zc8ex>!yNGEZvSksBo)@SckaX54l>t~6Wf}g5}M;Ltz}ww>cp_4zX@{9e-q@F>pzW2 zNO|P>_qV9oscy-oi)8Z_I6pSVM}!sDy&iI_X#h`ljDzn zUutWxV3Tf4o)AeFN>Rh`X`p7&oCqKrQDUW%rXsT1rfd zk9jL3PYI_vv@R`&3~*bc=`*>~m%AL6^Ifdly6!dmLkI51G;iBMLCI@#d!P53$hlr4 z;#$tqDDl$c4nRG*WD|`Lz03`E$wz~Yg>S;&RE-?TADR4|!A>SysXp#=OP}P z?R6wpmr1UbX!iVEyH&ZLw}$E+tMamm362Bn&&cf4p!;^gh`i28$X?fF2S4sFYl&I0 z&&d&sFZF50ZnPQX4YIb!spBAwTX;jgt#WFs*O|F{y(vB`-O#0Q-KkqBdUk=LXTo6$ zBwGEI`x%smISupDmf`>~W+8#ZNP=P$>nQ2U2IT0=T$-_rD{;#LfHyg>i(sciO!gRk z4O!>@;~70D(D1{Lv8WQKm-mKWzt_LU8ZbV7MMs|0oaP!Yyoc`F`T9#G+#)lAlge0@ zcPVTLwPmp7eM~c5_|4t*K^R6T$o!d$U`>8_;v+bhTo2?i=a{IG2PWz_gbwNHWTU0c zepn%-x@&g@U%+B&Xt=M%a%)}Yij#4lT1lci`S1Y{OB3Z44X=UI%dk0Z;bhw_=9Q9R zLu%E!SmYN{5XgY?auds+p0u}?UM3Jp6Fq`>O(E4MTEV%fWQd!TEYq5J5T&jy#Q7~f zL8+MAp}=SALY0p+o)laUZRD;(eWaIzn7&y5cj)|xJv^ZdOpKgyzp3IgNuTtwvdy;o zqglN21^~?_``nf-KHMv`r`W<)*dDH}^Hx9jaMBijXlm9wqZP6L^AX~U^2JM{xYcGF z=Tiz;+X8-@RPt;@Eahw1T+85?5?rrg!B0ltYJ-TeT$z?d02tU4D<)=;tbd;82njlz z7o+sJzwxk0N%9RRQYQ`wcgM7paKtSj6knv{Pz=&Z)e0M4#5_8uM5f@sK!d9M2J{5- zF@@-k$~3!rdcdcMIH!Kun_5va1o`LBlDwv;THm=jjGE+HtDE~0LY2IbjYlR=J=l;r zbeHT(KT5Yejh2zlSWg^ABWimNP}SuB{yy@6yYU&!eDGsbnxW;t+<5`Yoe2X-S;&Ast=V)eznn@0W5)@~5L09jjffN(2Ms0(mx6P47LZ&qr|$UdEI&hJO78PVQB&daqc?x8{flyE zL>A4jAZ$S?URQ31De->xvtA8ToH7(|3#hf9tT0$sRmHK{yzZCj9MQ&B!Q;`dB@;vY7eJc` z!_)`pwL^g|V*{eT~P7W46R0+Q(>y{X6|4-+tilMT23oGfaU2 zO?4)2V8~Xg#P)mjm>$n(60O58Nhxa`4k>0(S06zq^(wxy{j4O@7wCZ!K z-Lnb)iG7`vTPH=ZHzhfy@=lR12!cm51t z=McOds?h~)8721~4qg4P(2=epC?-K(p6y>v(h`cQQT;I|wy51+` z^fXO`F0W{YzTudC(D^T0K7tzhF6p-48?83WFXBG64eS9T)X6#O{di~==UdlOr;f-J zY+0R0s^-i;{25(9Hly8Uo_EG@25P3ZxS|^w84+g`Li8@Y9L(HxPIYA@0#I~kM{B7c z)^n~mpng8wrpfyqDN^kt?o6$qW8Nwu6e}R%xa_WL6Mnn8;iPk^boumkBwlR#~*{JUOW5Rp>(j>6r>dTi4y49Bm zo&O=r$ptKHcnQzWz2cv}GbY|*B2|-X1d^Nt1)U;#k>^dX4IEmjJQ`J_D) z#``#6g4O>kSq85EzaYzB*yJVJ^fRlx+lVvVc(zcs(cZn&0WV9W+&KXRK)Bfwe}b9dqhg!@cQ97M=I~{`+Qw)VLKa`zM9K8*Uu|*Y(3PUuLW1#=(02~ zCm*>)5tM!O08Vn5Z}=J_lAEnc->}n*7YHO$=&e#csWIarI(=#sMi z3aH6_`-vX;mg!O8ReWjkbgS3%&7xadm!`YxNF`%%VJ;5a)`}OJ_5;kxo7J_@<|P16 zTVl}88@ITi&Jo_V838A|q)(UG#aqu`C;x~ExWalr9)mVsI}4XyYb&%6cVuSA$$=&0I7Cfe4g%$HHK{{LMM&+CKo_{0h)>bThv_~*Et93|j`Z>3bsUOeapUy3f z7`vxyP+L5=f2Gew{HsD>>ee=$ggjg?p)&J(Q%*nzULbXR_^Q?Sm0rC6rH026dLVWh z8+QJyh6lS#S`B^7Y5CHV6*ZqFf85~T&%u?$w_BXcc3!~!R}Igi03!(V`9n68b&{U$ zD2~bGQ2$cq_^+%Z_a3BE-9UTL1hjk@Wnk282;jK5SJ zB-1(fO0IB`Cf!5A9pKoBpxO+ApETOG#ZMu`5n+pR%l#4KHUBW3FO~`?REaFf=MI0x zaQ}3u7%u4~wX0;?wljq%&>j;nvviE;_aa=VnQ*~Ry;sI_*u<056>|Rg2Fq#l=ss2f zvxY|1J9Hm6G3bJ5DQQ=73Tus?=>6Pm!l7n(<03xO^uq3(7G`lK}2pkfr$N zN-JGx49~`C7bUW@XX3hNc|Sh1$zhHxw&I+XiRSoS)Ei{yxeXY3nI#M5pLszw1M*AP zoj+LEOx($1>5%E6arlWHIGMP4N*zas^%}ceMxy#WN3ue%9IO&-IjiK2Sdfxx6KWf zA}{GpPB1F()}~M`pN}4#x@ek37$}uMTo?1vg98DJlBo(W(W^HJ@Peh_8I$-PmaFRO z*&>?Hf-*xXT17D^A-QUhP|rRs!N-%A%9b0)n@4}M6R>+}Mrd~JLzUry;Kkr+&)OEJ zI-h)yzpVj#(pyB(B*mGD5ogpuF;5?=@tpA>yv|mbW8BYA%m-I)f2Hsye?(>5wc)1m}58kS@0$g{)^SnW>Dj>CE>$lpObQEo>YD% z#VSi3aV6hJzi?tMu@LiUz2jAePXWv?l`bw{6mK3t8Q zrL$#B$ya#)d=yO~uY4bgg??&w$j07VVE|=N%{>T~JG1xmq!vLve^VvlxQFb3w9fA3 zkV0JNOBE|tfHo(Gjy*And85aXt-RE)cdzbL2UqT1QuEQwLPO98b#IL&>Yh<8G9EwI zybuwX=J0+p^YGqx{B$3hr~C^e`;mo9@ylac??l^o@v-OPwYv~pTzRd4j_UDm)M~6B zley6rcpf=i4nW=7bJ+Zgum1V@53FQNK2};O`d~prj2siiFue;}5xPiQpKe=y;PV0W z}BaU@50*E#axw6_`yb^ahJyJ4iL^7msB?A)WE0K~(tD#_Y& zQWof(WWSYgR67lR3i`sOOTv@yPDUgkSYa?Mxa?S__X^VM{$$8U=d}x*5}uGPs|Ykt zUuF`WTTIfoA!{%zz192Z!@xY{5~W~Chdb^?F;w4d0 z6XlO%s%CybI*mS!R^n#sFY8R22=LkfC;j(Zy;LMfZR__ydidru{#F&4EZ{5-QYHv( zf5E~^7;YAgPbdtxly!Rt${_y73cnsl%8pyb$0lCbJ1cD`VaVi%yZY%>hVbW7cR_O~ zx#n43t!Bu2iz&a!*NKgoxjYKj4lxYk1@ObV=BClKuLmWKrABtcQzE)Q_nC^f3 z;5%QTI(TWDV}UyvtsnN%4KOSA{b@{&I0InOHV$Ri3VTCh{liM|u>Nzj?Cw7*xJJ25 z3R7ZcxPoQaIu~q<9luFlB==&-tCv_w)x~hL8^P^XXebPd`8W|{Q}Vrf^;33ZSrkn} z=fkgk9fXfaFzbfZnQSDVkEp-4^a(3`Ec4z3+Pp5~Tik4*wD_+5#{q{D{PZ?M zP+kSfy8Dq({n0ms%aYglD~}ojB^S#yFa#Fk^PI@H$GsYY%TSG#7eR$v&l4K3Ng&AV zu#ZT1Csc32+mnK1b0x9<`V)Oze|b)zQUp*K*X^AS@uog;FWrr=b@JfYGeS$!#$HHO zA@>-oOwfc51|D&UC|NvGGT(ub#<=xk(2bcZEGSBb(*6Fe{QKVg#D@}NL_q_MWv}7g~y5 zu~0v_B+Mjf=)>fYFG{5Q+wTcI?Zh+h$>LrxqrgEfe@TAyKO{dm_nx**(d9s>J=_UB znLW}Da{o`FKbu^iQtZ^_!0BAB^nR2w`W*U|ZPGH=t;s5y`=Y38T%aiDJH&1*9ZTxA zm3(h9Z%_J9r62Qer9TT;H=`AFQfQdLYH^6#t#Y*A z)jU9KeM)T2p6j9iR-854dcRBqI$n3q>NDH!uL1JFo7!>=91@#kuVXSo45`mmTFS>8 z3Bk(VW=Cu7hQc@L2k??DT!LO$39dxjJ*3`X^O$!_$N}zEy2Q24(f)-3NZL1&`MPI8sDU; zEBPBW63SkuzyPt|_TfY#Nm9yk@j~tJ0N-1)wWUxABoS#0HiJq5h2LKCStbiAO+G80 z+dl!ZzFnpnRqSp;N$a_uQAA_Br`O|USPVHD2lwd6%3QDgt^Il#y-LNS9 zV}Ks=C(SJdP!iMW4o_|x{j)=bI>Ag&dLgPw@9rrct@EBjAA=RAkpJ+~nKNC={ zZ}d;BKMsoZTmK`8|BU;G-_w?kX~n!2;mTg5RM^a^Zbd;`4oBJ&DDm#%5!Qqt4u ze^dPm_RIR0s`cls7X%zw~sb^hL82erN8p>JD6SU9txXs3K6?h{G=6M3)yh=#&=dCWiS$bB>a26~4?T zEDa6yBR>n^bJ=jw&p9X79Vs~Z?+fr@-K(spA;o(N)y7tineLl;$C^L=(sLW0n@rcg zuZwDC)-$biky>ljH%fn2WC+r=acmI#-m56Gmf~G>b_XoUM)s>`(CJ;uC)IQN`gEW-ZK3oi+4NxD~n&S1<|8lqWdhp zgT6d|`#CFz&6YRIbnh8^KLw5v4v#cQdZ$ObiAqwRKRV;Kmeq_CBPVB}WvlC-c8rWf)RLiPEaYD0jP8|XgOXg-wHn{m*lK)(Xo96K7 z6agZ&wDg9#hvUqcW;^yUGWieJCk(8t^ksO2u8!Q6;8OKi7=jbND5%O1UA^ePS1=Le!)x<=T82`{r8uF)BwfkRn@w0nM@WT9NW|=l@~v zt%BMB+rLd5S}4I<+}+)+xI=+bq_|Vu-QC^2SSb{zxVuAecMTpi*rxCQ{dQ(&zMVbX zJ=l{RWhRrEBv0<=x_{R%SwiJ`IQsXqDcUFGMmY+r#aN?_>+Y>%!CklR16CU?1XBPM z>s|5szgd5IBY&L=^@oY&Zm$u2+pWIw)($rLmmwb)UL8`|jha9@hU`JkAxy`eE^l(| zQ6i$vHcw21vL7m<1(X$>d^14L)Y*$7jjDz>aX)gq3EA=fNKHRb>&cW5igTTHu`?Mf zE+qOA2i4~vjR}txG67q3U1Kqc10~OLZuP5}_!xYZ624dAJBEk?1Lu~pF&_(Rbe-|r zas^bFoN1=3RQbE}A4P#YoDOj&tpB|Ib_(K49ea{634ZT$wG6k-Xe`@_(C!LVJwCZD zlop^n6@Id*F&yXTn)z^}@w0>ozwL)9`Q0t1O(0FZVcI~|DQ^SO(m;k^X<8|Nj-D z&;I{J^u7MyAo|f|n;#1O{k|N!Lo7nxE+<4eqDY9k`T#vo_jPFldHkqf3%Bdc(n*E> z=#9_;_5X#)4Hvm<6^v$ND*K7l46jf%a4b4cm6agsPbG@t6l36S36vIr{+vlZ!Q8%A zyj>CgPr;)${yDBZS>FV(=8v51#MvS? z34Vb|y7lSIiP-*bUfuNKQf;34O8Ktn;8$R2jy&hE3aqV`QK{EIl0T>{S$S8B4sh&t zI0Sl_*j#NN?gi59W$7(xqiTWI zz?aBZTj754|A73)+@sN*RbxMc7=}&K)xGe}#M@-jx7RZJ%a0b+*o|aFB#=8hs_3mR zwR#77O`x{$4>3=9bkJ)F%$Vd)BUxEF67hmWv*qq%4AjQ}|PzZ*SRF8EJgYkmF^{dW0t+9_H!?!g@J(rvTC zZtBIneZSyFulJS>IWNUj#-^=sRDib3o81Xo0W2wCM zNZC}PY4w%UYaS3-V{?0@+MWXkpNdTQM3elq0|n;7ZE;{ zu|O#~Hs6acTRtS~b)3x+3@Es~5q%xi`G;#-n90p0`zXt?NuP0`{kWUA;7T`ZW#g zUs-wL_ESGYW8^=cAT$dfGjyHa5<^6vHPk_Y+CAVd{tW0Az90!~+@onk(z_gw-~naT zSM+H`(GY{*+K6d)qW?wuE%$C?mChFu-`Cig4DO_nU3V5Ys%@u{?yD~+Dn$= zW-lN7SQYTvk{zZyZ2#VNBmN|y)XNHFw#}fh1IwyEps8rcvBzb*C0Ym>ErBT3YL!k~ zz{6P&>VApqqNx=QJMWm;rZ%tbU!Zk4+t>R%Sc<@ZUjCZ@@$!#Go^G6P!ct)tpwD<1 zWM3YXw5B3>3*Eg(8RqSOn1a(@c8+A9&qj|vb!1!*%Si8XOghg{HXxis6y2PhNa_Iq za#MsT?pW;wzH`Dfl?3B&hV;5z+b%Z7ZtE2FGgh~x2Dg6DA;vPY2JnacRWo!^BQO15 zE`V6=de9&DygkfsZegC~_pSq3Saz(57 zee6({uiY2S6H|4f7z70Tj6@`7CPxmnDwljN-$-uRh>HfTs)IW@bO8p`x-n)&~crk7V$9rKHnkUcxP|kHS zNekjHuq2iKcS+$7j?VXkRJ`3lhr*XzQP?sR_+w&*#u6s&&QGlstSvN}$!G_ie2L+b zDkt?{`FCimAmqn;m?MPq$s*?7;haqXL65XMwoptFrV3%M@h#pD+?-Ak8lt0k(WSmp z+MipAWP&Wbmlp*>J{4Z#wJn&m;rEEiw~HB=VcWVd1Dgid#w{M^yNaK3Tz~8+@GD}f z9(dPWo&E>=@4ZSu!GBDX%eCmE)VyxZiN=NE-+#~_WjWa*hF45~-#PvCqLXEBk9Lkw zw+xX3>>=B~NdUo{s#iI{@D~m06Kr2gjYxbYOYN+_SB{sPt5!SsPG}426OtO$dTO~Z zTj@0Q&8i=})&ah_z2zjSr~27D$=s%_)J<)={={_r4(O+=#9~*%CcBjVzoyD_FTVP~ znZ&2vwC$!}i-!jY3SU(QGAoH;H&0l2=vmr7jlk&Rs(g5&Q)X5uyI*Gy!3fz|F~p0@ zEH2j+Q1nByANqm8a)2P4#AcL+lzz_fOd}||x(A|#Mufs0t$iyKS>(ij68&Gme;xRL z3;u0z{ulT^V4|T=e^tfGMR)u{=4yypl_c*P4pRTx=_y%d{P7(x@Bx7M_y>NH4Kmnj zDS}uuTk8F90ie24k4E$b4)*cRdHN9f`}Sw;$r62oI$apXM_gFHEQWV^e(H=78J1J7 zW?v%VEs2Tadl0{1+7a-U;~}RVvV8dGs|(cS`KjVhUk=}uG_U-TWs&j6{hJcS=fntm zBpV{|?PG@1Q5V;KtnI%{xU6rcAd(()o5nk65p^M*JAI_IFSWh0fHA~?aety@IUEz< zvUfjPdRcn)bN-0MFS&orVAhEhRdtB0j4-D5tKA(RydbtCSw)q&w%u%h_oB?v%;RLW zvl1{VDkoh0{$Yjjou*7DTxOQfeE3FaaEMF{0@y=7#7PVJ>c2Yxz-U+5`O_5}>t35o z?vKM}0?GrpzbERYee4Q4ta){AEr2^3aruAeQfUj$J6h& zOJ4?Ot!fc>mU^1ts7D(Aab#9N(dL*_0E97Red4uvt1Zxy<5Hg7RgL+H%=)OEch)Ys zgm3n9PEzoxkl1gKP}2iHjmPCtix%eOg$uLaAX6P-!5qS?HS?axWaVr>1~i{Qg6yNE}-pG+~~OO5TR;>qUc#j&HSK9&O$p6wIl^!X*{#NjUR?=3+;r^Q}$Xaa0vq;{DcIU2BdN%$xn{cah&gx^-4p#o(^9p zqf%aXO6AG7(iWnM5k6i+4$!(HFZDMF>p=T3F?hT|z4-I&QHzyDS5Ldcepll3GoSQ+U%l}rN4@mi!#GVMxm4Fq z3>?6 zVVUn6f955rwp20V2GFe?BW@$S*CSYbb!45tAZ{VvqdMEzfa>fVJC5)dROU;aKc3q9 zmTI(XbG9>F+!(9E4Qg7=7Nep!*0QY0)a`2E8pLxns-0@-V=GKF3*84Ap|{^c;~P=- z8^0c+WifX0o5hKe49SX@&bL0+R0-R0Zc+Him1%^BNnRU^sMy_z7rEdS7jfqxCtp)$ z`Y8W;`x#0$1-}-{OC-!mv2f~seYj==>fQU7W&5Lob*#Cs{ZPQ}B|0zS!GWV21C%Vq z7;1i}ihtM6;w>pBx0e?`DAW zLf;}cZV>mP7hcg~Xw`2+wY3Y;({?HMv*Qk<$ zflLDoEc4Dt5XH^l-?hetgFE zos$xgrVAChbHndC+l3NFqOt?2sGRXZ1@UtY<^U2P>!KuB(0UKAMYGvBg4>MW?j70z z!8>%5siK~N0DU%uPu9f?7SWknA2JGWT4;W$pfN%Vo%KP$+ZKJs@x2-AQoi-wI~GMy zWv*~u-7K<8R!()In#bGWHkigtt3zvmpU_4){6U`&64t+xMNC6z_;9PEtH$*=nIo~R zpPVOMx#pJUQ_l=9=RxCMplPV=&@Eh_4sV(<0(!5MeE+zk5D5w7{ff*1YIF?WqdEGz zsygTJ{H!n#OS4?a^><9wy>0d#50J1|!;ZL;99kfyW~W#Ej=&H1_3Ho^M;pfAn$!1?bdgBY=;VCa_=eT?dC)P>fUuI7tjeWc z>n9_RQ;unqCKiNk=3JgP8JJj#KZF@q;VdxHv*_Bs#X|aJ{aQ=sk_W(*qS0iZI`(R} z8M=hx!)&*q9FCks6<*&muCHqQMFWsbR7PQW%h(fz(U;6*_9%-=??1H42X+r}Q+eZ# zMtMHf8B>z(elctZNsVVoyF^VlcvS;suzOZSav2?_w}}q#uf@!Lu`mkc_O`Y$@J`e8 zR=L9!AM0)%tyTC{xC1s?JPn%^X;r`_e*n_Pm29~=D@J=M1pjRPU>c~cAMsUAb91{J zZBVPK-sq(0(`YpnKfPso&9L$@K@wVnoLc0ZNqQ&pwBHd26}d=MlZ+Eu+_2u}5P}#0 zn$AzZ)u{U)S-*uI0yfbDnnmUpqgnm+|CP=s{7*W6-K7*Mx;f21JcyL~nvj;|eCsZu zd!orHbV>+;J}-$>!A>osq1z5nk9Tz*v6%e1Ayno3_wnY4gDvG~ zhe>b!bCsHB48q5&s;>h42o_Yx&#oUndQg5qK!D|peo0WK?om=1?B~}H&82D^ei!Ux z==3OiKk@lqftD2Ek~L8GaRvDv#-bmG+*ps0<`1%c%r7#LyxwVql`$FLpa=nPV!;(r${YFgsDM7={)7f~Em{w})L4ZVT72YNMen7l|u+8;G{k&BXl_Ye|z zCEGtcw1T8p`&&v-jK@lezs63DF6L{94<2-XBD4%+Pug)@!`**{wTGO|bz~QkV3q3D zZ%(E1MypSNI>6o^523Qc9+C~UTMNyUyiXFIj3)Je&9n}p`twd{c;25f6s0X;udKwH zj%&Y1YlM7Ih)K5(<*#|^R|U^VE);BD81ySP1yiyp!RnWG!}$v?Lj0(aOR3OO-Gm zVTKWhw^S_SpwKR-9~I>%1U1h*K!fwMq?i7`;2yi)44~J| zYBYs%;?$;(tX?~UJ~kJjdx9B1L@yA|Pge)LN2VCA?Z8rhFAg;QSy|CW+rXZVV{34l zo;Y6eLU5g59_>7A4;yv!!&1JaS3}ZAE(XD_vDnp5L(tLkyS?OQfQpa-uio(YOJp>I zh9;1A*3fg3Fi1BH2{Isg=(7wX1W`nx6=jm_+`Iq43=O zn*XGp%O9utDZ9LfjwwDc>&mM1T(`SVtH+LK`3r0#v?s~Js$#S02J>#A`fdR%Va;@- z(Nz|UNS$-Ln$6rd= zlh8F8CGYn0rVp`H?%3^JtA{S2AbN1J0K0e8X@jo)rX5|BZ9Lu8NeHtV;B;}X^^5oU z@6E>n0a8A{>-h_R2pB}DIsBB}_0;Hxr;iapk!6nBtQRhSP70>+@7Fu@zll{3%ci!m zQY|?m#jajmzdCOg++?)Z*qCKU-Hg7Ve)M5!?i@4_bSj%hKS2FN#{X(-yO33BZH}ma z=t7xRI6y{e#89^Lu@4f~K+qg2vh8)THrme6_ED#g`2HJL7^lvlSu53<2es3?Kmk=e zp|irqp@l|H@FT&UencaBl{$VN9Q4IBPY8rdH3dO!s?h&i?~W$ z7=;5t2PqagU;b|b``^0KYqDFf?N|sK9snNRnaKC3Tp8N6?>gUxZv?jg9O}mJeDp7= z0>RF2i>&;3xJ7CLT5y4>1K9ly4NJY>{zdlpU-tbU?iu}?yF-jgpUOfNcQ8kwz;);? zzoiMa#cm83yixr+#jl~KQI>RmQgy<>?v{n%-^xw#0n652aVOR|1tSE7LLB2+42LxY zC5Qk8<(1sBy+*A43(g!PyQchf^t9n;x%OZ3xj)ry7xOh-UqKH-Q+QKECX?KYE8bn3 zs%vOp+ z+WAzuLdwPZ{Xbqyl-McNIfO=Q=!h|s+SzV+6P@6i&)+YfC6xz`E424`A2DESsj>y= z876UWDn~4r<_f3!Pop-N2~WQm>CI8W1OyxT>?MX&0sOcUb;Y4=(P?OXTInJ6ZxI`r z_U$9~H=+;HXS+@gZ&F=}63>2A+qwWS6MpT1;QiQ|wGfzT+1fcTI^Q!b#?|mlC!P?* zd4@}+Ebv23Vjo?Mm!eT4n53NSg_f~_=DI~Frv37srMMM;Y%rbv= z8@S(?>^s$;A{15t`xqbT9K#9XQR#$=kd-A9)4mMEPv_k8!y*YXahmqaspRx4WQC6v zocj9yL@;F7;G;j@-DW7fb*4r4*35JfF(NJ=?99WC=rS%?k?RK4$|JE;bsdP4u9k|d z`(q@oOL!sv(31@Ub-OR#1YvI|XKM%0FkLIk}peT2eo8uc-QNa4E0sEFCZTEK>Z~USu`Ec)f8QPUDZj6 zdW9hNQ!)k)*@U=%?=x)#lVRpKRMtu2ao~ewDX0P+>RIvJZMYc9eWiJ6dd+7zu0nLH zgA4oenaM<@Q))?`E`~W2q@foX!IWAEJ)T3)JL^B>eRG0=2;`5Em0eeYq8^Za)`hZ~ zBfppW{1lZgb4xz*@Shz;MzeCmwFxg|<_R2KhNl-j$KcYJU#3*c+vuF@wh*sFw1&Tf zeqe!k5F&!y02||`=cWS>cKWGCL8%JPg!-?qF*YNy@zG58(U0;@Q^&@^gnf`WCXN*P zGd0Ii>oo4}0c+xYdb{IYSxhuW(4OK+w003fpp8fY)~ll^P%sl z`%2A8gqpO=sqd?wq1W3N6R8)-?h$3IOB}qa7_(*kqXP^fCaf$u&v8b=&B;bA==&-u zm`xbB5FPnYQ_V^j`H0_0Cx1@kL#--z$s;)~3vo*OuH;$_E-I!Yey%(f=yi4lERjnk zPSbfHOjQ8&(r@3AqlzJS-s46yp!*KK?zD5brN;DQ9<%37p2xGJI0a@n;9;xOfe&rd z!IKR>HUopk{^JqwMW>W8m*fvAQM0f8`7hA~5Nz!OhiB8Y-^f<3!@v;M_k+)w!y=iW zy{uBRx`k7!myOsy^W%Y{n5wDbr>0E^llQE;K6GJk9ReRVZsn{46rMLQl~g ze^b-Xcmyc*<2F5GiOP+;wbC5bFv$Xgg6FuJjXb|;>W zynH_ue6?uz6g}fSuRnL-%|z!UJj(I22aSQsdWrn#_0}&7vtjnb9TYV#?xQX^r_HK_r7hHwu)`65ihB$=)xyWcpomJ$X>k(SQAb~*Y z&&2i8g3QY^GyGVrx|B3XkurXKH$mvz;0O@0#*FdE^FW@FJ6#Mj^oOEX);TnE%9UELXo^yXF46hay{?h}L{&Up)ZQ7B zFYM1mE6r9_p6_=((hy_ras7?r`^3A-+!0ZTO&?Fh6D^$3pkF%!ywA<$d9 z3()o$rMu;u7_y4AHm!3HAbwje&6+5-$$5|XMCkvFhgnzcKo#$S#&yOP{mC`vc(D+% z7g{$Feu|kZC!>lfSWv!`qU)LL`3?`Y8a8bfOEBs@rs+HB7`*YFY+^9<*9cG|s<-cwrNnX`C|p zWpQI{k7crl(=z-e;$wTS$RW}u-HFZ+iFsB1Ul8*l$0MeFmC|IOc*|3!GoFp&pp4T< zZ&r&dGb&uT))48SKv2*6_FtR9p?LeH#dwjL&?0+&_IR1$tcvbvdfi3p zn;AH9VH)Kacm6hl@ekgYe1d|dV<5_}bRoz{)T4wsNr;Vrf@&n**<|3ER~F|k_IDFMRwU>0d<96#lzVKC z(gh8`&j~3IhCBy--zeojdi6;Zs9xQ#4QUgqS7(5S>eb&7g+}Fi^=9(Az&(UZ zz>5F2x#0XE36tBy*oVz<0_5t3(Ma=79HM>#yh~X_u*Z55GN)_`UGCN^4|1S z&+mS(J}CAGWc4Aq!rO}%;*$d^R>{A&(j(d;x0Mbb2ZizXZ*k91pG7r(HSaIhvy4LB zoQ^EgQ3BHUb7sDah@^bP*z{0(uTXfW4#eQ-B#hoY;`G@oDsC4kc;Z0O(Qac5q}O$X zFMX9%R7(giE41$RGBVN25|HugRnGK?ajvvOYX2xxWj0h$cKDuCtG^?M`&}&M4i85= zK5k>iKBE%Ki3BYLeV=#|O)EGYeminXu_o!Aq{8d)7ySC!%_7$;q=*PQh$}(`Ys|i}-6F^3J3%K zOai@ybZiJuf3;yiiYfO9O`cxsIAXTb>5N80qmm-tl`ZN;#hWOtycGT$zgiOD10?(J z+$`R|$h#j3LxK~KuPoh}Bw#7~?ZGA0#N-l+p_a_P*AT?=F8s_K1QkgQkE*M3HkLe)cs?>>4qjIe{1W4oGfiK1^eqqL&0H%&hK^)nw6eaOD&j{~dm zfnv=hTiyAAa}~{7$-w;Sj9V94>-sL0g^J1ZRnIBV-zkGD^iBX4P9UNR=-LUbsG9h^ z)k;SCHdu_&h=o> z-D_^i*_XID(!w3nhlr-1+}0ym^E7^D`lHc zLv>#kZ`uc?yG@AX25eBoxL&b;qF+kGw;a>5I;Frch( z>185R!^l}Lr>?>k%O!jMoij#Q{V__zF`xuq0m+9tZU*nGO$^2EPt4F*Iy5)$VcW?? zw*`T+wxmcM>_t`l&ehMUIz>5afD0}%X%*|!#>3hzxT<1>S@JXdwMQ+uJb$;If~ zUcz;=o&CxueS2X-_k5-+@c^Ma(uCwL$3s+8t@#JKU017fa3N|4&INoV z_;h}D(d=|ctnw$w%W^T=^ShS`ddIae!PnK+Wq0Oat4;RRi(#G5=g@zM`fQ@TxOTp0 zgqxm_lXMYM@N@wBW@ZU$@h?6XeF8{2GAh?u_Qd}=^r_Xw=ZcJPE8W>};$2X`1X>(N zjxcb;h7TGU&U9J_EsYyua9%9yN!EAYcvr@7CnvD4nu$)2#uzPnHDu2e#KuW=70Z7R zwU&%#j{-xyPr~njYzyVI_Cvw+?Wc)eqG_*$U0Yo&@b{#U`2k#y5>B2=dFek~*2MiF9LU+l%CtkC6yo6kvkjayF3m`h{at5EHW_t>Zg zfxOoN-@&>d%nzwm#kC}MeH;r$%y|5nnetn1fT2zwTYppEoY@l3)ELj3*G%d%h9}|S zI0AKowDs0zf5{lv0Hp&BiqcT)SJ{Qdu|F^Bv5|4hR4?tTSgxMB3Ci9sJ`Au+$7Dt` z*@1sDVV=HON2A@kyb&!*u#IqF2-71gtkW*lflE~gp*JJ|Mfj8QELT8EB6 zD2`CISvbXeG6eb6DPE_tpcIC;hlw|6Gcp5MJF!lbpM0f+NvlOi`D8P?rqbKf-?4RH zf&rkn2}}y_8bUCjg8KjtcAfEgPg5fwk9!_bbZp#N*E;@O8SrIBO_Kv zg*MTKN?{Lx){2PA1V7~!Pv2iA&4Gh;>>cH0D2#{}tD)L^@5idjM{i3J56Ix=bI)wL z-z)d67y{csHId&=1((|tt7GRi*3?&p}blyfUkqa)Bp0U_n<(obKK_28OCr4 zAax_7dtd%IWuSckIq?qhDC*fBD+j00u5}w4G0>|o?uG_zhYF4ku~6C(D|B|&O1tw= zorp_`bj2e+<(WFz?v>yRD3-FxeT=YHS^M1UEyS11ovcpbcPcy}Ei>RuOr9uQ&p$~$ zwT0WE2Hs{brZGzUecWjEUvg_ipgb7PKv=R!*9EaW+TEaDW7vf2C*))tNj(bxF^v7~ z!dJ!Pw4^syfw;c1L$a4&G^Gg6T8jFDSb>Ue66yt4vfm}65o3~7I&49|GFB?uXcZ|b z0*Y(8_6SyCej@)5xg{wzHP7p3=a)4=O*m=wmH9R z8SxDL3dgkgI|U!L)fVJKp9ep8`7BuX+X>&0~r6EV@88X-1?aGx=zjteiTujV9Ymvil;rN zPXxAAx$AYL>(+c_*j8)fDad?U*2mvObp>nyw&{t1ID$>E-^#hDVs4j^xGufJG!g6$ z;~yu!fGluL9_>x0Fa`6R`@s!y-=9jrH!jt{TN{Aypz}D`YzXWn8sH`y-V>tv2xAjU z^1k~PEf3ydF#CQ6yg*xEvDSPkJ!64(-tU~jsHJl3d+^jf$Lf@J8Gb{jeP5scJ>8}| zgw|7>OTDV8Pa_=3LsBH{kVmL?LBaUdA=grGaJSbt9$?*b!86aRDd-rYYh$s@b3KKiHe;47<=PqFB?OyK?K7Q)6;1qf@KD2^CU#9()$_D<2 z`dL%zk=OomMUwZ3u zv!=3^9^kO@W#5wvI?de~$Q^e2-T7)8yq#+S1_v4DWEW9S;+`Bl(L?JI2^y>Rmclj7m<3ec6W=5$NTQc~I9BMB#V2&?{!53ytfmtmZ(W7I5o2anePUy28C2VxH&hNH zYIY4aY28~AjTz9g%cWTEODUS0HX%cIASpI9GT3q#sQs9k#6I_wAE1hJ>ZmL4q^9-{ zD=z=wU{g$zFV4F|cy9nGHfTl4OyG$cqjZKNO4PgfpAv9+%_9vURE-;W7eNf7$mkDb z-4ZwdRb$me!eKH@o?#;s1eg;-jXRhQp8VBAp~~0=K(wd6#@0|33R;&y;xX8NpYMsH zCPclNX7i6Ml8~6Q@0`fmE5gmZ&tKEv?4+gqf&6nkidhe1e7kKBDxOQmPZpZ6PaQR( z`W4Ys0vsWC4BHFXtSW@V